web-dev-qa-db-ja.com

Hyper-VVM間のルーティングに関する問題

Windows 2008 Server(Hyper-V)にいくつかのVMがあり、それらの間のルーティングに問題があります。

セットアップでは、Hyper-VサーバーがRRASを実行し、そのNICのIPをVMが使用する内部IP(192.168.1.X)にマップします。VMはHyper-Vサーバーを次のように使用します。この設定の理由は、ISPがMACアドレスによってIPを割り当てるためです。そうしないと、VMはサーバーに割り当てられた外部IPを使用できません。

問題は、VMが外部IPアドレスを使用して相互に通信できないことです。たとえば、サーバーAが4.2.2.1(外部IP)/192.168.1.1(内部IP)で、サーバーBが4.2.2.2(外部IP)/192.168.1.2(内部IP)の場合、4.2から4.2.2.2にpingを実行することはできません。 .2.1。 192.168.1.2から192.168.1.1にpingを実行できます。また、4.2.3.1(別のサブネット)であるサーバーCがあり、そのマシンはサーバーAまたはサーバーBに問題なくpingを実行します。したがって、基本的に、マシンが別々のサブネット上にない限り、相互に通信することはできません。

192.168.1.Xを使用して通信しない理由は、この特定の目的のために監視サーバーをセットアップしているためです。この監視サーバーは、FQDN(servera.myservers.netなど)を使用してサーバーBにpingを実行しようとします。したがって、DNS障害などがあるかどうかを知る必要があります。

奇妙なことに、サーバーAからサーバーCにtracertを実行すると、最初の2回の試行でタイムアウトが発生し、次に接続が発生しますが、ゲートウェイを通過することはありません。

1
Adam Brand

Microsoft NAT実装は、そのNATで多くのNAT実装(古いCisco PIXOS、Linux ipchains-iptablesの前身)が行うアーティファクトに悩まされていると思います。 _は、「パブリック」インターフェイスのトラフィックarrivingでのみ発生します。この動作のCisco-ismは「ヘアピン」です(パケットが「ヘアピンターン」を行い、入力したインターフェイスを通過するためだと思います)。

これが類似の問題です:

お客様は、ネットワークのエッジにCisco PIXを使用して、パブリック静的IPアドレスとLANの間でNATを実行しています。 LAN上に192.168.1.1のHTTPサーバーがあり、パブリックIPは172.18.9.1です。 LAN上のPCで実行されているブラウザから「 http://172.18.9.1 "」へのリクエストは、PIX NAT実装が行うため、「ページを表示できませんでした」を返します。 NATではなく、172.18.9.1から192.168.1.1に向かう内部インターフェースに到着するトラフィック。

これは、私が話している動作についても説明するサーバー障害の質問です(ただし、ここでも、MicrosoftのNAT実装を具体的に引用していません): 上のホストコンピューターからNATサーバーに接続できません)パブリックIPアドレスを使用する同じLAN

MicrosoftのNAT実装でも同様の動作が見られると思いますが、確固たる証拠はありません(つまり、Microsoftのドキュメント)。手元にテストマシンを起動するためのリソースがありません。また、Microsoftは、ドキュメントで「hairpin」キーワードを肯定的または否定的に使用していないようです。

(私が上で参照したサーバー障害の質問では、人々が「ヘアピニング」の欠如を「正常」と見なしているのは、実際にはかなり面白いと思います。Linuxiptablesは、問題なく実行していることを処理します。この「ヘアピニング」を処理できないNAT実装は、常に劣っていると見なされます。)

2
Evan Anderson