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

執筆者:

関連記事

routeの*(アスタリスク)

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

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

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

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

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

Aterm BL150HVでポート開の設定をする

PLANEXのCS-WMV04Nというネットワークカメラを購入したので外部からアクセスできるように、 ルーターの設定をしました・・・ が、これが以外とてまどりました :x001: INDEX1 ポート …

What Is My IP

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