私は2つのシステムを持っており、それぞれに2つのイーサネットポートを備えたNICがあります。1つのシステムには検証済みのNICカードがありますが、もう1つのシステムにはNICこれを確認する必要があります。
ping
を使用して、NICカードのインターフェイスが正しく機能しているかどうかを確認します。
ping
が機能するために、各インターフェイスが異なるサブネット上にある必要があるのはなぜですか?
例えば:
System 1: eth0 (10.0.0.1), eth1 (10.0.1.1) -->This NIC is tested good
^ ^
| |
V V
System 2: eth0 (10.0.0.2), eth1 (10.0.1.2) -->This NIC is being tested
この設定では、eth0
のSystem 1
はeth0
のSystem 2
に接続されています。そして、eth1
のSystem 1
はeth1
のSystem 2
に接続されています。 255.255.255.0
のサブメットマスクを使用しています。
したがって、System 2
で、次のようにします。
$ ping -I eth0 -c 100 -qA 10.0.0.1
$ ping -I eth1 -c 100 -qA 10.0.1.1
なぜ私はこの設定をすることができなかったのですか?
System 1: eth0 (10.0.0.1), eth1 (10.0.0.2) -->This NIC is tested good
^ ^
| |
V V
System 2: eth0 (10.0.0.3), eth1 (10.0.0.4) -->This NIC is being tested
そして、次のことを行います。
$ ping -I eth0 -c 100 -qA 10.0.0.1
$ ping -I eth1 -c 100 -qA 10.0.0.2
複数のインターフェースを持つホストを持つことについてはどうですか?
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.0.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
システム1と2でeth1用に別のネットワークが構成されている場合、デフォルトでは、そのネットワークのパケットはeth0ではなくそれらのインターフェースを使用します。ただし、それらがすべて同じネットワーク上にある場合、システム2で10.0.0.4経由で10.0.0.2にパケットを送信するという特定のルートが指定されていない限り、デフォルトルート経由で送信されます。
システム2のルーティングテーブルを表示するには、
netstat -rn
このネットワークに特定のルートが設定されていない場合は、デフォルトルートが使用されます。
その動作を変更するには、システム2で次のようなコマンドを実行します。
route add -Host 10.0.0.2 10.0.0.4
(申し訳ありませんが、私はUbuntuを使用していないため、構文が異なる場合があります。必要に応じて、誰かがこの回答を確認して編集できる可能性があります。)