Wird Linux den ARP kostenlos oder den ARP-Test senden (definiert in RFC 5227)?


7

Ich habe ein Experiment durchgeführt, um zu überprüfen, ob Linux den kostenlosen ARP- oder ARP-Test sendet, bevor die Ziel-IP verwendet wird.

Das Experiment-Szenario ist wie folgt:

Es gibt zwei Linux-Computer, die beide mit demselben AP verbunden sind. Ich habe die erste zuerst angeschlossen und ifconfig wlan0 192.168.1.30die IP-Adresse statisch festgelegt (dies ist die Standard-IP-Adresse eines anderen Linux-Computers).

Dann benutze ich WPA_supplicant, um den anderen zu verbinden und dhclient wlan0um die IP-Adresse zu erhalten. Vom Schnüffler aus habe ich keine kostenlose ARP- oder ARP-Sonde beobachtet, die vom zweiten Computer gesendet wurde.

Ich frage mich nur, unter welchen Bedingungen wird der Linux-Computer diese beiden ARP-Anfragen senden? Unter den gleichen Bedingungen beobachte ich, dass mein Windows-Computer den ARP-Test sendet, um die IP abzurufen.

Vielen Dank

Antworten:


2

Zum manuellen Konfigurieren einer IP-Adresse auf einem Gerät muss das Gerät nicht nach Adresskonflikten suchen. Nur wenn das Gerät seine eigene IP-Adresse (DHCP usw.) konfiguriert, sollte es nach Adresskonflikten suchen.

Wenn Sie ein Gerät manuell konfigurieren, wird kein unentgeltliches ARP angezeigt, da das Gerät seine Adresse nicht ändern (oder eine neue Adresse anfordern) kann, wenn es einen Konflikt entdeckt. Der Zweck des RFC besteht darin, dass ein Gerät, das seine eigene IP-Adresse konfiguriert, erkennen kann, ob es die erhaltene IP-Adresse ändern muss. Dies ist beispielsweise für DHCP möglich, kann jedoch nicht durchgeführt werden, wenn Sie die Adresse manuell konfigurieren. Mit anderen Worten, das Gerät muss darauf vertrauen, dass Sie als Mensch wissen, was Sie tun, aber es muss überprüfen, ob eine eigene Adresse nicht bereits verwendet wird.


1
Falsch. Ich zitiere aus RFC 5227, Abschnitt 2.1 (Hervorhebung von mir): "Bevor Sie mit der Verwendung einer IPv4-Adresse beginnen (unabhängig davon, ob diese von einer manuellen Konfiguration , DHCP oder einem anderen Mittel empfangen wurde ), MUSS ein Host, der diese Spezifikation implementiert, testen, ob die Adresse bereits vorhanden ist benutze .... " https://tools.ietf.org/html/rfc5227#section-2.1
Steve365

Ja, aber das ist nicht die Anzahl der Betriebssystemanbieter, daher die Frage. Sie können dies selbst mit WireShark testen.
Ron Maupin

In der Tat habe ich lediglich für zukünftige Leser klargestellt, dass eine Implementierung das Protokoll für die manuelle Adressierung sowie DHCP anwenden sollte, um die RFC vollständig zu erfüllen. Ihre Eröffnungsrede deutete darauf hin, dass dies nicht der Fall war. Ich bin mir bewusst, dass es viele fehlerhafte Implementierungen gibt, die dies nicht tun :)
Steve365

Ich habe kein einziges Betriebssystem gesehen, das dies tatsächlich implementiert. Ich habe es jedoch auf einigen Netzwerkgeräten gesehen. Die Betriebssystemanbieter sehen den Punkt nicht. Einige ignorieren ganze RFCs (z. B. RFC 3021 - Verwenden von 31-Bit-Präfixen für IPv4-Punkt-zu-Punkt-Verbindungen , die es seit über 15 Jahren gibt).
Ron Maupin

Einige Windows-Versionen implementieren dies. Ich habe gerade Wireshark verwendet, um unter Windows 7 mit einer statischen IP zu bestätigen.
Steve365

2

Hier ist eine Frage: Why would Linux send an ARP probe for an IP that is being locally assigned, it knows who the own of that IP will be (itself!) ?- Sie stellen die IPs so ein, dass Sie wissen sollten, welche IP frei ist. Wenn Sie rm -rf /Linux nicht überprüfen, wird es "nur", weil Sie wissen sollten, ob es in Ordnung ist, diesen Vorgang auszuführen oder nicht. Windows (zum Beispiel) hat die Angewohnheit, Ihre Hand zu halten, um sie idiotensicherer zu machen (meiner Meinung nach).

Wenn Sie bei einem MS-DHCP-Server eine Paketerfassung auf einem (den ich habe) Server ausführen, werden Sie feststellen, dass dieser eine Adresse anpingt, bevor er sie an einen Client vermietet, um sicherzustellen, dass sie nicht bereits vergeben ist und nicht wissen darüber Bescheid (entweder aufgrund eines anderen DHCP-Servers oder einer statischen Zuweisung).

Wenn Sie einer Schnittstelle unter Linux eine IP zuweisen, müssen Sie kein kostenloses ARP senden. Wenn ein anderer Host den MAC für IP 1.2.3.4 wissen möchte, kann er eine ARP-Anfrage senden. Es hat keinen Vorteil, ARP unentgeltlich auszuschalten, wenn eine Schnittstelle auftaucht.

Ich weiß, dass ich nur wenige Aussagen ohne harte Beweise gemacht habe, um sie zu stützen, aber gemäß Ihrer Frage haben Sie selbst das gleiche Verhalten gesehen. Das macht für mich nur logisch Sinn.


0

Solaris 10 und höher unterstützen DAD (RFC 5227) für IPv4 sowohl für statisch zugewiesene IP-Adressen als auch für dynamisch zugewiesene IP-Adressen.

Der dhcp-Daemon (dhcpd) unter NetBSD und anderen Plattformen (wie Ubuntu) unterstützt RFC 5227.

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.