Zum Hauptinhalt springen

STCP verfügt schon seit geraumer Zeit über eine Erkennung von doppelten IP-Adressen, aber eine Änderung im Verhalten von Microsoft Windows 2008 und 7 hat eine interessante Neuerung mit sich gebracht.

Schauen wir uns zunächst an, wie es funktioniert.

Die Erkennung doppelter IP-Adressen beruht auf dem Adressauflösungsprotokoll (ARP).

Das Tool packet_monitor zeigt ein ARP-Paket in zwei Zeilen als

11:13:43.123 Rcvd Ether Dst ff:ff:ff:ff:ff:ff:ff Src 00:13:d4:59:7a:da Typ 0806 (ARP)
ARP Req Ziel 164.152.77.217 Src 164.152.77.34 [00:13:d4:59:7a:da]

Wo

Rcvd Zeigt an, dass Bytes empfangen wurden. Die andere Option ist Xmit, die anzeigt, dass Bytes gesendet wurden
Ether Zeigt an, dass ein Ethernet-Frame-Header folgt
Dst ff:ff:ff:ff:ff:ff:ff Das Ethernet-Ziel; in diesem Fall die Broadcast-Adresse
Src 00:13:d4:59:7a:da Die Ethernet-Quelladresse
Typ 0806 (ARP) Zeigt an, dass dies ein ARP-Frame ist, Typ 0806
ARP Zeigt an, dass ein ARP-Frame-Header folgt
Anfrage Zeigt an, dass es sich um einen Anfragerahmen (Suche nach MAC-Adresse) handelt. Die andere Option ist Rep, was eine Antwort anzeigt.
Ziel 164.152.77.217 Die IP-Adresse des Ziels
Src 164.152.77.34 Die IP-Adresse des sendenden Hosts
[00:13:d4:59:7a:da] Die Ethernet-Adresse des sendenden Hosts

STCP prüft das Feld Src Feld, und wenn es mit der IP-Adresse der Schnittstelle übereinstimmt, auf der es empfangen wurde, meldet STCP eine doppelte IP-Adresse im syserr_log mit einer Meldung in folgendem Format

<time> WARNING (<index>): MAC address <MAC address> is using our IP address <IP address>

Zum Beispiel:

11:13:43 WARNUNG(5): Die MAC-Adresse 00:13:d4:59:7a:da verwendet unsere IP-Adresse 164.152.77.34

MAC" steht für "Media Access Control" (Medienzugriffskontrolle). Wenn Sie die MAC-Adresse kennen, erhalten Sie einige Hinweise auf die Identität des Hosts, der den Fehler begangen hat. Die ersten 3 Bytes der Adresse werden als Organizationally Unique Identifier (OUI) bezeichnet und können verwendet werden, um etwas über die Ethernet-Karte oder den Host zu erfahren, in dem sie sich befindet. Zum Beispiel hat Stratus zwei registrierte OUIs, 00-00-A8 und 00-04-FC. Sie können jede OUI unter http://standards.ieee.org/develop/regauth/oui/public.htmlnachschlagen.

Viele Hosts, einschließlich STCP, senden beim Booten oder bei der Konfiguration einer IP-Schnittstelle ein so genanntes Gratuitous ARP. Dieser Frame sucht grundsätzlich nach seiner eigenen IP-Adresse, und wenn er eine Antwort erhält, weiß er, dass die IP-Adresse in Gebrauch ist. Hier ist ein Beispiel einer packet_monitor-Aufzeichnung, die den Gratuitous ARP zeigt, der von einem anderen VOS-Modul gesendet wird, während es eine seiner Schnittstellen hochfährt. Beachten Sie, dass sowohl die Ziel und Src Felder die gleiche IP-Adresse haben.

10:19:53.045 Rcvd Ether Dst ff:ff:ff:ff:ff:ff:ff Src 00:00:a8:41:3b:6e Typ 0806 (ARP)
ARP-Anfrage Ziel 164.152.77.34 Src 164.152.77.34 [00:00:a8:41:3b:6e]

OK, was ist das für ein Problem, das ich zu Beginn dieses Beitrags erwähnt habe?

Ab Windows 2008 und Windows 7 sendet der Microsoft-TCP-Stack das unentgeltliche ARP mit dem Feld Src, das auf 0.0.0.0.

10:45:10.530 Rcvd Ether Dst ff:ff:ff:ff:ff:ff Src 1c:c1:de:b4:76:60 Typ 0806 (ARP)
ARP Req Ziel 164.152.77.34 Src 0.0.0.0 [1c:c1:de:b4:76:60]

Das Ergebnis ist, dass STCP denkt, dass dies eine "normale" Anfrage nach seiner Ethernet-Adresse ist und mit einer normalen Antwort antwortet

10:45:10.530 Xmit Ether Dst 1c:c1:de:b4:76:60 Src 00:00:a8:41:3b:6e Typ 0806 (ARP)
ARP Rep Ziel 0.0.0.0 [1c:c1:de:b4:76:60] Src 164.152.77.34 [00:00:a8:41:3b:6e]

Es wird kein Hinweis auf eine doppelte IP-Adresse aufgezeichnet. Die gute Nachricht ist, dass der Windows-Stack die Duplizierung erkennt und auf eine lokale Link-Adresse der Form 169.254.X.Y umschaltet.

Warum hat Microsoft diese Änderung vorgenommen? Es scheint, dass viele TCP-Stacks (einschließlich STCP) ihren ARP-Cache-Eintrag für die Quell-IP-Adresse mit der im ARP-Frame enthaltenen Ethernet-Adresse aktualisieren. Wenn es sich bei der IP-Adresse um ein Duplikat handelt, führt dies dazu, dass laufende Verbindungen zu der duplizierten IP-Adresse unterbrochen werden, da die Pakete an den duplizierten Host umgeleitet werden. Durch die Änderung des Src-Feldes auf 0.0.0.0 verhindert Microsoft, dass die TCP-Stacks (einschließlich STCP) ihre ARP-Cache-Einträge aktualisieren.

© 2024 Stratus Technologies.