Por que o Windows 7 tenta resolver o DNS em relação aos servidores DNS IPv6?

7

Pretty vanilla, acabou de instalar o Win 7, SP1, 64 bits. Nenhum acesso IPv6. O status da rede diz IPv4: Internet. IPv6: sem acesso à rede.

Escolha um domínio que tenha servidores DNS com endereços IPv4 e IPv6, por exemplo www.hummerzines.com.au (dave.ns.cloudflare.com).

Faça um nslookup a partir da linha de comando:

C:\Users\Dom\Desktop>nslookup hummerzines.com.au dave.ns.cloudflare.com
Server:  dave.ns.cloudflare.com
Address:  173.245.59.109

Name:    hummerzines.com.au
Addresses:  141.101.116.193
          141.101.117.193

Agora faça um nslookup dentro do nslookup:

C:\Users\Dom\Desktop>nslookup
Default Server:  resolv.internode.on.net
Address:  192.231.203.132

> hummerzines.com.au dave.ns.cloudflare.com
Server:  dave.ns.cloudflare.com
Addresses:  2400:cb00:2049:1::adf5:3b6d
          173.245.59.109

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Request to dave.ns.cloudflare.com timed-out

Por que o desempenho do Windows é diferente nessas duas circunstâncias? Eu suponho que é o tempo limite porque está tentando fazer a pesquisa de DNS via IPv6? Eu ainda não corri o WireShark para provar / negar isso.

Saída de ipconfig / all:

Windows IP Configuration

   Host Name . . . . . . . . . . . . : xxx
   Primary Dns Suffix  . . . . . . . :
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No

Ethernet adapter Local Area Connection 2:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Realtek RTL8168D/8111D Family PCI-E Gigabit Ethernet NIC (NDIS 6.20) #2
   Physical Address. . . . . . . . . : 00-24-1D-C9-D0-7E
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Realtek RTL8168D/8111D Family PCI-E Gigabit Ethernet NIC (NDIS 6.20)
   Physical Address. . . . . . . . . : 00-24-1D-C9-D0-8E
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes
   Link-local IPv6 Address . . . . . : fe80::200a:e243:364f:8ec9%11(Preferred)
   IPv4 Address. . . . . . . . . . . : 192.168.11.10(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Lease Obtained. . . . . . . . . . : Thursday, 20 February 2014 8:36:49 AM
   Lease Expires . . . . . . . . . . : Monday, 24 February 2014 8:36:48 AM
   Default Gateway . . . . . . . . . : 192.168.11.1
   DHCP Server . . . . . . . . . . . : 192.168.11.1
   DHCPv6 IAID . . . . . . . . . . . : 234890269
   DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1A-66-F2-E1-00-24-1D-C9-D0-8E

   DNS Servers . . . . . . . . . . . : 192.231.203.132
                                       192.231.203.3
   NetBIOS over Tcpip. . . . . . . . : Enabled

Tunnel adapter isatap.{0693AA71-5382-4DED-8260-EA710149F8A9}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft ISATAP Adapter
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes

Tunnel adapter Local Area Connection* 12:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2001:0:9d38:90d7:c0a:2ff5:c458:7ffb(Preferred)
   Link-local IPv6 Address . . . . . : fe80::c0a:2ff5:c458:7ffb%14(Preferred)
   Default Gateway . . . . . . . . . : ::
   NetBIOS over Tcpip. . . . . . . . : Disabled

Tunnel adapter isatap.{870AA1C0-1FDE-4852-87D6-34357F1C7177}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft ISATAP Adapter #2
   Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
Dom
fonte
Só porque você não tem um endereço ipv6 não significa que você não pode conectar ou resolver endereços ipv6
Ramhound
Preciso saber por que esses nomes não estão sendo resolvidos ... Se isso não tem nada a ver com o fato de não ter acesso ao IPv6, preciso saber por que isso está acontecendo. Isso acontece em servidores Windows que eu corro também (SBS 2008, Server 2008 R2 e mais) e eu preciso consertá-lo.
Dom
Poste a saída de ipconfig /all.
Michael Hampton
É provavelmente um bug no nslookup. O que há para se preocupar? Se você quiser que o erro desapareça, desmarque IPv6 em sua (s) conexão (ões) de rede. Só para esclarecer: nslookup consulta servidores DNS. Não usa o resolvedor de DNS do Windows.
Daniel B
Desmarcar o IPv6 não melhora os problemas. Estou preocupado porque o SBS 2008 e o Server 2008 e o Server 2008 R2 às vezes não conseguem resolver os registros no CloudFlare e isso tem algo a ver com esse problema estranho. Nenhum servidor linux tem problemas. Às vezes, os servidores do Windows podem resolver alguns registros no CloudFlare e não outros, no mesmo domínio. Eu preciso descobrir porque.
Dom

Respostas:

5

Seu computador tentou criar uma conexão Teredo. Teredo é uma das várias tecnologias de transição IPv6, todas com várias desvantagens. Teredo é que ele simplesmente não funciona em uma variedade de cenários para os quais foi explicitamente projetado, como estar por trás de um dispositivo NAT IPv4.

Assim, como o Teredo está ativado, o seu computador acha tem conectividade IPv6, quando essa conectividade é realmente quebrada. (O ícone de status da rede usa uma verificação completamente diferente para conectividade isso é mais preciso.)

Para resolver o problema, desative Teredo (e, enquanto você está nisso, os outros dois problemáticos, 6to4 e ISATAP). Clique com o botão direito do mouse em Prompt de Comando e clique em Executar como Administrador e execute o seguinte:

netsh int ipv6 isatap set state disabled
netsh int ipv6 6to4 set state disabled
netsh int teredo set state disabled

Em seguida, reinicie o seu computador.

Michael Hampton
fonte
Estou tendo problemas semelhantes ao OP. A abordagem netsh que você está sugerindo é semelhante à edição do registro @ HKLM: \ SYSTEM \ CurrentControlSet \ services \ TCPIP6 \ Parâmetros DisabledComponents? E se não, a sua abordagem é a "recomendada"?
Félix Cantournet
@ FélixCantournet Sim, é sobre a mesma coisa. Mas é sempre recomendável evitar o registro, a menos que você saiba exatamente o que está fazendo, porque é muito fácil cometer um erro e mudar mais do que pretendia.
Michael Hampton
1

O Windows não está lidando com isso de maneira diferente, mas o nslookup está quebrado no Windows.

Resolvers sempre retornará endereços IPv4 e IPv6 se estiverem disponíveis e um tipo de endereço não for especificado. Todas as configurações padrão em pilhas de rede modernas têm preferência por endereços IPv6 em endereços IPv4. Isso significa que os endereços IPv6 são sempre retornados antes dos endereços IPv4. Isso normalmente não é um problema, já que os aplicativos cliente geralmente percorrem os endereços retornados pelo resolvedor se o primeiro endereço falhar. No caso de endereços IPv6 vs IPv4, a falha do IPv6 é quase instantânea se uma rota IPv6 padrão não estiver configurada.

O servidor DNS é duplo empilhado, o que significa que possui endereços IPv4 e IPv6. Ao executar a pesquisa especificando o servidor DNS padrão como uma opção de linha de comando, o nslookup percorre corretamente os endereços IP, começando com IPv6 e terminando com IPv4. No entanto, ao usar o nslookup interativamente, o nslookup tenta apenas o primeiro endereço retornado pelo resolvedor, que será sempre o endereço IPv6.

A correção para isso é especificar os servidores DNS por endereço IP ao usar o nslookup interativamente ou usar o nslookup de forma não interativa, especificando o servidor DNS padrão na linha de comando.

Observe que isso afeta apenas o nslookup no Windows, as versões modernas do Linux e o OS X usam uma versão fixa do nslookup.

David M. Syzdek
fonte