Linux

debian客戶端連接到同一個交換機,ping問題

  • May 2, 2013

我有兩台機器連接到同一個交換機。機器有多個連接到不同網路的乙太網介面。電腦 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 上得到響應,依此類推。

與往常一樣,我建議閱讀此頁面,它很好地解釋了概念,並為您提供了更多範例。

引用自:https://serverfault.com/questions/504354