Windows 2008 ignore les requêtes ARP gratuites

38

Nous avons récemment constaté un problème après un basculement de notre routeur, nos Windows 2008 Box n’ayant pas commencé à communiquer avec le routeur principal après le basculement.

Quand nous avons fait quelques recherches, ils avaient toujours l'entrée ARP du routeur secondaire. Selon le blog TechNet, il s'agit d'une construction:

Tout d'abord, Windows Vista ou Windows Server 2008 ne mettra pas à jour le cache de voisins si une diffusion ARP est reçue, sauf si elle fait partie d'une demande de diffusion ARP pour le récepteur . Cela signifie que lorsqu'une ARP gratuite est envoyée sur un réseau avec Windows Vista et Widows Server 2008, ces systèmes ne mettront pas à jour leur cache avec des informations incorrectes en cas de conflit d'adresse IP.

Deuxièmement, il semble que le cache de voisin de Windows (arp-cache) ne soit mis à jour que si la machine ne peut plus communiquer avec la machine actuellement dans son cache. Il n'envoie pas de requêtes ARP occasionnelles pour s'assurer que le cache n'est pas périmé. Bien que ce ne soit pas un problème lors du basculement initial, lors du basculement lorsque les deux boîtes sont actives, Windows continue à parler avec la boîte secondaire.

Existe-t-il un moyen de forcer Windows 2008 à accepter les requêtes ARP gratuites?

Zypher
la source

Réponses:

8

Après les tests, il semble que le correctif logiciel 2582281 corrige le problème. Vous pouvez obtenir le correctif sans avoir à payer de support en utilisant leur page de demande de correctif .

J'ai effectué un test avec arpingWindows 2008 R2 non corrigé. J'ai ajouté une adresse IP secondaire, 64.34.119.80, à une machine avec le même segment de réseau L2. J'ai ensuite émis la commande suivante à partir d' une autre machine le réseau ( sudo arping -U 64.34.119.80 -I bond0 -c1). Immédiatement après, j’ai envoyé un ping 64.34.119.80 à partir de la fenêtre Windows après l’avoir vu recevoir l’arp sous wirehark. J'ai ensuite appliqué le correctif et répété le test.

De plus, il semble que la commande arping ne doit pas utiliser d'adresse MAC unicast, mais plutôt le MAC de diffusion, car il s'agit du seul type de GARP ignoré de mes tests.

Avant le patch:

entrez la description de l'image ici

Dans cette capture wirehark, le ping qui suit la demande GARP n'est pas envoyé à la destination MAC d'où provient GARP. Vous pouvez donc voir que GARP est ignoré.

Après le patch:

entrez la description de l'image ici

Dans ce test, après le correctif, la demande GARP semble être honorée car le ping est envoyé à l'adresse MAC d'origine de GARP.

Donc, à partir de ces tests, il semble que le correctif logiciel 2582281 corrige le problème des émissions GARP ignorées.

Kyle Brandt
la source
4

En recherchant mon propre problème TCPIP tout à l'heure, je suis tombé sur ce correctif très intéressant:

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

Cause:

Ce problème se produit car la pile TCP / IP du serveur d'applications ignore les requêtes ARP (Address Resolution Protocol) gratuites.

Cela ressemble énormément à ce que vous rencontrez. Et c'est également un tout nouveau correctif, publié le 22/07/2011, il n'était donc pas disponible quand vous l'avez rencontré pour la première fois.

sysadmin1138
la source
On dirait que ce KB a disparu?
Kyle Brandt
@ KyleBrandt C'était là, et maintenant c'est parti. Je me demande si le problème est maintenant couvert dans un service pack / mise à jour ailleurs, peut-être celui-ci: support.microsoft.com/kb/2578103
sysadmin1138
3

Essayez netsh interface ipv4 set interface x basereachable=yoù x est l’index d’interface et y le délai ARP en millisecondes souhaité. N'oubliez pas de le faire à partir d'une invite de commande avec les privilèges d'administrateur!


la source
2
En fait, cela ajuste uniquement le temps entre le moment où le cache voisin pense que l'entrée est périmée ou accessible. Si les deux zones de haute disponibilité sont actives au moment de la restauration, Windows ne la verra jamais comme obsolète et ré-arp.
Zypher
1
Je ne pense pas qu'il y ait un moyen de forcer Windows à accepter les ARP gratuits. En fait, il a fallu que je réduise le temps nécessaire pour effectuer une reprise en ligne dans un scénario différent pour cette raison.
3

Quel protocole de redondance de premier saut utilisez-vous?

Je sais que cela ne répond pas directement à votre question. Cependant, VRRP (et son fournisseur propriétaire, HSRP) utilise une adresse MAC partagée qui est basculée vers un nouveau port de commutateur lorsque le routeur maître est modifié. Cela évite entièrement le besoin d'un ARP gratuit.

Murali Suriar
la source
1

Prereqs
1. WinPCAP 4.0.1 (4.1.2 Version ne fonctionne pas)
- http://www.winpcap.org/archive/4.0.1-WinPcap.exe (version Windows)
2. Wireshark 1.6.7
3. IPv6 désactivé sur l'interface réseau, en raison de restrictions d'arping
4. arping
- http://mathieu.carbou.free.fr/pub/arping/2.06/arping.zip (Binaire Windows)

Exécution
1. Obtenir le nom de l'interface
- "E: \ Program Files \ Wireshark \ tshark.exe "-D
- A partir des détails de l'interface Wireshark où 10.20.30.50 est l'adresse IP que vous souhaitez annoncer au réseau (routeur)
2. Exécutez l'arping pour envoyer une requête ARP
gratuite - arping.exe -A -i \ Device \ NPF_ {4399F778-AF25-4B6D-AFFB-A1F2C7DFA667} 10.20.30.50 -c 3 -S 10.20.30.50

Antonio N
la source
-4

J'ai rencontré ce lien sur http://blog.serverfault.com/post/windows-2008-and-broken-arp/ .

Si vous aviez posé la question sur stackoverflow, vous auriez pu résoudre le problème beaucoup plus rapidement.

Reniflez les paquets GARP et exécutez arp -s inet_addr eth_addr.

Ne le faites pas s'il y a peu de chances que votre réseau local ait une machine hostile.

Joshudson
la source
Ce n'est pas vraiment une solution. C'est une solution de contournement qui fonctionne sur une seule machine. Le comportement est toujours cassé. Tout ce que vous faites est de modifier manuellement l'adresse dans la table arp, sans réparer la cause première du comportement.
Zypher