Rund um den ARP-Cache

letzte Änderung: 16. Dez 2014, 18:27 Veröffentlicht: 4. Feb 2008, 19:53

Inhaltsverzeichnis

Die Tools:

arp

arp ist Teil des net-tools Paketes und dient zur Anzeige und Manipulation des ARP-Caches.

 

arping

arping ist Teil des iputils Paketes und versendet ARP Pakete

  • ARP REQUEST
  • ARP REPLY
  • Gratuitous ARP (grundloses, überflüssiges ARP)
    • Suche nach mehrfach vorhandenen IP-Adressen
    • Aufforderung an andere Hosts den ARP-Cache mit der gesendeten MAC zu aktualisieren
  • Unsolicited ARP (unaufgeforderter ARP)
    • De-Registration von ARP-Einträgen, d.h. Aufforderung an andere Hosts ARP-Eintrag aus ihrem Arp-Cache zu löschen

 

ARP-Cache auslesen

 arp -v

 

oder alternativ mit

ip neigh show

 

server:~ # arp -a
server-29.mg-it.net (192.168.42.29) auf 00:15:17:21:fd:22 [ether] auf eth0
server-11.mg-it.net (192.168.42.11) auf 00:1a:64:ad:d2:2c [ether] auf eth0
server-25.mg-it.net (192.168.42.25) auf d4:be:d9:d3:4d:f1 [ether] auf eth0
server-28.mg-it.net (192.168.42.28) auf 00:15:17:9b:99:c4 [ether] auf eth0
router-01.mg-it.net (192.168.42.1) auf 00:00:0c:ae:16:ed [ether] auf eth0

 

server:~ # ip neigh show
192.168.42.29 dev eth0 lladdr 00:15:17:21:fd:22 REACHABLE
192.168.42.25 dev eth0 lladdr d4:be:d9:d3:4d:f1 REACHABLE
192.168.42.28 dev eth0 lladdr 00:15:17:9b:99:c4 REACHABLE
192.168.42.1 dev eth0 lladdr 00:00:0c:ae:16:ed STALE

 

lokalen ARP-Cache manipulieren

Manuelle Zuordnung einer IP Adresse zu einer MAC Adresse.

arp -s 192.168.86.101  00:0C:29:37:53:A9

Löschen eines statischen Eintrages.

arp -d 192.168.86.101

oder

ip neigh flush 192.168.86.101

 

Kompletten ARP-Cache löschen

ip neigh flush all

ARP-Cache-Einträge einer Netzwerkkarte löschen

ip neigh flush dev eth1

ARP-Cache-Einträge für ein Subnetz löschen

ip neigh flush 192.168.86.0/24

 

 

ARP Informationen mit arping an andere Hosts schicken

Senden eines ‘Gratuitous ARP’ (Setzen eines Eintrages an einem Nachbarn, z.B. Switch):

arping -q -c 3 -A -I eth0 192.168.86.11

 

Senden eines Unsolicited ARP (Ungefragte Antwort):

arping -q -c 3 -U -I eth0 192.168.86.11

 

arping – Suche nach doppelter IP

arping sendet 10 ARP REQUESTs (-c 10)

IP-Adresse im Netz gefunden:

server:~ # arping -D -c 10 -I eth1 192.168.86.11
ARPING 192.168.86.11 from 0.0.0.0 eth1
Unicast reply from 192.168.86.11 [00:0C:29:04:E2:D3]  1.036ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

 

IP-Adresse im Netz nicht gefunden:

server:~ # arping -D -c 10 -I eth1 192.168.86.12
ARPING 192.168.86.12 from 0.0.0.0 eth1
Sent 10 probes (10 broadcast(s))
Received 0 response(s)

 

 

Problem: „Neighbour table overflow“ – ARP-Cache voll

Größe des ARP-Cache zu klein bzw. ARP-Cache ist voll

Jan 21 00:05:36 server kernel: Neighbour table overflow.

 

Abhilfe:

z.B. durch verdoppeln der Standardwerte für

gc_thresh1, gc_thresh2, gc_thresh3

    gc_thresh1 (Default: 128)

        minimale Größe des ARP-Cache, d.h. Anzahl die beim Cache bereinigen auf jeden Fall erhalten bleibt 

    gc_thresh2 (Default: 512)

        Soft-Maximum-Größe der maximal fünf Sekunden überschritten darf bevor derARP-Cache bereinigt wird 

    gc_thresh3 (Default: 1024)

        maximale Größe des ARP-Cache. Ab diesem Wert wird eine permanente Bereinigung des ARP-Cach durchgeführt.
        Die Meldung Neighbour table overflow. wird geloggt. 

 

GC = „Garbage Collector“

einmalig, d.h. geht bei reboot verloren

server:~ # echo 256 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
server: ~# echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
server: ~# echo 2048 > /proc/sys/net/ipv4/neigh/default/gc_thresh3

 

oder dauerhaft in /etc/sysctl.conf

net.ipv4.neigh.default.gc_thresh1 = 256
net.ipv4.neigh.default.gc_thresh2 = 1024
net.ipv4.neigh.default.gc_thresh3 = 2048

 

interessanter Artikel zum Thema:

http://lutz.donnerhacke.de/Blog/Auf-gute-Nachbarschaft