如果两个 NIC 位于同一子网且拔下 eth0,则无法 ping PetaLinux 机器

如果两个 NIC 位于同一子网且拔下 eth0,则无法 ping PetaLinux 机器

我有一台 PetaLinux 机器(Xilinx Zynq 设备上的嵌入式 Linux,Debian fork,内核 4.19)。如果两个 NIC 都打开不同的子网,那么我可以断开一个网卡,另一个网卡将继续工作。但如果它们位于相同的子网,则断开 eth0 将导致两者都无法访问。(断开 eth1 即可。)此外,如果地址是通过 DHCP 获取的,则断开 eth0 的插头也是可以的。

现在,我明白了,默认情况下,Linux 在选择用于响应任何消息的 NIC 时有一个薄弱的策略,这是我几年前处理过的问题,另一篇文章

不幸的是,这个解决方案似乎不适用于我们这里的 Linux 版本。我们是否需要针对较新的内核采取一些新措施?

提前致谢。

更新

两根电缆都插入后,输入“ip route”:

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.195
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.196

拔下 eth0 时的“ip route”(故障情况):

default via 192.168.1.1 dev eth0 linkdown
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.195 linkdown
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.196

拔下 eth1 时“ip route”(工作正常):

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.195
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.196 linkdown

重申一下,当 192.168.1.195 的 NIC 被拔掉时,我们无法 ping 192.168.1.196。

相关内容