我有2对设置。
1. OpenSuse(A)和Opensuse(B)
2. OpenSuse(C)和Centos(D)
两个设置中都有3个接口,它们之间都内部连接。
即,第一对具有eth0,eth1,eth2
,第二对具有eth0,eth1,eth2
。
分配给接口的IP地址如下:
第一对
第二对
172.28.215.1
是eth0的网关。 eth1和eth2没有网关。 AB和CD之间没有连接有关eth1和eth2的电缆,只有eth0。即eth1和eth2连接在A&B之间,但不连接在A&C或A&D之间
问题是
第一对(A&B):
20.1.121.2 --> 20.1.121.3 -- works fine
20.1.121.2 --> 30.1.121.3 -- works fine
30.1.121.2 --> 20.1.121.3 -- works fine
30.1.121.2 --> 30.1.121.3 -- works fine
和另一种方法也很好 此外,我还可以在不同子网之间发送ARP数据包。我不知道这是怎么发生的。可能是这样配置的arptables,我是arptables概念的新手。
与第二对(C&D)一样
21.1.121.2 --> 21.1.121.3 -- works fine
21.1.121.2 --> 31.1.121.3 -- doesn't work
31.1.121.2 --> 21.1.121.3 -- doesn't work
31.1.121.2 --> 31.1.121.3 -- works fine
未发送数据包的情况是在不同子网之间。 这是发生了什么(关于arp和路由):
21.1.121.2 -> 21.1.121.3 ==> arp request was sent from C and arp response came from D and the packet was sent perfectly on eth1.
21.1.121.2 -> 31.1.121.3 ==> arp request was sent from C and arp response never came from D so, the packet was not sent.
现在更有趣的是从D到C的数据包传输:
21.1.121.3 -> 21.1.121.2 ==> arp request was sent from D and arp response came from C and the packet was sent perfectly on eth1.
31.1.121.3 -> 21.1.121.2 ==> arp request was never sent from D. Instead the packet was sent on eth0.
仅供参考:我可以在tshark/tethereal
数据包捕获中看到所有这些信息。在执行此操作之前,我清除了arp缓存。我决定基于mac地址发送和接收的数据包。我们发送的数据包是SIP数据包。
请让我知道是否需要更多信息。
现在的问题是,为什么会有这种区别?我该怎么做才能使第二对(主要在机器D上)作为第一对工作?