我有一台 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。