2つのインターフェースを持つLinux仮想マシンがあり、eth0にはmgmt IPがあり、eth1は次のように構成されています。 ip netns exec eng51 ifconfig eth1.51 Link encap:Ethernet HWaddr 52:54:00:bd:68:c3 inet addr:51.51 .1.10 非キャスト: 51.51.1.255 マスク: 255.255.25.
ip netns exec eng52 ifconfig eth1.52 リンク encap: イーサネット HWaddr 52:54:00:bd:68:c3 inet addr:51.51.2.10 ブロードキャスト: 51.51.2.255 マスク: 255.255.255
ip netns exec eng522 ifconfig eth1.522 リンク encap: イーサネット HWaddr 52:54:00:bd:68:c3 inet addr:51.51.2.10 ブロードキャスト: 51.51.2.255 マスク: 255.205.25
ip netns exec eng511 ifconfig eth1.511 リンク encap: イーサネット HWaddr 52:54:00:bd:68:c3 inet addr:51.51.1.10 ブロードキャスト: 51.51.1.255 マスク: 255.205.25
したがって、TCPプロトコルを使用するスクリプトがあり、同時にトラフィックを送信する必要があります。
eng51 [51.51.1.10 vlan-id 51]からeng52 [51.51.2.10 vlan-id 52]まで同じスクリプトを使用してeng52 [51.51.1.10 vlan-id 511]からeng522 [51.51.2.12 vlan-
私は別の名前空間でスクリプトを実行しています。
client.pyの内部では、ソースポートを常に63999にバインドし、名前空間eng52およびeng522 sock.bind(('0.0.0.0',63999))に対してポート8000で実行されるHTTPserverを持っています。
送信元ポートを63999にバインドした理由は、両方のトラフィックセッションで送信元アドレス、宛先、アドレス、送信元ポート、宛先ポート、およびプロトコルが同じである必要があるためです。
私が直面している問題は、別の名前空間でこのスクリプトを実行してもソースポートが一意であるとは見なされないことです。 [同じポート63999を使用しているため]同時に他の名前空間でスクリプトを実行することはできません。
答え1
だから私は単純に複数のインターフェイスを使って仮想マシンの各インターフェイスを名前空間にマッピングすることでこれを達成しました。その後、同時に2つの同時セッションでソースポート63999を使用できます。
ip netns eng51 ifconfig eth1.51 link encap: Ethernet HWaddr 52:54:00:bd:68:c3 inet addr:51.51.1.10 ブロードキャスト: 51.51.1.255 マスク: 255.255.255.0
ip netns exec eng52 ifconfig eth2.52 リンク encap: イーサネット HWaddr 52:54:00:bd:68:c3 inet addr:51.51.2.10 ブロードキャスト: 51.51.2.255 マスク: 255.255.255
ip netns exec eng522 ifconfig eth3.522 リンク encap: イーサネット HWaddr 52:54:00:bd:68:c3 inet addr:51.51.2.10 ブロードキャスト: 51.51.2.255 マスク: 255.205.2
ip netns exec eng511 ifconfig eth4.511 リンク encap: イーサネット HWaddr 52:54:00:bd:68:c3 inet addr:51.51.1.10 ブロードキャスト: 51.51.1.255 マスク: 255.205.25