Wie finde ich den Prozess, der die Arp-Anfrage verursacht?


7

Wenn ich tcpdump im Gateway ausführe, erhalte ich viele Arp-Anfragen, die vom Gateway selbst stammen. Ich frage mich, warum das passiert. Wie kann ich den Prozess finden, der diese Arp-Anfragen verursacht?

$ tcpdump -n arp 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
16:51:03.662114 ARP, Request who-has 211.123.123.251 tell 211.123.123.242, length 28
16:51:03.954113 ARP, Request who-has 211.123.123.246 tell 211.123.123.242, length 28
16:51:04.002111 ARP, Request who-has 211.123.123.254 tell 211.123.123.242, length 28
16:51:04.518111 ARP, Request who-has 211.123.123.248 tell 211.123.123.242, length 28
16:51:04.954113 ARP, Request who-has 211.123.123.246 tell 211.123.123.242, length 28
16:51:05.002110 ARP, Request who-has 211.123.123.254 tell 211.123.123.242, length 28
16:51:05.518110 ARP, Request who-has 211.123.123.248 tell 211.123.123.242, length 28
16:51:06.002112 ARP, Request who-has 211.123.123.254 tell 211.123.123.242, length 28
16:51:06.210111 ARP, Request who-has 211.123.123.252 tell 211.123.123.242, length 28
16:51:06.518114 ARP, Request who-has 211.123.123.248 tell 211.123.123.242, length 28
16:51:07.114111 ARP, Request who-has 211.123.123.246 tell 211.123.123.242, length 28
16:51:07.210111 ARP, Request who-has 211.123.123.252 tell 211.123.123.242, length 28
16:51:07.314112 ARP, Request who-has 211.123.123.249 tell 211.123.123.242, length 28

Es folgt die Gate-Konfiguration:

$ ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 6c:f0:49:a8:05:4c brd ff:ff:ff:ff:ff:ff
    inet 211.123.123.242/28 brd 211.123.123.255 scope global eth0
    inet6 fe80::6ef0:49ff:fea8:54c/64 scope link 
       valid_lft forever preferred_lft forever

In diesem Subnetz ist nur 211.123.123.242 (die Gateway-IP) verfügbar, andere IPs (wie 211.123.123.246) sind nicht verfügbar.

Aktualisieren:

Ich kann Verkehr zu diesen nicht verfügbaren IPs sehen, ich denke, dies ist der Grund für diese Arps. Obwohl ich noch nicht herausfinden kann, warum dieser Verkehr passiert. Möglicherweise die Fehlkonfiguration in den ISP-Anbietern.

$ tcpdump host 211.103.252.245
23:50:11.414705 IP 59.34.131.5.7099 > 211.123.123.245.17701: Flags [S.], seq 3745049197, ack 1625918577, win 8760, options [mss 1460], length 0
23:50:12.991258 IP 75.126.1.222.80 > 211.123.123.245.1078: Flags [S.], seq 651817046, ack 152032452, win 17473, length 0

Antworten:


8

Dieses Verhalten tritt sehr häufig auf, wenn ein DHCP-Server ausgeführt wird. Der Server prüft Adressen im Lease-Bereich, um festzustellen, welche davon frei sind. Es gibt auch andere Netzwerküberwachungslösungen, die ARP verwenden, um zu verfolgen, welche Adressen in einem Netzwerk verwendet werden.

Soweit ich weiß, gibt es in Unix kein System wie Systeme, um zu sehen, welches Programm eine Arp-Anfrage initiiert. Sie könnten möglicherweise strace / ktrace / dtrace verwenden, um den Systemaufruf zu finden.

Am Ende würde ich mir keine Sorgen machen. Eine große Anzahl von ARP-Paketen kann Probleme verursachen, jedoch nur, wenn sie in den Bereich von 1000pps gelangen. Ein paar Pakete pro Sekunde sind kein Grund zur Sorge.


Vielen Dank, verfolgen Sie den Prozess eins nach dem anderen ist ein Weg. Es tut mir so leid, dass es keinen besseren Weg gibt.
Ping Yin

6

ARP-Anforderungen auf einem Router sind erwartete Verhaltensweisen. ARP-Anforderungen werden verwendet, damit der Router die Adresse des nächsten Hops im Netzwerk für eine bestimmte Route kennt. Die Hauptaufgabe besteht darin, eine IP-Adresse einer MAC-Adresse zuzuordnen.

Aus dem oben angegebenen Beispiel geht nicht hervor, dass ARP übermäßig hoch ist.


4

Wenn die ARP-Pakete von einer Linux-Box stammen, können Sie versuchen, eine großzügige Anzahl von iptables-Regeln mit der Option --pid-owner XXX zu generieren (entspricht, wenn die PID des Prozesses, der das Paket erstellt, XXX ist; Sie müssten einen großen Bereich von abdecken PID-Zahlen) und hoffen, dass der Prozess, der tatsächlich Pakete sendet, kein kurzlebiger Spawn von etwas anderem ist.

Alternativ können Sie (viel weniger) die Optionen --uid-owner XXX verwenden, um die UID des Eigentümers des Prozesses zu ermitteln, der das Paket gesendet hat.

Wenn 211.123.123.242 Ihr Gateway ist und nach MAC-Adressen sucht, die verschiedenen IPs aus diesem Netzwerk entsprechen, müssen möglicherweise einige Pakete von außerhalb des Netzwerks zugestellt werden. Wer und warum versucht, mit nicht vorhandenen Adressen zu kommunizieren, ist möglicherweise interessanter zu untersuchen, als auf der Gateway-Box nach dem Urheber von ARP-Anforderungen zu suchen.


Ich habe meine Frage aktualisiert. Sie haben Recht, es gibt Pakete von außerhalb zu den nicht verfügbaren IPs, obwohl ich den Grund noch nicht herausgefunden habe.
Ping Yin

1
@Ping Yin Wahrscheinlich werden Sie nach einem Exploit durchsucht.
Paweł Brodacki

Öffentliches Scannen ist im Grunde ein kontinuierliches Ärgernis. Es gibt so viele gefährdete Computer, die nach anderen Computern suchen, um zu gefährden, dass Sie kontinuierliche ARPs für jede öffentliche IP sehen.
Mfarver

Vielen Dank für den Hinweis, es kann am öffentlichen Scannen liegen.
Ping Yin

1

ARP-Anfragen sind normal. Dieses Protokoll wird verwendet, um festzustellen, wo sich einige Computer mit MAC befinden. dann wird über ARP IP erstellt. ARP wird im Kernel als ARP-Modul erstellt. Überprüfen Sie dies und das

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.