web-dev-qa-db-ja.com

LinuxですべてのネイバーにARPアップデートをブロードキャストする方法は?

サブネット内の一部のクライアントは古いMACアドレスでIPをキャッシュしています。ARPブロードキャストを実行して新しい値を更新してほしいのですが、Linuxでは可能ですか?

21
Howard

はい、「未承諾ARP」または「無償のARP」と呼ばれています。詳細は arpingのマンページ を確認してください。ただし、構文は次のようになります。

arping -U 192.168.1.101

アドレスを偽装している場合、最初にこれを実行する必要があるかもしれません:

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

最後に、そのなりすまし機能のため、Unsolicited ARPパケットの送信は「悪意のある」アクティビティと見なされ、無視されるか、一部のサードパーティのファイアウォールによってブロックされる可能性があります。

28
tylerl

あなたが探しているものは「 Gratuitous 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
^C
3 packets captured
3 packets received by filter
0 packets dropped by kernel
laptop:~$ 
8

それは必要ない。のように:あなたがIPを変更したとき、コンピュータは自動的にそうするべきでした。クライアントがハードコードされている場合、ブロードキャストはhadcodedオーバーライドを変更しません。

私は現在約20年間ITを行っていますが、これまでずっと(!)故障した機器なしでこれを実現したことはありませんでした。

0
TomTom