如何在Linux中向所有邻居广播ARP更新?

子网中的一些客户端使用旧的MAC地址caching了IP,我希望他们通过ARP广播来更新新的值,在Linux中是可行的吗?

    是的,它被称为“未经请求的ARP”或“免费ARP”。 检查手册页以获取更多详细信息,但语法如下所示:

    arping -U 192.168.1.101 

    如果你在欺骗地址,你可能需要先运行这个地址:

     echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind 

    最后,由于欺骗能力的原因,发送未经请求的ARP报文有时被认为是“敌对”行为,可能会被忽略,或者可能会被某些第三方防火墙阻止。

    你在找什么叫做“ 免费ARP ”,可以用“arping”来完成。 如果你的IP地址是eth0上的10.0.0.1,你可以使用这个命令:

     arping -A -I eth0 10.0.0.1 

    在“arping”运行时,你可以使用“tcpdump”来validationARP是否被发送,在这种情况下我正在看“wlan0”:

     laptop:~$ sudo tcpdump -lni wlan0 arp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes 12:14:11.219936 ARP, Reply 172.16.42.161 is-at a4:77:03:d2:9b:c4, length 28 12:14:12.220119 ARP, Reply 172.16.42.161 is-at a4:77:03:d2:9b:c4, length 28 12:14:13.220288 ARP, Reply 172.16.42.161 is-at a4:77:03:d2:9b:c4, length 28 ^C 3 packets captured 3 packets received by filter 0 packets dropped by kernel laptop:~$ 

    没有必要。 如:在更改IP时,计算机应自动完成。 如果clietns是硬编码的,广播不会改变已编码的覆盖。

    我做了20年的IT,在这个时候我从来没有(!)没有错误的设备发生这种情况。