Nos serveurs Windows enregistrent des enregistrements IPv6 AAAA
avec nos serveurs DNS Windows. Cependant, le routage IPv6 n'est pas activé sur notre réseau, ce qui entraîne fréquemment des comportements de blocage.
Microsoft RDP est le pire contrevenant. Lors de la connexion à un serveur qui a un AAAA
enregistrement dans DNS, le client de bureau distant essaiera d'abord IPv6 et ne retombera pas sur IPv4 tant que la connexion n'aura pas expiré. Les utilisateurs expérimentés peuvent contourner ce problème en se connectant directement à l'adresse IP. La résolution de l'adresse IPv4 avec ping -4 hostname.foo
fonctionne toujours instantanément.
Que puis-je faire pour éviter ce retard?
- Désactiver IPv6 sur le client?
- Non, Microsoft dit qu'IPv6 est une partie obligatoire du système d'exploitation Windows.
- Trop de clients pour que cela soit défini partout de manière cohérente.
- Cela causera plus de problèmes plus tard lorsque nous implémenterons enfin IPv6.
- Désactiver IPv6 sur le serveur?
- Non, Microsoft dit qu'IPv6 est une partie obligatoire du système d'exploitation Windows.
- Nécessite un hack de registre gênant pour désactiver la pile IPv6 entière.
- Il n'est pas pratique de s'assurer que ce paramètre est correctement défini sur tous les serveurs.
- Cela causera plus de problèmes plus tard lorsque nous implémenterons enfin IPv6.
- Masquer les enregistrements IPv6 sur le récurseur DNS utilisateur?
- Non, nous utilisons NLNet Unbound et il ne prend pas en charge cela .
- Empêcher l'enregistrement des enregistrements IPv6 AAAA sur le serveur DNS Microsoft?
- Je ne pense pas que ce soit même possible.
À ce stade, j'envisage d'écrire un script qui purge tous les enregistrements AAAA de nos zones DNS. S'il vous plaît, aidez-moi à trouver un meilleur moyen.
MISE À JOUR: La résolution DNS n'est pas le problème. Comme le souligne @joeqwerty dans sa réponse, les enregistrements DNS sont retournés instantanément. Les enregistrements A
et AAAA
sont immédiatement disponibles. Le problème est que certains clients ( mstsc.exe
) tenteront préférentiellement une connexion via IPv6 et mettront un certain temps à revenir à IPv4.
Cela semble être un problème de routage. La ping
commande génère un message d'erreur «Échec général» car l'adresse de destination n'est pas routable.
C:\Windows\system32>ping myhost.mydomain
Pinging myhost.mydomain [2002:1234:1234::1234:1234] with 32 bytes of data:
General failure.
General failure.
General failure.
General failure.
Ping statistics for 2002:1234:1234::1234:1234:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Je ne peux pas obtenir une capture de paquets de ce comportement. L'exécution de cette commande ping (en échec) ne produit aucun paquet dans Microsoft Network Monitor. De même, la tentative de connexion avec mstsc.exe
un hôte avec un AAAA
enregistrement ne produit aucun trafic jusqu'à ce qu'il effectue un retour à IPv4.
MISE À JOUR: Nos hôtes utilisent tous des adresses IPv4 publiquement routables. Je pense que ce problème pourrait se résumer à une configuration 6to4 cassée. 6to4 se comporte différemment sur les hôtes avec des adresses IP publiques par rapport aux adresses RFC1918.
MISE À JOUR: Il y a certainement quelque chose de louche avec 6to4 sur mon réseau. Lorsque je désactive 6to4 sur le client Windows, les connexions se résolvent instantanément.
netsh int ipv6 6to4 set state disabled
Mais comme le dit @joeqwerty, cela ne fait que masquer le problème. J'essaie toujours de savoir pourquoi la communication IPv6 sur notre réseau ne fonctionne pas du tout.