猫型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
-, ,

執筆者:

関連記事

ルーティングに潜む罠。pingが通るのに接続できない。pingが途切れる。

pingが通るのに、アプリが上手くつながらないなんてことはないでしょうか? またはpingがたまに途切れることはないでしょうか? 非常に簡単なネットワーク(むしろこれを推奨します) ならまずあり得ない …

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

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

tracert(windows) traceroute(linux) が遅い

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

route deleteで削除できないルート

route deleteで削除できないルートがあります。 それは、 ネットワーク接続 > プロパティ > インターネット プロトコル XXX   > プロパティ > 詳細設定 によって設定されているI …

What Is My IP

What Is My IP あなたのIPアドレスは [RemotoAddr] です。 自分のパブリックIPを調べるサイトはたくさんあります。 にたようなことを自分のサイトでもしたくて作成したのが今回の …