猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Network

ロードバランサー配下にあるサーバー間のデータ通信とソースNAT

投稿日:2012年12月26日 更新日:

今回紹介するのはロードバランサーがぶら下がっているグループ間の話しです。

サーバーAから、サーバーB,Cにある仮想IPへアクセスする場合に必要となります。
もちろん実IPを使用する場合には必用ありません :x001:
loadbalacne

なぜソースNATをしていないければ通信できないか

サーバーAから、サーバーC,Dに設定してある仮想IPへアクセスする場合の流れ
①サーバーAから仮想IP:20.10へ
 パケットの送信元IP:10.1 送信先IP:20.10
②仮想IP:20.10からサーバーCへ振り分けられたとする
 パケットの送信元IP:10.1 送信先IP:20.1
③サーバーCからサーバーAへ
 パケットの送信元IP:20.1 送信先IP:10.1 ←直接サーバーAへ戻っている!

サーバーCからサーバーAへの戻りで、直接サーバー間へのルートになってしまい、仮想IP(ロードバランサー)がスキップされています。
このためデータ通信ができなくなるのです。
これは、同じネットワーク(セグメント)にサーバーがあるワンアームと呼ばれる構成の場合に、同じセグメントに属するサーバーのバーチャルホストに向けて通信をしようとした場合に発生します。
本当はロードバランスのために仮想IPを経由しているのですが、同じネットワークに属するために、送信元IPが変更されないのです。
そのためパケットの戻りが直接送信元サーバーへ帰ってしまうのです。

ソースNATを使うと

サーバーAから、サーバーC,Dに設定してある仮想IPへアクセスする場合の流れ
①サーバーAから仮想IP:20.10へ
 パケットの送信元IP:10.1 送信先IP:20.10
②仮想IP:20.10からサーバーCへ振り分けられたとする
 パケットの送信元IP:20.10 送信先IP:20.1
③サーバーCから仮想IP:20.10へ
 パケットの送信元IP:20.1 送信先IP:20.10
④仮想IP:20.10からサーバーAへ
 パケットの送信元IP:20.10 送信先IP:10.1

行きと帰りのルートが同じになり、無事通信できるはずです。

Gooleアドセンス用336

Gooleアドセンス用336

-Network
-, ,

執筆者:

関連記事

opensslによるワイルドカード証明書と有効期限の延長

ワイルドカード証明書 認証局への署名要求書(server.csr)の作成 の際のCommon Nameで指定します。 Common Nameに指定して正しく動作するパターン test.jp ホスト名が …

SSLオフロードとSSLリダイレクト・リダイレクト

最近のロードバランサーやるルーターにはSSLオフロードという機能がついています。 それは実際のWebサーバーではSSLの暗号回復をせず、ロードバランサーやルーターで行うといったものです。 それにより、 …

linux

tcpdumpのフィルターのまとめ

tcpdumpの基本的な使用方法はこちら ## 名前解決をしない tcpdump -n src 192.168.100.1 and dst 192.168.100.2 ## インターフェイスを指定する …

tracert(windows) traceroute(linux) が遅い

traceが遅いのは名前解決に時間がかかっているためです。 サーバーは必ずしもDNSサーバーを持ちません。 そのため異常に遅く感じる場合は名前解決を疑いましょう。 とはいっても、ルーターによってはIC …

NetscreenやSSGで大量のアドレスをポリシーに設定する

普通にポリシーにアドレスを設定していけば32個までしか設定できません。 サブネットを区切れば十分だと思われるので、ほとんど活用する機会はないでしょうが、 アドレスグループを利用することで更に多くのアド …