マルチ接続/メッセージ処理をシミュレートするためにサーバーテスト用のテストベンチを設定しようとしており、仮想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転送とは何ですか?