複数の仮想IP(192.168.11.X)をルーティングしてテストサーバー(192.168.10.246)に接続する

複数の仮想IP(192.168.11.X)をルーティングしてテストサーバー(192.168.10.246)に接続する

マルチ接続/メッセージ処理をシミュレートするためにサーバーテスト用のテストベンチを設定しようとしており、仮想IPからテストサーバーに接続しようとしています。

クライアントコンピュータ(Debian)で「/etc/network/interfaces」で仮想IPを作成する

allow-hotplug eth0
iface eth0 inet dhcp (192.168.10.2)

auto eth0:1
allow-hotplug eth0:1
iface eth0:1 inet static
address 192.168.11.1
netmask 255.255.0.0
gateway 192.168.11.1

auto eth0:5
allow-hotplug eth0:5
iface eth0:5 inet static
address 192.168.11.5
netmask 255.255.255.0
gateway 192.168.11.1


auto eth0:6
allow-hotplug eth0:6
iface eth0:6 inet static
address 192.168.11.6
netmask 255.255.255.0
gateway 192.168.11.1

サーバーIP:192.168.10.246

私たちが使用するテストクライアントと「eth0.6」サーバーに接続しましたが、接続に失敗しました。

案内をリクエストしましたが、ルーティング設定がありませんか?

答え1

eth0:1などは、単一のインターフェイスに複数のIPアドレスを割り当てる古い方法です。新しいツール(ip addr)はIPリストのみを表示します。決して「仮想インターフェイス」ではありません。

単一のインターフェイスに複数のIPv4アドレスがある場合は、各アプリケーションに特定のIPアドレスにのみバインドするように指示しない限り、大きな問題が発生する可能性があります(多くのアプリケーションではこれを実行できません)。

どのプロトコルをテストしているかは明らかではありませんが、単一のシステムでより複雑なネットワークアーキテクチャをシミュレートするより簡単な方法は次のとおりです。ネットワークネームスペース。必要なだけクライアントを作成し、仮想イーサネットペアで接続し、それぞれで1つ以上のクライアントを実行して、テストしたい項目をテストします。

ネットワークネームスペースを設定する方法のチュートリアルはGoogleで閲覧でき、多くのチュートリアルがあります。名前空間ごとに少なくとも1つのxtermを実行することをお勧めします。これにより、プログラムの起動が簡単になります。

答え2

ネットワーク間でIPパケットをルーティング/転送できるように、アクティブなシステムのIP転送機能はありません。

ファイルを編集し/etc/sysctl.confて以下を追加します。

net.ipv4.ip_forward=1

次に、次のようにします。

sudo sysctl -p

設定によってはまだ必要かどうかはわかりません。/etc/sysctl.conf

net.ipv4.conf.all.rp_filter=0

また、この質問を見てください。カーネルIP転送とは何ですか?

関連情報