Linux
如何在 Linux 中向所有鄰居廣播 ARP 更新?
子網中的一些客戶端已經用舊的 MAC 地址記憶體了 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”驗證 ARP 是否正在發送,在這種情況下,我正在觀看“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 12:14:13.220397 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:~$