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


21

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

回答:


27

はい、「Unsolicited ARP」または「Gratuitous ARP」と呼ばれます。詳細については、アーピングマンページを確認してください。ただし、構文は次のようになります。

arping -U 192.168.1.101

アドレスをスプーフィングしている場合は、最初にこれを実行する必要がある場合があります。

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

最後に、そのなりすまし機能により、未承諾ARPパケットの送信は「敵対的な」アクティビティと見なされることがあり、無視されるか、サードパーティのファイアウォールによってブロックされる可能性があります。


8
debianでは、私のコマンドはでしたarping -S ip.to.update -i ethX destination.host。例:arping -S 10.0.0.2 -i eth0 10.0.0.1
ラディカンド

3
IPがデバイスのエイリアスである場合(つまり、セカンダリNICがIPを使用しているか、ifconfig ethx:xタイプを使用してセットアップされた既存のNISのエイリアスである場合)、Linuxで上記のようにルーターにarpingを行う必要があることがわかりましたエイリアスの)。それがプライマリである場合、それは決して必要ではないようです。

8

探しているのは「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:~$ 

-1

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

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


問題は、誤って新しいマシンに使用済みのIPを割り当てるため、IPが競合することです。SSHを使用して古いマシンにアクセスできません。今、間違った(新しい)マシンをリモートでシャットダウンしましたが、古いマシンにアクセスできません。ルーターがARPテーブルにMACアドレスをキャッシュしていると思われます。
ハワード

1
これは'無償ARP「」と呼ばれている-を参照してen.wikipedia.org/wiki/...
Kimvais

arpキャッシュの有効期限が切れた後に機能するはずです。古いマシンにアクセスしようとしているマシンのarpテーブルをフラッシュすることもできます
Kimvais

4
@TomTom-おそらく、あなたはそれを見るために適切な環境で作業していないだけでしょう。非送信請求ARPパケットの送信は、フェールオーバー状況で新しいサーバーにトラフィックをすばやく再ルーティングする一般的な方法です。それ以外の場合、多くのハイエンドスイッチおよびルーターは、IPアドレスが別の物理ポートに移動したことを認識するまでに数かかる場合があります。Ciscoスイッチはこのことで有名です。
タイラー

4
@TomTom:はい、ハートビート/コロシンク経由でフェイルオーバーしている場合は何でも。ただし、1つのマシンから別のマシンに手動でサービスを移動する場合、特にCiscoのギアを使用している場合は、Gratuitous ARPを手動で送信することは非常に便利です。頻繁に行うことではないことに同意しますが、20年もITを行ってきた誰かとして、私はそれを行う必要がある多くの状況にいることに気づきました。
ショーンレイフシュナイダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.