我在设置服务器时使用它arping -D
来检测网络内的重复 IP 地址。(网络由其他人控制,过去我们在 IP 分配方面遇到过很多问题。)只要我的主机在给定 VLAN 上有一个 NIC,它就可以正常工作,但是当我的主机有多个 NIC 时(我的主机在一个 VLAN 上有 9 个 NIC,在另一个 VLAN 上有 1 个 NIC),它arping -D
总是返回错误的冲突。
问题是,我的所有 9 个 NIC 都响应针对这些 NIC 上的任何 IP 的 ARP 请求。(这些是真实的物理 NIC,不是别名或任何东西。)我发出一个 ARP 请求数据包,并收到 9 个 ARP is-at ARP 回复,每个 MAC 地址一个。
我可以通过嗅探数据包并检查是否有任何具有本地 NIC 以外的 MAC 地址的回复来实现我自己的解决方案,但似乎应该有一种更简单的方法。
答案1
首先,不要在同一个子网上有九个网卡,如果您需要带宽,请使用绑定,如果您需要地址,请使用ip addr
。
要修复 arp 问题,只需设置以下 sysctl:
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2