Windows で VMware を使用して、iptables を実行する仮想 Linux ボックスをホストする際に問題はありますか? 物理ハードウェアでは動作するように見える構成がありますが、VMware では不安定です。
VMware を使用して、Windows 2003 Server ホストで仮想 Linux 2.6.24 マシンを実行しています。Linux アプリケーションは、基本的に .NET を実行する NATting ルーターですiptables
。表のルールは次のnat
とおりです。
Chain foo_pre
target prot opt in out source destination
LOG all -- * * 0.0.0.0/0 0.0.0.0/0 [options here]
LOG all -- * * 0.0.0.0/0 10.10.1.33 [options here]
DNAT all -- * * 0.0.0.0/0 10.10.1.33 tcp dpt:80 to:192.168.0.33:8080
Chain PREROUTING
target prot opt in out source destination
foo_pre all -- * * 0.0.0.0/0 0.0.0.0/0
を使用して 10.10.1.33:80 への着信パケットが表示されます。tcpdump
最初のLOG
メッセージはメッセージを生成しますがDNAT
、2 番目も 2 番目もLOG
パケット カウンターに登録されているパケットを表示せず、2 番目LOG
はメッセージを生成tcpdump
せず、へのパケットを表示しません。 192.168.0.33。
アダプタはeth0
10.10.0.0/16 ネットワーク上にあり、デフォルト ゲートウェイは 10.10.1.1 です。セカンダリ アドレスは 10.10.1.33/32 です。 /proc/sys/net/ipv4/config/eth0/forwarding
1に設定されています。
VMware が原因ですか、それとも何か不足していますか? ありがとう!
更新: テスト環境を簡素化しました。NAT ルールはまったくなく、Win2k3 サーバー ホストで実行されている Linux VM だけです。テスト手順:
VM はホスト NIC にブリッジされます。VM とホストは同じサブネット上にあり、上記と同じデフォルト ゲートウェイを使用します。
VM は、サブネット内外のデバイスと通信します: ICMP、TCP、UDP。通信は双方向です。どの機器が通信を開始するかは問題ではありません。
エンジニアは、システムを突っついている間にデフォルト ゲートウェイの電源を入れ直しました。
VM は、そのサブネット上のデバイスとのみ通信するようになりました。ステップ 2でゲートウェイを介して同じ機器に通信しようとしても、パケットを送信できません。 VM の eth0 の tcpdump は、応答のない発信パケットを示します。ホストの WireShark は、物理 NIC に何も表示しません。
VM を停止して再起動しても、その動作は変わりません。VM を停止し、適切な IP アドレスなどを持つ別の VM に置き換えても、動作は変わりません。
Win2k3 ホストは、サブネットの内外で正常に通信を続けます。
このことから、VM とホストの間、つまり VMware ドライバーまたはホストのネットワーク スタックで「何かが発生した」としか結論付けられません。私は再びウェブを精査するために出発します.... これを最初に観察したのは私たちだとは想像しがたいです.
彼らが来るように更新します。あなたの考えと議論をありがとう。