私はPCaとPCbを持っています。
PCa:
$> ip addr && ip route
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:13:3b:0f:24:fc brd ff:ff:ff:ff:ff:ff
inet 192.168.3.150/24 brd 192.168.3.255 scope global eth6
valid_lft forever preferred_lft forever
inet6 fe80::213:3bff:fe0f:24fc/64 scope link
valid_lft forever preferred_lft forever
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether f8:b1:56:ba:ae:ee brd ff:ff:ff:ff:ff:ff
inet 192.168.10.150/24 brd 192.168.10.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.1.150/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet 172.18.0.150/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 2a00:801:19:1:288f:db46:14ef:cca8/64 scope global temporary dynamic
valid_lft 546270sec preferred_lft 27270sec
inet6 2a00:801:19:1:50c3:7b14:61bc:1bc0/64 scope global temporary deprecated dynamic
valid_lft 460473sec preferred_lft 0sec
inet6 2a00:801:19:1:fab1:56ff:feba:aeee/64 scope global dynamic
valid_lft 2591993sec preferred_lft 604793sec
inet6 fe80::fab1:56ff:feba:aeee/64 scope link
valid_lft forever preferred_lft forever
5: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default
link/gre 10.110.2.204 brd 10.110.0.115
6: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
7: netgw@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1256 qdisc noqueue state UNKNOWN group default
link/gre 10.110.1.222 peer 10.110.0.115
inet 192.168.4.1/24 scope global netgw
valid_lft forever preferred_lft forever
default via 172.18.0.1 dev eth0
169.254.0.0/16 dev eth6 scope link metric 1000
172.18.0.0/24 dev eth0 proto kernel scope link src 172.18.0.150
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.150
192.168.3.0/24 dev eth6 proto kernel scope link src 192.168.3.150
192.168.5.0/24 dev netgw scope link
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.150
PCB: 基板:
bash# ip addr && ip route
1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:05:68:02:68:dd brd ff:ff:ff:ff:ff:ff
inet 192.168.3.1/24 brd 192.168.3.255 scope global eth0
3: tunl0: <NOARP> mtu 1480 qdisc noop
link/ipip 0.0.0.0 brd 0.0.0.0
4: gre0: <NOARP> mtu 1476 qdisc noop
link/gre 0.0.0.0 brd 0.0.0.0
5: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:05:68:03:68:dd brd ff:ff:ff:ff:ff:ff
inet 192.168.3.2/24 brd 192.168.3.255 scope global eth1
7: netpc@NONE: <POINTOPOINT,NOARP,UP,10000> mtu 1476 qdisc noqueue
link/gre 10.110.0.115 peer 10.110.1.222
inet 192.168.5.1/24 scope global netpc
19: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,10000> mtu 1280 qdisc pfifo_fast qlen 3
link/ppp
inet 10.110.1.16 peer 192.168.111.111/32 scope global ppp0
192.168.111.111 dev ppp0 proto kernel scope link src 10.110.1.16
10.99.196.40 dev ppp0 scope link
8.8.8.8 dev ppp0 scope link
192.168.4.0/24 dev netpc scope link
192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.1
172.18.0.0/24 dev eth0 scope link
224.0.0.0/4 dev eth0 scope link
PCa、eth6 はイーサネット ケーブルを介して PCb、eth0 に接続されています。
今、PCb 上の 172.18.0.150 に ping を実行与える:
bash# ping 172.18.0.150
PING 172.18.0.150 (172.18.0.150) 56(84) bytes of data.
64 bytes from 172.18.0.150: icmp_seq=1 ttl=64 time=4.31 ms
64 bytes from 172.18.0.150: icmp_seq=2 ttl=64 time=0.848 ms
それで、pingはPCb 上の eth0私は推測し、PCa 上の eth6問題はそれがPCa 上の eth0それは172.18.0.150IPアドレス。なぜ返信が来るのかPCa 上の eth0、 いつPCb 上の eth0本当につながっているPCa 上の eth6?
IP はインターフェース自体にのみ関連付けられているのではないですか? これは想定された動作ですか? トンネルなどは気にしないでください...
答え1
はい、それは予想される動作です。ping 応答はそれ自体が IP パケットであり、応答先のパケットに特別に接続されているわけではありません。IP パケットは応答が続くための「回路」を形成せず、各パケットは独立してルーティングされます。
非対称ルーティングはインターネットでは非常に一般的です。たとえば、国をまたぐトラフィックの場合、宛先ネットワークが通常、長距離を移動します。したがって、私が国の反対側にあるサーバーに ping すると、そのプロバイダーはクエリを国中を移動しますが、私のプロバイダーは応答を国中を移動します。したがって、2 つのルートは非常に異なります。一方のパスがもう一方のパスと似ている特別な理由はありません。
答え2
Linux を使用している場合、これはデフォルト ゲートウェイと関係があると思います。すべてのインターフェイスが同じホスト上にあるため、すべての送信トラフィックはデフォルト ゲートウェイとそれに関連付けられたインターフェイスを経由します。
つまり、特定の IP アドレスに ping を実行しても、応答はデフォルト ゲートウェイ経由で返され、デフォルト ゲートウェイに関連付けられたインターフェイスから返されたことになります。
特定の IP アドレスに使用されるデフォルト ルートとインターフェイスを確認するには、以下を試してください。
ip route
root として実行するか、または を使用して実行しますsudo
。
答え3
これは scobe グローバル/スコープ リンクなどと関係がありますか?
おそらくルーティングテーブルとメトリックに関係していると思われます。
netstat -nr
PCbのコマンドプロンプトで
PCb は、Eth2 インターフェースが Eth1 よりも PCa に「近い」と確信していると思われます。
の出力に表示されるメトリックは、netstat
ルートの望ましさの尺度です。以前はホップ カウントでしたが、ルーティング プロトコルによってルートのコストの測定方法が異なるため、優先度の値として考えるのが最適です。
コマンドを使用してルーティングテーブルを一時的に操作することができますroute
(を参照route /?
)