Nossos servidores Windows estão registrando AAAA
registros IPv6 nos servidores DNS do Windows. No entanto, não temos o roteamento IPv6 ativado em nossa rede, portanto, isso frequentemente causa comportamentos de estol.
O Microsoft RDP é o pior infrator. Ao conectar-se a um servidor que possui umAAAA
registro no DNS, o cliente da área de trabalho remota tentará o IPv6 primeiro e não voltará ao IPv4 até que a conexão expire. Usuários avançados podem solucionar esse problema conectando-se diretamente ao endereço IP. A resolução do endereço IPv4 ping -4 hostname.foo
sempre funciona instantaneamente.
O que posso fazer para evitar esse atraso?
- Desativar IPv6 no cliente?
- Não, a Microsoft diz IPv6 é uma parte obrigatória do sistema operacional Windows.
- Muitos clientes para garantir que isso seja definido em todos os lugares de maneira consistente.
- Causará mais problemas mais tarde, quando finalmente implementarmos o IPv6.
- Desativar IPv6 no servidor?
- Não, a Microsoft diz que o IPv6 é uma parte obrigatória do sistema operacional Windows.
- Requer um corte de registro inconveniente para desativar toda a pilha IPv6.
- Garantir que isso esteja definido corretamente em todos os servidores é inconveniente.
- Causará mais problemas mais tarde, quando finalmente implementarmos o IPv6.
- Mascarar registros IPv6 no recursor DNS do usuário?
- Não, estamos usando o NLNet Unbound e ele não suporta isso .
- Impedir o registro de registros IPv6 AAAA no servidor DNS da Microsoft?
- Eu não acho que isso seja possível.
Neste ponto, estou pensando em escrever um script que limpe todos os registros AAAA de nossas zonas DNS. Por favor, me ajude a encontrar uma maneira melhor.
ATUALIZAÇÃO: a resolução do DNS não é o problema. Como @joeqwerty aponta em sua resposta, os registros DNS são retornados instantaneamente. Os registros A
e AAAA
estão imediatamente disponíveis. O problema é que alguns clientes (mstsc.exe
) tentam preferencialmente uma conexão pelo IPv6 e demoram um pouco para voltar ao IPv4.
Isso parece um problema de roteamento. O ping
comando produz uma mensagem de erro "Falha geral" porque o endereço de destino não pode ser roteado.
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),
Não consigo obter uma captura de pacotes desse comportamento. A execução desse comando ping (com falha) não produz nenhum pacote no Microsoft Network Monitor. Da mesma forma, tentar uma conexão com mstsc.exe
um host com umAAAA
registro não produz tráfego até fazer um fallback para o IPv4.
ATUALIZAR: Todos os nossos hosts estão usando endereços IPv4 roteados publicamente. Eu acho que esse problema pode se dever a uma configuração 6to4 quebrada. 6to4 se comporta de maneira diferente em hosts com endereços IP públicos versus endereços RFC1918.
ATUALIZAÇÃO: Definitivamente, há algo suspeito com o 6to4 na minha rede. Quando desabilito o 6to4 no cliente Windows, as conexões são resolvidas instantaneamente.
netsh int ipv6 6to4 set state disabled
Mas como @joeqwerty diz, isso apenas mascara o problema. Ainda estou tentando descobrir por que a comunicação IPv6 em nossa rede não funciona completamente.