From tadashi.1027 @ gmail.com Wed Jan 27 09:02:31 2010 From: tadashi.1027 @ gmail.com (=?ISO-2022-JP?B?GyRCMHAzQBsoQg==?=) Date: Wed, 27 Jan 2010 09:02:31 +0900 Subject: [Ultramonkey-l7-users 287] Re: =?iso-2022-jp?b?VWx0cmFNb25rZXkbJEIkRyROGyhCSVAbJEJGKTJhGyhC?= =?iso-2022-jp?b?GyRCJEskRCQkJEYbKEI=?= In-Reply-To: <20100126.184909.756168950323994513.tateishi.katsuyuki@oss.ntt.co.jp> References: <4B5E8A0E.6010700@gmail.com> <4B5E96A1.3050101@gmail.com> <20100126.184909.756168950323994513.tateishi.katsuyuki@oss.ntt.co.jp> Message-ID: <4B5F8297.7060007@gmail.com> 立石様 お世話になっております。 稲垣です。 ご返信ありがとうございます。 > 上記のように届くパケットの送信元が client のものであり、real > サーバは返信パケットを > > client <- router <- real > > のように投げてしまうのでlb サーバが書き換えできず、返信パケッ > トの送信元が real サーバの IP アドレスのままになってしまい、 > クライアントは身に覚えのないパケットとして捨ててしまうはずで > す。これがワンアーム構成(同一セグメント)で NAT 設定が動かな > い理由だと思います。 なるほど。。。 商用LBのCitrix NetScalerで同じような現象を経験したことがあります。 NAT構成でclient、lb、realが同一セグメントにある場合です。 同一セグメントにあるので、 client -> lb -> real real <- client になってしまい、正常に通信できませんでした。 同一セグメントからVIPに対してアクセスしたい場合はDSRに変更する必要があっ たのを 記憶しております。 ちなみに検証した結果ですが、 ツーアームのNATで問題なくソースIPを透過することができました。 以上、宜しくお願い致します。 TATEISHI Katsuyuki さんは書きました: > 稲垣さま、 > 立石です。こんばんは。 > > 稲垣 -san wrote: > > >> 送信元IPを透過したいとき、 >> NATモードを使う場合はツーアーム構成で、 >> DSRモードを使う場合はワンアーム構成ということですね。 >> >> > (略) > >>> ワンアーム構成(同一セグメント)での NAT 設定では,ソース IP アドレスを >>> 残すことはできません. >>> これは TCP/IP の通信方式に起因する制約です. >>> UltraMonkey-L7 を使用した場合と同じです. >>> > > 試していないので、動くかどうかわからないのですが、ワンアーム > 構成(同一セグメント)の場合には、リアルサーバのデフォルトルー > タとして LB サーバ を設定することで NAT 設定でも動作するかも > しれません。 > > ●同一セグメントでNAT構成が動かない理由(想像) > > リアルサーバがそのセグメントの本当のルータ(router)をデフォル > トルータとしている場合(いわゆる普通の設定です)、NAT構成では > > client -> router -> lb -> real > > # router の左右でネットワークセグメントが分かれていると思って > # 下さい > > 上記のように届くパケットの送信元が client のものであり、real > サーバは返信パケットを > > client <- router <- real > > のように投げてしまうのでlb サーバが書き換えできず、返信パケッ > トの送信元が real サーバの IP アドレスのままになってしまい、 > クライアントは身に覚えのないパケットとして捨ててしまうはずで > す。これがワンアーム構成(同一セグメント)で NAT 設定が動かな > い理由だと思います。 > > > ●同一セグメントでNAT構成を動かせるかもしれない方法 > > そこで real サーバのデフォルトルータとして router ではなく、 > lb を指定してやることで、返信パケットが > > client <- router <- lb <- real > > のように通るようになります。 > > 本来のルータが見えているのに他のマシンをデフォルトルータに設 > 定するのはかなり異質な感じがしますが、これで lb で返信パケッ > トの送信元IPアドレスをlbサーバのものに書き換えできるのではな > いかなと想像しています。 > > ただし、この場合も同一セグメントに client がある場合は動作し > ないはずです(real は client が自分と同じネットワークにいるこ > とがわかるのでデフォゲ(lb)に投げません)。 > > ●その他 > > lb サーバに NIC は2枚あるけどネットワークを分けたくないだけ、 > ということであれば lb サーバをブリッジとして設定したうえで、 > real サーバをルータから見て lb サーバの向こう側に接続してやれ > ばデフォルトルータをいじらなくても動くかもしれません(こちらも > 想像です) > > > 以上、手元に環境がないので試せていませんが参考になれば・・・ > > -- > TATEISHI Katsuyuki > > >>> >>> ワンアーム構成でソース IP アドレスを残したい場合は, >>> DSR モードを使用する必要があります. >>> >>> BIG-IP と同様に,ワンアーム構成の NAT モードでは LB サーバに >>> SNAT の設定を行う必要があるのですが,SNAT を実施した時点で TCP ヘッダ上の >>> ソース IP アドレスが LB サーバのものとなるため,リアルサーバにパケットが >>> 到着した段階でクライアントのソース IP アドレスは失われた状態となります. >>> >>> ツーアーム(別セグメント)構成では,リアルサーバ側とクライアント側の >>> ネットワークを物理・論理的に分割しリアルサーバのデフォルトゲートウェイを >>> LB サーバに設定することで,通常のルーティングのような見せ方を >>> することができるため,ソース IP アドレスを残すことができるのです. >>> >>> ----------------------------------------------------------- >>> Shinya TAKEBAYASHI >>> >>> E-mail: takebayashi.shinya @ oss.ntt.co.jp >>> GPG ID: E2695938 >>> GPG FP: 0412 40A9 B385 17EB 1E49 D2D2 DECA 8DE1 E269 5938 >>> ----------------------------------------------------------- >>> >>> >> _______________________________________________ >> Ultramonkey-l7-users mailing list >> Ultramonkey-l7-users @ lists.sourceforge.jp >> http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-users >>