debian客戶端連接到同一個交換機,ping問題
我有兩台機器連接到同一個交換機。機器有多個連接到不同網路的乙太網介面。電腦 A 可以 ping 連接到同一交換機的天線,但無法使用正確的介面 ping 電腦 B。(在我的情況下通過 ping -I eth2),但電腦 B 可以 ping 天線並且可以使用正確的介面 ping 電腦 A (在我的情況下通過 ping -I eth9 )。
我檢查了它們都具有相同子網遮罩的介面詳細資訊,我嘗試了 tracert -i ,結果與我上面提到的問題一致,但並沒有透露太多。電腦 A 上的 tracert 花了 30 跳,最後它無法到達電腦 B。路由命令顯示路由表是相似的,我看到的唯一區別是電腦 B 在子網中定義了兩個介面,但只有一個介面物理連接在時間,這會導致這個奇怪的問題嗎?任何建議,將不勝感激。
電腦A
eth0 Link encap:Ethernet HWaddr 68:05:ca:02:e3:5c inet addr:16.1.8.61 Bcast:16.1.63.255 Mask:255.255.192.0 inet6 addr: fe80::6a05:caff:fe02:e35c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:144031 errors:0 dropped:0 overruns:0 frame:0 TX packets:11423 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:11302308 (10.7 MiB) TX bytes:853551 (833.5 KiB) Memory:fe8e0000-fe900000 eth2 Link encap:Ethernet HWaddr 00:d0:c9:ce:6d:7c inet addr:192.168.1.15 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::2d0:c9ff:fece:6d7c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:168 errors:0 dropped:0 overruns:0 frame:0 TX packets:402 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:17398 (16.9 KiB) TX bytes:41787 (40.8 KiB) Memory:fe9e0000-fea00000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:120 errors:0 dropped:0 overruns:0 frame:0 TX packets:120 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:8480 (8.2 KiB) TX bytes:8480 (8.2 KiB)
電腦B
eth7 Link encap:Ethernet HWaddr 00:d0:c9:ce:6c:b2 inet addr:16.1.8.64 Bcast:16.1.63.255 Mask:255.255.192.0 inet6 addr: fe80::2d0:c9ff:fece:6cb2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:134026 errors:0 dropped:0 overruns:0 frame:0 TX packets:3212 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:10611871 (10.1 MiB) TX bytes:272509 (266.1 KiB) Memory:fe9e0000-fea00000 eth8 Link encap:Ethernet HWaddr 68:05:ca:02:e1:c2 inet addr:192.168.1.60 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:8228 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Memory:fe8e0000-fe900000 eth9 Link encap:Ethernet HWaddr 68:05:ca:02:e1:c3 inet addr:192.168.1.57 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::6a05:caff:fe02:e1c3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:383 errors:0 dropped:0 overruns:0 frame:0 TX packets:157 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:40794 (39.8 KiB) TX bytes:15778 (15.4 KiB) Memory:fe880000-fe8a0000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:250 errors:0 dropped:0 overruns:0 frame:0 TX packets:250 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:22872 (22.3 KiB) TX bytes:22872 (22.3 KiB)
路由表 A
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 eth2 localnet * 255.255.192.0 U 0 0 0 eth0 default pfizmir.xxxx 0.0.0.0 UG 0 0 0 eth0
如果在同一個網路上有兩個獨立的物理介面,連接到同一個 VLAN,則需要設置一些特定的路由規則,確保伺服器在接收數據包的同一介面上響應。
ip
您可以創建其他表,這些表僅在其中一個介面接收到流量時使用。首先,您需要創建兩個單獨的路由表。
echo 201 E9 >> /etc/iproute2/rt_tables echo 200 E8 >> /etc/iproute2/rt_tables
這將創建將決定如何路由數據包的表。
ip route add 192.168.1.0 dev eth9 src 192.168.1.57 table E9 ip route add default via <your gateway for 192.168.1.0> table E9 ip route add 192.168.1.0 dev eth8 src 192.168.1.60 table E8 ip route add default via <your gateway for 192.168.1.0> table E8 ip rule add from 192.168.1.57 table E9 ip rule add from 192.168.1.60 table E8
這應該確保到達 eth9 的數據包在 eth9 上得到響應,依此類推。
與往常一樣,我建議閱讀此頁面,它很好地解釋了概念,並為您提供了更多範例。