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による自己署名によるSSL

INDEX1 1.秘密鍵作成のための擬似乱数の情報を生成2 2.サーバ用秘密鍵(server.key)の作成3 3.認証局への署名要求書(server.csr)の作成4 4.署名要求書(server. …

routeの*(アスタリスク)

Linuxの場合 [root@centos ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref …

opensslによる自己認証局と自己署名によるSSL

自己認証局を開設によるSSLと自己署名によるSSLは何がちがうのでしょうか。 それはサーバの署名要求書(server.csr)を何を使って署名しているかが異なります。 自己認証局を作成した場合には認証 …

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

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

opensslによる自己認証局によるSSL

INDEX1 1.openssl.cnfの修正2 2.認証局(ca)の開設3 3.秘密鍵作成のための擬似乱数の情報を生成4 4.サーバ用秘密鍵(server.key)の作成5 5.認証局への署名要求書 …