Tempo limite de resolução DNS com hospedagem múltipla do Windows 10

11

Eu tenho várias VMs de cliente com Windows 10 com hospedagem múltipla ingressadas em um domínio do Windows 2012 R2. A Ethernet1 está conectada a uma LAN com os controladores de domínio (que não possuem encaminhadores ou acesso aos servidores raiz), a Ethernet2 está conectada a uma LAN com acesso à Internet, a Ethernet0 e a Ethernet3 têm suas mídias desconectadas. As consultas de registros dos controladores de domínio são retornadas sem problemas, mas as consultas de registros da Internet levam 10 segundos mais o tempo que os servidores DNS do meu ISP levam para retornar uma resposta. Se eu consultar os servidores DNS do meu provedor de serviços de Internet diretamente por meio nslookupdo nome, é resolvido imediatamente (<1 segundo), se eu executar nslookupsem especificar um servidor DNS, a consulta expira e o nome nunca é resolvido. Se eu tentar executar o ping no nome DNS, leva> 10 segundos antes que o nome seja resolvido.

Eu olhei em volta da Technet, mas ainda não parece haver nenhuma documentação no Windows 10. O melhor que encontrei é:

http://blogs.technet.com/b/networking/archive/2009/06/26/dns-client-resolver-behavior.aspx http://blogs.technet.com/b/stdqry/archive/2011/12 /15/dns-clients-and-timeouts-part-2.aspx

O que diz que devo esperar que meu cliente consulte o servidor DNS primário para Ethernet1, aguarde 1 segundo pela resposta ao tempo limite e, em seguida, consulte o servidor DNS secundário para Ethernet1 e o servidor DNS primário para Ethernet2, mas isso não parece estar acontecendo. A documentação continua dizendo que, após 10 segundos (e mais 3 rodadas de consultas DNS com tempos limite mais longos), a resolução DNS falharia completamente para todos os adaptadores, mas o comportamento do cliente dá a impressão de que está demorando 10 segundos antes mesmo de tentar use os servidores DNS para o segundo adaptador.

Ausente eu (ou você) abrindo o Wireshark e farejando a linha, ou modificando cegamente HKLM\System\CurrentControlSet\Services\dnscache\Parameters\DNSQueryTimeoutsalguém sabe como o Windows 10 deve se comportar e, mais importante, como posso configurar o comportamento? Estou disposto a viver com um tempo de resolução de ~ 1 segundo, mas 10 segundos é bastante brutal.

ipconfig

Ethernet adapter Ethernet1:

   Connection-specific DNS Suffix  . : intranet.mydomain.net
   Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connection #2
   Physical Address. . . . . . . . . : 00-0C-29-CC-E8-93
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::999b:3e21:749b:6f55%7(Preferred)
   IPv4 Address. . . . . . . . . . . : 10.2.0.20(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.0.0
   Lease Obtained. . . . . . . . . . : Sunday, September 6, 2015 8:17:00 AM
   Lease Expires . . . . . . . . . . : Sunday, September 13, 2015 8:17:00 AM
   Default Gateway . . . . . . . . . :
   DHCP Server . . . . . . . . . . . : 10.2.0.2
   DHCPv6 IAID . . . . . . . . . . . : 83889193
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1D-74-AB-6A-00-0C-29-CC-E8-89
   DNS Servers . . . . . . . . . . . : 10.2.0.1
                                       10.2.0.2
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Ethernet2:

   Connection-specific DNS Suffix  . : internet.mydomain.net
   Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connection #3
   Physical Address. . . . . . . . . : 00-0C-29-CC-E8-9D
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::944:ded1:dc53:cec4%6(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.1.116(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Sunday, September 6, 2015 8:17:04 AM
   Lease Expires . . . . . . . . . . : Monday, September 7, 2015 8:17:04 AM
   Default Gateway . . . . . . . . . : 192.168.1.1
   DHCP Server . . . . . . . . . . . : 192.168.1.1
   DHCPv6 IAID . . . . . . . . . . . : 83889193
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1D-74-AB-6A-00-0C-29-CC-E8-89
   DNS Servers . . . . . . . . . . . : 75.75.75.75
                                       75.75.76.76
                                       8.8.8.8
   NetBIOS over Tcpip. . . . . . . . : Enabled

nslookup

C:\Users\username>nslookup www.google.com 75.75.75.75
Server:  cdns01.comcast.net
Address:  75.75.75.75

Non-authoritative answer:
Name:    www.google.com
Addresses:  2607:f8b0:4001:c07::69
          74.125.196.106
          74.125.196.104
          74.125.196.147
          74.125.196.105
          74.125.196.99
          74.125.196.103


C:\Users\username>nslookup www.google.com
DNS request timed out.
    timeout was 2 seconds.
Server:  UnKnown
Address:  10.2.0.1

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Request to UnKnown timed-out

Atualizar

Caso alguém esteja se perguntando, ingressei em uma VM do Win7 SP1 (sem patches) com a mesma configuração de adaptador de rede para o domínio, movi-a para a mesma OU das outras VMs e atualizei a política de grupo no cliente. Ele é capaz de resolver consultas DNS dos servidores DNS do controlador de domínio e de meus ISPs imediatamente. Portanto, parece que esse é um comportamento específico do cliente DNS do Windows 10.

Atualização 2

Então, as coisas estão ficando mais estranhas. Parece que o Win10, por padrão, emitirá as consultas em paralelo, mas não passará a resposta para qualquer processo solicitado até que todas as consultas expirem. E, por algum motivo, o servidor DNS no meu segundo controlador de domínio não está funcionando. Alguém sabe como desativar esse comportamento?

Rastreamento de pacote do Wireshark

Matt
fonte
Dê uma olhada nesta pergunta: superuser.com/questions/966017/… haarymc apontou que o resolvedor DNS do Windows 10 foi modificado significativamente e aponta algumas soluções possíveis.
Brandon Xavier
Eu começaria com DisableSmartNameResolution, que foi mencionado.
Brandon Xavier
Brandon, parece que definir DisableSmartNameResolution como 1 (em vez de 0, conforme recomendado pelo link) funcionou! Se você quiser publicá-lo, é uma resposta. Premiarei o representante. Obrigado!
Matt
LOL, muita projeção. Fique louco porque Brandon Xavier encontrou o problema aqui, receberá o representante de +100 quando ele repassar seu comentário como resposta, e que você não se incomodaria em ler suas próprias citações.
Matt
11
Aqui está outro bom link sobre esse novo recurso, e como ele muda do Windows 8.1 para o Windows 10. medium.com/@ValdikSS/…
GuitarPicker

Respostas:

11

A Microsoft modificou ou reescreveu substancialmente o Windows Resolver no Windows 10.

A maior mudança foi emitir consultas DNS para todos os adaptadores em paralelo e, em seguida, levar a primeira resposta para chegar. Infelizmente, o novo código contém bugs e omissões, e parece que, em vez de receber a primeira resposta, aguarda todas as respostas. Se uma das consultas DNS atingir o tempo limite, isso significa uma espera de 10 segundos antes da resolução do DNS.

Esse bug será, sem dúvida, corrigido em uma atualização futura do Windows 10. Até então, para retornar o comportamento o máximo possível ao das versões anteriores do Windows, existem as seguintes modificações no registro:

DisableSmartNameResolution (DWORD)

Na chave do registro HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient.
O valor é 1 para desativar, 0 para ativar a resolução inteligente.
De Desligue a resolução de nomes inteligente homed-multi :

Especifica que um cliente DNS com hospedagem múltipla deve otimizar a resolução de nomes nas redes. A configuração melhora o desempenho emitindo consultas de resolução de nome multicast local (LLMNR) paralela de link DNS e NetBIOS sobre TCP / IP (NetBT) em todas as redes. No caso de várias respostas positivas serem recebidas, a ordem de ligação de rede é usada para determinar qual resposta aceitar. Se você habilitar essa configuração de política, o cliente DNS não executará nenhuma otimização. As consultas DNS serão emitidas em todas as redes primeiro. As consultas LLMNR serão emitidas se as consultas DNS falharem, seguidas pelas consultas NetBT, se as consultas LLMNR falharem. Se você desabilitar esta configuração de política ou se não definir essa resolução, a resolução de nomes será otimizada ao emitir consultas LLMNR e NetBT de DNS.

DisableParallelAandAAAA (DWORD)

Na chave do registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters.
O valor é 0 para ativar, 1 para desativar as consultas DNS A e AAAA de serem executadas em paralelo em todos os servidores DNS configurados, com a resposta mais rápida sendo teoricamente aceita primeiro.

harrymc
fonte
11
Só queria acrescentar que estou no Win 10.0.10586 e HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClientnão existe. Além disso, DisableParallelAandAAAAnão existe, mas as chaves existem para que você possa adicioná-lo.
Mahdi
Isso resolveu o problema de VPN de divisão de DNS no Windows 10. Quando conectado a uma VPN (por exemplo, usando um cliente Cisco), o DNS da VPN é usado apenas algumas vezes devido a esses dois recursos. Ao desabilitar ambos (resolução de nome inteligente e consultas de DNS paralelo), ele permite que o DNS da VPN seja usado com segurança. Além disso, ele resolve o problema de "vazamento de DNS" que você tem quando está em uma rede wi-fi insegura / não confiável, como em uma cafeteria com Windows 10. Suas consultas de DNS passarão pela VPN agora, em vez de às vezes ir para a loja de café. DNS. Muito obrigado por fornecer esta solução!
truemedia
2
Versão prática do PowerShell para qualquer pessoa que esteja acessando (estamos no Stack Exchange): Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\DNSClient" -Name DisableSmartNameResolution -Value 1 -Type DWordeSet-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters" -Name DisableParallelAandAAAA -Value 1 -Type DWord
Nick Craver
11
Essas chaves do registro não tiveram efeito no meu windows10, o que funcionou foi:Press WIN+R and write gpedit.msc Expand Administrative templates Expand Network Click DNS-client Double-click "Turn off smart multi-homed name resolution" Check the box called "Enabled" Click "Apply all" and then "OK"
Julien
1

fonte

O SMHNR foi ligeiramente alterado no Windows 10 em comparação ao Windows 8. No Windows 10, não é possível desativá-lo pelo registro.

No Windows 10, você pode usar "Políticas locais" para desativar o recurso. Siga as etapas abaixo para fazer isso:

  • Pressione WIN + R e escreva gpedit.msc
  • Expanda Modelos administrativos Expanda Rede
  • Clique em DNS-client Clique duas vezes em "Desativar a resolução inteligente de nomes com várias residências"
  • Marque a caixa "Ativado"
  • Clique em "Aplicar tudo" e depois em "OK"
Julien
fonte
Julien, não estou dizendo que os caminhos não foram movidos no registro, mas quando você atualiza as configurações na Diretiva Local, a grande maioria do que você está fazendo é fazer alterações no Registro (pelo Editor de Diretiva Local). De fato, essa é uma maneira muito comum de descobrir qual parte do registro modificar diretamente para uma configuração específica. Execute o ProcMon (da Sysinternals) e faça a alteração e, em seguida, determine qual o caminho de registro efetivo em qual seção foi atualizada do que para o quê.
thepip3r
0

Como os servidores DNS do seu domínio não têm acesso aos servidores raiz e você não possui a configuração de encaminhamento, é necessário excluir as dicas de raiz inacessíveis do servidor DNS para acelerar as consultas de endereços que não hospedam. Isso deve acelerar os tempos limite e, por sua vez, acelerar a resolução do cliente. Caso contrário, ele continuará tentando entrar em contato com os servidores raiz antes de desistir.

O procedimento para remover dicas de raiz no 2008 R2 está documentado aqui .

GuitarPicker
fonte
Obrigado pela resposta, mas esta pergunta estava relacionada ao comportamento dos clientes, não ao servidor DNS do controlador de domínio, conforme observado por "... alguém sabe como o Windows 10 deve se comportar e, mais importante, como posso configurar o comportamento "
Matt
Justo. Parecia que os clientes estavam se comportando dessa maneira devido a uma configuração não ideal. Você tem algum cliente que não seja Windows 10 que se comporte de maneira diferente?
GuitarPicker
Não, eu tenho outros clientes de VM Win10 que têm Ethernet3 (acesso à Internet baseado em VPN e servidor DNS 1.2.3.4) conectado em vez de Ethernet2 e eles se comportam da mesma maneira. E como um cliente com hospedagem múltipla com servidores DNS para ambas as redes seria considerado não ideal?
Matt
11
GuitarPicker, eu tentei a sua sugestão cliente não-Win10 e parece que este é um comportamento específico para o Windows 10.
Matt
A resposta da @ harrymc parece que vai cuidar das coisas do lado do cliente. Na verdade, eu o encontrei depois de ler seu comentário e antes de ler sua resposta. A Microsoft está surpreendentemente quieta em documentá-lo. Minha solução pode oferecer um pouco mais de tempo de resolução para todos os clientes, mas a resposta dele explicaria a diferença de clientes.
GuitarPicker