我有一个Linux系统,它有两个以太网接口,eth0和eth1,它们使用在同一个子网上。有时,我看到,即使当其中一个接口断开(电缆断开),Linux继续使用它的IP地址。
例如,如果eth0在插入eth1时断开连接,则可以看到“plugged”命令将eth0报告为默认接口。
~ $ ip ro get 192.168.1.1
192.168.1.1 dev eth0 src 192.168.1.5
因此,scp和ping等工具最终使用了断开连接的接口&失败。
我的问题是,为什么Linux继续使用断开连接的接口?它不应该自动检测和停止使用它们吗?
在Arch Linux ARM (Raspberry Pi)内核4.4.37上,我创建了一个macvlan。
ip link add link eth0 mac0 type macvlan
然后,macvlan虚拟网卡出现在列表中,因此我给它分配了一个IP地址,并将链接状态设置为up。(顺便说一下,我尝试过bridge、vepa和private模式。)
然后,我可以从我的Windows客户端平IP,但是当我在Windows中检查ARP缓存(arp -a)时,它们显示的是与主(物理)网络适配器相同的MAC地址,而不是新创建的macvlan MAC地址。
我确保清除ARP缓存,尝试一个客户以前从未
有谁能详细解释一下为什么我们需要在每个MC-滞后对等点上设置静态arp条目。在下面的Juniper文档中提到了这一点
https://www.juniper.net/documentation/en_US/junos/topics/concept/mc-lag-feature-concepts.html
基于IRB和MAC地址同步的虚拟路由器冗余协议
如果使用VRRP方法启用第三层功能,则必须为远程MC-滞后对等方的IRB接口配置静态ARP条目,以允许路由协议在IRB接口上运行。This step is required so you can issue the ping command to
后来我换了一个无线路由器,一切都好起来了。也许前一个路由器和后者之间有什么不兼容的地方。但我不明白原因。
-更新
~ % uname -a
Linux archlinux 3.17.6-1-ARCH #1 SMP PREEMPT Sun Dec 7 23:43:32 UTC 2014 x86_64 GNU/Linux
~ % ip route
default via 192.168.1.1 dev wlp3s0 metric 303
192.168.1.0/24 dev wlp3s0 proto kernel scope link src 192.168