Wie übertrage ich ein ARP-Update unter Linux an alle Nachbarn?

21

Einige Clients im Subnetz haben die IP mit der alten MAC-Adresse zwischengespeichert. Ich möchte, dass sie den neuen Wert durch eine ARP-Übertragung aktualisieren. Ist dies unter Linux möglich?

Howard
quelle

Antworten:

27

Ja, es heißt "Unerbetene ARP" oder "Unfreiwillige ARP". Überprüfen Sie die Manpage auf Arping für weitere Details, aber die Syntax sieht ungefähr so aus:

arping -U 192.168.1.101

Wenn Sie eine Adresse fälschen, müssen Sie diese möglicherweise zuerst ausführen:

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

Aufgrund seiner Spoofing-Fähigkeit wird das Senden unerwünschter ARP-Pakete manchmal als "feindliche" Aktivität angesehen und kann ignoriert werden oder dazu führen, dass Firewalls von Drittanbietern blockiert werden.

tylerl
quelle
8
Unter Debian war der Befehl für mich arping -S ip.to.update -i ethX destination.host. Beispiel:arping -S 10.0.0.2 -i eth0 10.0.0.1
radicand
3
Ich fand es notwendig, ein Arping zu einem Router durchzuführen, wie oben in Linux beschrieben, wenn die IP ein Alias ​​auf dem Gerät ist (dh entweder eine sekundäre Netzwerkkarte verwendet die IP oder es ist ein Alias ​​auf einem vorhandenen NIS, der unter Verwendung eines ifconfig ethx:xTyps eingerichtet wurde von alias). Wenn es die primäre ist, scheint es nie notwendig zu sein.
8

Was Sie suchen, heißt " Gratuitous ARP " und kann mit "Arping" durchgeführt werden. Wenn Ihre IP-Adresse 10.0.0.1 für eth0 lautet, würden Sie diesen Befehl verwenden:

arping -A -I eth0 10.0.0.1

Sie können überprüfen, ob der ARP gesendet wird, indem Sie "tcpdump" verwenden, während der "Arping" ausgeführt wird. In diesem Fall schaue ich "wlan0" an:

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:~$ 
Sean Reifschneider
quelle
-1

Es ist nicht notwendig. Wie in: Wenn Sie die IP geändert haben, sollte dies der Computer automatisch tun. Wenn die Clietns fest codiert sind, ändert eine Sendung nicht die Override-Codierung.

Ich mache es jetzt seit ungefähr 20 Jahren und in all der Zeit habe ich NIE (!) Ohne fehlerhafte Ausrüstung so etwas erlebt.

TomTom
quelle
Das Problem ist, dass ich versehentlich eine neue Maschine mit einer benutzten IP vergebe, so dass sie in Konflikt mit der IP steht. Ich kann mit SSH nicht auf den alten Computer zugreifen. Jetzt habe ich die falsche (neue) Maschine aus der Ferne heruntergefahren, kann aber immer noch nicht auf die alte Maschine zugreifen. Ich vermute, dass der Router die MAC-Adresse in seiner ARP-Tabelle zwischengespeichert hat.
Howard
1
Dies nennt man "unbegründetes ARP" - siehe en.wikipedia.org/wiki/…
Kimvais
Sollte funktionieren, nachdem der Arp-Cache abgelaufen ist. Sie können auch versuchen, die Arptabelle auf dem Computer zu leeren, von dem aus Sie auf den alten Computer zugreifen
möchten
4
@TomTom - Vielleicht haben Sie einfach nicht in der richtigen Umgebung gearbeitet, um es zu sehen. Das Senden unerwünschter ARP-Pakete ist eine gängige Methode, um den Datenverkehr in einer Failover-Situation schnell auf einen neuen Server umzuleiten. Bei vielen High-End-Switches und -Routern kann es einige Minuten dauern, bis erkannt wird, dass eine IP-Adresse ansonsten an einen anderen physischen Port verschoben wurde. Cisco-Switches sind dafür berüchtigt.
TylerL
4
@TomTom: Ja, wenn Sie ein Failover über Heartbeat / Corosync durchführen. Wenn Sie jedoch Dienste manuell von einem Computer auf einen anderen verschieben, insbesondere wenn Sie Cisco-Geräte verwenden, ist das manuelle Senden eines kostenlosen ARP äußerst hilfreich. Ich bin damit einverstanden, dass Sie dies nicht häufig tun, aber als jemand, der seit 20 Jahren auch IT-Aufgaben wahrnimmt, habe ich mich in einer Reihe von Situationen wiedergefunden, in denen ich dies tun musste.
Sean Reifschneider