Debian 客户端连接到同一个交换机,ping 问题

Debian 客户端连接到同一个交换机,ping 问题

我有两台机器连接到同一个交换机。机器有多个以太网接口连接到不同的网络。计算机 A 可以 ping 连接到同一个交换机的天线,但无法使用正确的接口 ping 计算机 B。(在我的情况下通过 ping -I eth2),但计算机 B 可以 ping 天线,也可以使用正确的接口 ping 计算机 A(在我的情况下通过 ping -I eth9)。

我检查了接口详细信息,它们都有相同的子网掩码,我尝试了 tracert -i,结果与我上面提到的问题一致,但没有发现太多信息。计算机 A 上的 tracert 进行了 30 跳,最终无法到达计算机 B. route 命令显示路由表相似,我看到的唯一区别是计算机 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

答案1

如果您在同一网络上有两个独立的物理接口,并连接到同一个 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 上得到响应,依此类推。

与往常一样,我建议你阅读一下,它很好地解释了这些概念,并且还为您提供了更多示例。

相关内容