Warum wartet die 2. ARP-Anfrage, bis die Pings beendet sind, um angezeigt zu werden?

661
SkyParrillo

Dieses Problem wurde mir von einem meiner Professoren vorgebracht, da es erst nach einem Wechsel von 100-MB-Karten zu Gigabit-Netzwerkkarten auftrat. Die zweite Arp-Anforderung, die von dem Computer gesendet wird, an den ein Ping gesendet wird (um eine Antwort zurückzusenden), wird erst gesendet, nachdem die Pings durchgegangen sind.

Ich entschied mich, einige Tests zu Hause mit ein paar VMs durchzuführen und zu sehen, ob ich die Ursache finden könnte.

Wireshark Capture-Beispiel

Nachdem ich den Arp-Cache auf beiden Rechnern geleert hatte (arp -d) und ein Ping-Signal erhalten hatte, hatte ich dieselben Ergebnisse wie mein Professor, aber ich kann nicht verstehen, warum.

Ich googelte und fand jemanden mit einem ähnlichen Problem unter Verwendung von Linux (ich verwende Windows 10). Er sagte etwas über einen veralteten Eintrag in der Arp-Tabelle sowie etwas, das als "First Probe Delay" bezeichnet wird, aber ich war nie in der Lage Hier finden Sie Informationen zu diesen Dingen für Windows.

Weiß jemand, warum dies passiert? Oder wozu dient diese zweite Arp-Anforderung, wenn das erste Gerät nicht gefunden wird?

4
Ja, das ist interessant. Die Ping-Antwort wurde ohne Arp ausgeführt, da sich der Ursprung im selben Netzwerk befand und die Antwort-MAC-Adresse sich also auf dem eingehenden Paket befand. Später gibt es ein Unicast-Arp (und nicht die herkömmliche Übertragung) - das Zielgerät hatte also bereits einen Arp-Eintrag (aus dem Ping extrahiert) und sieht so aus, als hätte es es validiert. Möglicherweise sind Arp-Einträge markiert, um bei Verwendung dieser Methode schneller veraltet zu werden. Paul vor 6 Jahren 0
Gibt es überhaupt zu beweisen, dass dies der Fall ist? Oder eine Möglichkeit, um anzuzeigen, wie lange ein Eintrag für Windows veraltet ist? Ist es unter Linux dasselbe wie Windows? SkyParrillo vor 6 Jahren 0
Ich bin nur überrascht. Nach der Antwort von Appleoddity füllt das Ziel seine Arp-Tabelle. Beachten Sie jedoch, dass die MAC-Adresse nicht mehr nur nach Broadcasts gefragt wird, sondern dass Layer 2 den Mac vom Ping abgehalten haben muss. Ich weiß nicht genau, wie das Windows-Stack funktioniert, daher eher der Kommentar als die Antwort. Paul vor 6 Jahren 0

1 Antwort auf die Frage

2
Appleoddity

Dies scheint das zu sein, was Bruce Hartpence als "Return ARP" bezeichnet. Wie in diesem Auszug aus dem Packet Guide zu Core Network Protocols beschrieben.

Die in Abbildung 4-12 gezeigte Konversation zeigt eine weitere wichtige Facette von ARP: Nur der Host, der die Konversation initiiert (die ARP-Anforderung generiert), wird einen Eintrag für den Zielhost in seine lokale ARP-Tabelle einfügen. Das heißt, andere Stationen, die den Austausch hören, fügen diese Stationen nicht zu ihren eigenen ARP-Tabellen hinzu, selbst wenn sie die ARP-Anforderung empfangen. Viele Hosts (insbesondere Router) sind jedoch aggressiv, wenn es um das Auffüllen ihrer Tabellen geht. Wenn sie ARP-Verkehr hören oder an ARP-Nachrichten beteiligt sind, werden sie anschließend ihre eigenen ARP-Anforderungen erzeugen, um ihre Tabellen aufzufüllen.

Kurze Antwort. Der Zielhost füllt jetzt seine eigene ARP-Tabelle, da er über den anderen Host Bescheid weiß.

Würde dies noch erklären, warum es zu Beginn des Pings zwei Arp-Anforderungen gab, bevor die NICs geändert wurden? SkyParrillo vor 6 Jahren 0