我正在构建一个客户机/服务器应用程序,它使用多个网络接口并行进行冗余,我注意到,当一个网络接口出现故障或上升时,其他接口上的通信会暂停几秒钟。
不用使用简单的方法,我就可以复制这种行为:
当我在计算机1上打开WiFi连接时,吊死也会发生。如果我平接WiFi IP,关闭/打开以太网连接(或拔出/插头电缆),也会发生这种情况。
我在两台计算机上都使用LinuxUbuntu12.04。
有什么想法吗?为什么会发生这种情况?如果/如何避免?
发布于 2015-08-12 08:35:38
这是由于Linux的“杂乱的ARP”行为和ARP缓存的一个有趣的结合。本质上,所发生的事情是,尽管wifi本身没有IP地址,但它正在接收ARP请求,并且正在发送ARP响应。如果这是ARP响应,则本地子网(通常是路由器)上的另一台机器首先接收到ARP缓存。当ARP条目失效并且ARP请求被重复时,流量中的暂停将被解析,此时,另一个接口会给出唯一的响应,并且一切正常进行。
要阻止Linux这样做,需要将sysctl net.ipv4.conf.<interface>.arp_ignore设置为1。
https://serverfault.com/questions/601132
复制相似问题