質問

2011年12月25日 22時41分
  • 複数のIPアドレスを割り当てた場合の発信元IPアドレスについて

情シスのオープンナレッジ『Syszo』サービス終了のお知らせ

質問

複数のIPアドレスを割り当てた場合の
発信元IPアドレスについての質問です。

以下の状況があります。
・DMZのあるサーバで2ポートのNICが1つあります。
・2つのポートはチーミングしています(実質1ポート)
・OSはWindowsServer2003です。
・そのポートにIPアドレスを4つ割り当てています。
 (例:172.16.0.101〜104)
・外側からの通信はそれぞれのIPに割り振られています。
 (Web→101、DNS→102)

そこにアプリケーションサーバを追加したい
・APサーバはIIS上の.NET。
・内側のDBに接続したい。
・FWに開ける経路は1つにしたい。

テストをしたところ、
・発信元IPアドレスは172.16.0.101となっていた。
・FWで172.16.0.101を通して通信できる事を確認している。

そこで質問ですが、
・この発信元アドレスは常に172.16.0.101と考えて宜しいでしょうか。
・もし動的なものである場合、どの様な条件でどの様に変更されるでしょうか。
・動的な場合に、それを固定に制御できますでしょうか。
・その場合、どこで設定できるでしょうか。
・OSを2003から2008に移行した場合、挙動は変わりますでしょうか。

以上、よろしくお願いいたします。

※冒頭の状況の部分については、運用環境のため変更不可です

2件の回答があります

回答

昔に使っていたオフコンはIPを2つ持っていましたが、普段は若い番号でやり取りしていて、負荷が高くなってくるともう1つのアドレスも使うようになっていました。
IAサーバではないのでIAサーバでは違うかもしれません。

回答

ネットワークプログラムを組むとわかりますが、
通信時にプログラムがどの通信インターフェースにバインドするかは
プログラム側で決定することができます。
また、IP層でどのような動きをするかはOS依存が大きく、
OSのバージョンによって挙動が変わる可能性があります。
そのため、Microsoftのエンジニアでない限り、厳密には上記の質問に回答できないはずです。

Sherylさんの環境で複数のIPアドレスが同一サブネット内に存在し、
同じデフォルトゲートウェイを使用しているマルチホーム環境であると仮定すると、
DBサーバへの接続時にどのアドレスがソースアドレスになるかは
route printコマンドで出てくるルーティングテーブルで
DBサーバ宛のルーティングが切ってある行の「インターフェース」という列に記述してあるアドレスではないかと思います。(無ければ0.0.0.0の行)

もしソースアドレスを固定したいというのであればWEBやDNSサービスと同様に
アプリケーションサーバを特定のアドレスにバインドするか、
インターフェースを指定してスタティックルーティングを切るかすれば
特定のアドレスがソースになるのではないでしょうか?

例えばサーバに非常に大きな負荷がかかり、
デフォルトで使用されるインターフェースのTCPソースポートを使い切ったときに別のIPアドレスを使うかもしれない
というような例外的なケースまで確認したいときは
Microsoftのサポートを利用されるのが良いでしょう。

2012年01月06日 00時26分
csp

あなたもコメントしましょう!