Nuestros servidores de Windows están registrando AAAA
registros IPv6 con nuestros servidores DNS de Windows. Sin embargo, no tenemos habilitado el enrutamiento IPv6 en nuestra red, por lo que con frecuencia esto provoca comportamientos de bloqueo.
Microsoft RDP es el peor delincuente. Cuando se conecta a un servidor que tiene un AAAA
registro en DNS, el cliente de escritorio remoto intentará primero con IPv6, y no recurrirá a IPv4 hasta que se agote el tiempo de espera de la conexión. Los usuarios avanzados pueden solucionar esto conectándose directamente a la dirección IP. Resolver la dirección IPv4 con ping -4 hostname.foo
siempre funciona al instante.
¿Qué puedo hacer para evitar este retraso?
- ¿Deshabilitar IPv6 en el cliente?
- No, Microsoft dice que IPv6 es una parte obligatoria del sistema operativo Windows.
- Demasiados clientes para garantizar que esto se establezca en todas partes de manera consistente.
- Causará más problemas más adelante cuando finalmente implementemos IPv6.
- ¿Deshabilitar IPv6 en el servidor?
- No, Microsoft dice que IPv6 es una parte obligatoria del sistema operativo Windows.
- Requiere un hack de registro inconveniente para deshabilitar toda la pila de IPv6.
- Asegurar que esto esté configurado correctamente en todos los servidores es inconveniente.
- Causará más problemas más adelante cuando finalmente implementemos IPv6.
- ¿Enmascarar registros de IPv6 en el recurso de DNS de usuario-facnig?
- No, estamos usando NLNet Unbound y no es compatible con eso .
- ¿Prevenir el registro de registros AAAA IPv6 en el servidor DNS de Microsoft?
- No creo que eso sea posible.
En este punto, estoy considerando escribir un script que purgue todos los registros AAAA de nuestras zonas DNS. Por favor, ayúdame a encontrar una mejor manera.
ACTUALIZACIÓN: la resolución DNS no es el problema. Como @joeqwerty señala en su respuesta, los registros DNS se devuelven instantáneamente. Ambos A
y los AAAA
registros están disponibles de inmediato. El problema es que algunos clientes ( mstsc.exe
) intentarán preferentemente una conexión a través de IPv6 y tardarán un tiempo en recurrir a IPv4.
Esto parece un problema de enrutamiento. El ping
comando genera un mensaje de error "Error general" porque la dirección de destino no se puede enrutar.
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),
No puedo obtener una captura de paquetes de este comportamiento. La ejecución de este comando ping (fallido) no produce ningún paquete en Microsoft Network Monitor. Del mismo modo, intentar una conexión con mstsc.exe
un host con un AAAA
registro no produce tráfico hasta que hace una reserva a IPv4.
ACTUALIZACIÓN: Todos nuestros hosts están utilizando direcciones IPv4 enrutables públicamente. Creo que este problema podría deberse a una configuración 6to4 rota. 6to4 se comporta de manera diferente en hosts con direcciones IP públicas frente a direcciones RFC1918.
ACTUALIZACIÓN: Definitivamente hay algo sospechoso con 6to4 en mi red. Cuando desactivo 6to4 en el cliente de Windows, las conexiones se resuelven instantáneamente.
netsh int ipv6 6to4 set state disabled
Pero como dice @joeqwerty, esto solo enmascara el problema. Todavía estoy tratando de descubrir por qué la comunicación IPv6 en nuestra red no funciona por completo.