Frage Windows 2008 ignoriert Gratuitous ARP-Anforderungen


Wir haben kürzlich ein Problem nach einem Failover unseres Routers festgestellt, bei dem unsere Windows 2008 Boxen nach einem Fail-Back nicht mit dem primären Router sprechen konnten.

Als wir graben, hatten sie immer noch den ARP-Eintrag vom sekundären Router. Laut TechNet-Blog das ist By-Design:

Zuerst wird ein Windows Vista oder Windows Server 2008 nicht aktualisieren den Nachbar-Cache, wenn eine ARP-Sendung empfangen wird es sei denn, es ist Teil einer Broadcast-ARP-Anfrage für den Empfänger. Dies bedeutet, dass wenn ein kostenloses ARP in einem Netzwerk mit Windows Vista und Windows Server 2008 gesendet wird, diese Systeme ihren Cache nicht mit falschen Informationen aktualisieren, wenn ein IP-Adresskonflikt vorliegt.

Zweitens scheint es, dass der Windows-Nachbar-Cache (arp-cache) nur aktualisiert wird, wenn die Maschine nicht mehr mit der Maschine sprechen kann, die sich gerade in ihrem Cache befindet. Es sendet keine gelegentlichen ARP-Anfragen, um sicherzustellen, dass der Cache nicht veraltet ist. Dies ist zwar kein Problem während des ersten Fail-Over, aber während des Failbacks, wenn beide Boxen aktiv sind, führt dies dazu, dass Windows weiterhin mit der sekundären Box kommuniziert.

Gibt es eine Möglichkeit, Windows 2008 zu zwingen, Gratuitous ARP-Anforderungen zu akzeptieren?


38
2018-05-10 17:15


Ursprung


Mehr Info: blog.serverfault.com/post/windows-2008-and-broken-arp - Bart De Vos


Antworten:


Nach dem Test scheint es so Hotfix 2582281 behebt das Problem. Sie können den Hotfix erhalten, ohne Unterstützung zu zahlen, indem Sie deren verwenden Hotfix-Anforderungsseite.

Ich habe einen Test davon mit durchgeführt arping und ungepatchte Windows 2008 R2. Ich habe eine sekundäre IP-Adresse 64.34.119.80 zu einer Maschine hinzugefügt, die sich im selben Netzwerk-L2-Segment befindet. Ich habe dann folgenden Befehl von ausgegeben ein anderer mach das Netzwerk (sudo arping -U 64.34.119.80 -I bond0 -c1). Gleich danach pickte ich 64.34.119.80 aus der Windows-Box, nachdem ich gesehen hatte, dass sie das arp in wireshark empfangen hatte. Ich habe dann den Hotfix angewendet und den Test wiederholt.

Außerdem scheint es, dass der arping-Befehl nicht die Unicast-MAC-Adresse, sondern die Broadcast-MAC-Adresse verwenden muss, da dies der einzige Typ von GARP ist, der von meinen Tests ignoriert wurde.

Vor dem Patch: 

enter image description here

In diesem Wireshark Capture ist der Ping nach der GARP-Anfrage nicht an das MAC-Ziel gesendet, von dem das GARP stammt, damit Sie sehen können, dass GARP ignoriert wird.

Nach dem Patch: 

enter image description here

In diesem Test scheint die GARP-Anfrage nach dem Patch zu gelten, da der Ping an die MAC-Adresse gesendet wird, von der GARP kam.

Aus diesen Tests scheint Hotfix 2582281 das Problem zu beheben, dass GARP-Broadcasts ignoriert werden.


8
2018-01-18 21:01





Als ich gerade mein eigenes TCPIP-Problem untersucht habe, bin ich auf diesen sehr interessanten Hotfix gestoßen:

http://support.microsoft.com/kb/2582281

Ursache:

Dieses Problem tritt auf, da der TCP-IP-Stapel des Anwendungsservers irrtümlich Address Resolution Protocol (ARP) Anforderungen ignoriert.

Das hört sich sehr nach dem an, in was du hineinrennst. Und es ist auch ein brandneuer Hotfix, veröffentlicht am 22.07.2011, also war es nicht so, als du es zum ersten Mal gesehen hast.


4
2017-08-12 14:24



Sieht aus wie diese KB verschwunden? - Kyle Brandt♦
@KyleBrandt Es war da, und jetzt ist es weg. Ich frage mich, ob das Problem jetzt in einem Service-Pack / Update an anderer Stelle behandelt wird, möglicherweise dieses: support.microsoft.com/kb/2578103 - sysadmin1138♦


Versuchen netsh interface ipv4 set interface x basereachable=y Dabei steht x für den Schnittstellenindex und y für das ARP-Zeitlimit in Millisekunden. Denken Sie daran, es über eine Eingabeaufforderung mit Administratorrechten zu tun!


3
2018-05-10 20:53



Das stellt tatsächlich nur die Zeit zwischen dem Zeitpunkt ein, zu dem der Nachbarcache denkt, dass der Eintrag abgestanden ist, vs. erreichbar. Wenn beide HA-Boxen zum Zeitpunkt des Fail-Backs hochgefahren sind, wird Windows sie nie als veraltet und neu arp ansehen. - Zypher
Ich denke nicht, dass es eine Möglichkeit gibt, Windows zu zwingen, überflüssige ARPs zu akzeptieren. In der Tat musste ich die Basiszeit reduzieren, um Failover / Failback in einem anderen Szenario zu erreichen. - Ben


Welches First-Hop-Redundanzprotokoll verwenden Sie?

Ich bin mir bewusst, dass dies Ihre Frage nicht direkt beantwortet, aber VRRP (und sein proprietärer Vorläufer, HSRP) verwenden eine gemeinsame MAC-Adresse, die zu einem neuen Switch-Port umgedreht wird, wenn sich der Master-Router ändert. Dies führt zu einem völlig unnötigen ARP.


3
2018-05-12 12:02





Voraussetzungen
1. WinPCAP 4.0.1 (Version 4.1.2 funktioniert nicht)
- http://www.winpcap.org/archive/4.0.1- WinPcap.exe (Windows-Version)
2. Wireshark 1.6.7
3. IPv6 ist aufgrund von Arping-Beschränkungen in der Netzwerkschnittstelle deaktiviert
4. Arping
- http://mathieu.carbou.free.fr/pub/arping/2.06/arping.zip (Windows Binär)

Ausführung
1. Holen Sie sich den Namen des Interfaces
- "E: \ Programme \ Wireshark \ tshark.exe" -D
- Von Wireshark-Schnittstellendetails
2. Führen Sie Arping aus, um ARP Gratuitous Anfrage zu senden
- arping.exe -A -i \ Gerät \ NPF_ {4399F778-AF25-4B6D-AFFB-A1F2C7DFA667} 10.20.30.50-c 3 -S 10.20.30.50
Wo 10.20.30.50 ist die IP-Adresse, die Sie dem Netzwerk (Router) bekannt geben möchten


1
2018-05-22 21:15





Ich bin auf diesen Link gestoßen http://blog.serverfault.com/post/windows-2008-and-broken-arp/.

Hättest du auf stackoverflow gefragt, hättest du vielleicht viel schneller repariert.

Sniff die GARP-Pakete und führen Sie arp -s inet_addr eth_addr aus.

Tun Sie das nicht, wenn Sie die geringste Chance haben, eine feindliche Maschine in Ihrem LAN zu bekommen.


-4
2017-08-05 20:39



Das ist nicht wirklich eine Lösung. Es ist eine Problemumgehung, die auf einem Computer funktioniert. Das Verhalten ist immer noch gebrochen. Alles, was gerade geschieht, ist das manuelle Ändern der Adresse in der arp-Tabelle, nicht die Ursache des Verhaltens zu beheben. - Zypher