我有以下网络设置。
当红叉标记的链路处于开启状态时,我可以从第一台机器 (10.1.1.7) ping 到第二台机器 (10.1.1.3),没有任何问题。但是,如果我断开该链路并尝试从第一台机器 ping 到第二台机器,我会看到第二台机器的第二个接口 (10.1.3.2) 上发出了针对 IP 地址 10.1.1.3 的 arp 查询,但它没有回复这些查询。我认为这是意料之中的,因为该接口不知道其他接口的 IP 地址。
但是如果我仍然想让它们连接,我想我需要在以下之一中设置一些值:/proc/sys/net/ipv4/conf/(default|all)/arp_*
但是哪一个呢?我尝试设置了其中的一些,但没有成功。任何与此相关的帮助都将不胜感激。
** 更新 **
实际上,让我来澄清一下问题。我真正想要做的是从第一台机器向第二台机器开始文件传输。传输应该通过标记为“cross”的链接进行。在传输过程中,我将关闭该链接。传输应该自动切换到其他链接。您可以建议我对 IP 地址等进行任何更改。
我尝试的是:在机器 2 上,我将两个 MAC 接口保留在同一个子网中。即 NIC1:10.1.1.3 NIC2:10.1.1.17
然后我在机器 2 上创建了一个软件桥,给它 IP 地址 0,并在其下添加了 NIC1、NIC2。我的想法是桥将 NIC2 上收到的查询泛洪到 NIC1。
现在我遇到了一个新问题。当我将两个网卡都添加到网桥时,即使链路已打开,它们也会停止响应 ARP 查询。
答案1
我认为这是预料之中的,因为该接口不知道其他接口的 IP 地址。
是的。
但是哪一个呢?我尝试设置了其中的一些,但没有成功。任何与此相关的帮助都将不胜感激。
坦白说,我不明白你的意思,但你可能想问,如果交叉链路失败,如何能够 ping 通该 IP。如果我是对的,那么你必须在路由器上放置两个静态路由,例如:
route add 10.1.1.3/32 _ip_of_second_router (on the left router )
route add 10.1.1.3/32 10.1.3.2 (on the right)
更新:
如果有开关,则此方法无效:
- 10.10.0.3 与 10.1.1.7 位于同一子网,因此它将直接与他通信。
- 当链路发生故障时,PC 将与 10.1.1.7 接口 mac 进行通信
- 直至到期
- PC 会询问谁有 10.1.1.7
- 即使第二台 PC 回答说它在 10.1.3.2 接口上
- 第一台 PC 将开始与 10.1.3.2 接口的 mac 进行通信
- 但是当链接再次恢复时,第一台 PC 将继续与 10.1.3.2 接口的 mac 通信,并且不会选择 10.1.1.7 接口的 mac,直到第二条链接断开。