Como o Windows decide qual servidor DNS usar ao resolver nomes?

38

Qual algoritmo o Windows usa para decidir qual servidor DNS ele consultará para resolver nomes?

Digamos que eu tenha várias interfaces, todas ativas, algumas sem servidor dns especificado, algumas informadas para determiná-lo automaticamente e algumas com ele especificadas manualmente (na interface ipv4 AND interface ipv6).

Estou pedindo uma resposta a essa pergunta geral, esperando saber como resolver um problema mais específico no Windows Vista - tenho duas interfaces, uma métrica mais baixa e um servidor DNS especificado manualmente. O nslookup usa o servidor DNS THIS e resolve os nomes corretamente. No entanto, todos os outros aplicativos não conseguem resolver o nome, a menos que eu especifique manualmente um servidor DNS para a outra interface, que os aplicativos usam. O nslookup também usa o servidor DNS especificado para essa outra interface, uma vez especificado.

Obrigado

    
por Artefacto 13.11.2009 / 03:46

6 respostas

23

Se não me engano, é determinado pela ordem de vinculação da NIC nas Configurações avançadas na pasta de conexões de rede. Você pode verificar isso alterando a ordem de ligação das várias NICs e executando nslookup como um teste.

Para expandir minha resposta, citando o artigo que o Evan vinculou , aqui está um trecho do dito artigo:

The DNS Client service queries the DNS servers in the following order:

  1. The DNS Client service sends the name query to the first DNS server on the preferred adapter’s list of DNS servers and waits one second for a response.

  2. If the DNS Client service does not receive a response from the first DNS server within one second, it sends the name query to the first DNS servers on all adapters that are still under consideration and waits two seconds for a response.

  3. If the DNS Client service does not receive a response from any DNS server within two seconds, the DNS Client service sends the query to all DNS servers on all adapters that are still under consideration and waits another two seconds for a response.

  4. If the DNS Client service still does not receive a response from any DNS server, it sends the name query to all DNS servers on all adapters that are still under consideration and waits four seconds for a response.

  5. If it the DNS Client service does not receive a response from any DNS server, the DNS client sends the query to all DNS servers on all adapters that are still under consideration and waits eight seconds for a response.

O adaptador preferido na etapa 1 é o adaptador listado primeiro na ordem de ligação.

    
por 13.11.2009 / 05:08
11

No Windows 10 (e no Windows Server 2016), você deve atualizar a métrica de cada interface na ordem desejada.

  1. Vá para o painel de controle > Rede e Internet > Conexões de Rede
  2. Clique com o botão direito na conexão desejada (Conexão de prioridade mais alta)
  3. Clique em Propriedades > Versão do Protocolo da Internet 4
  4. Clique em Propriedades > Avançado
  5. Desmarque a opção "Métrica automática"
  6. Digite 10 em 'Métrica de interface'
  7. Clique em OK

Referências:

Eu usei 10 para minha LAN, 20 para WLAN e 100 para interfaces VPN (prefiro o DNS local no trabalho, isso pode ser inverso para outros). Lembre-se de menor métrica = maior prioridade .

Consulte este artigo no Suporte da Microsoft para Uma explicação do recurso Automatic Metric para rotas IPv4 .

    
por 26.09.2016 / 22:06
8

Esta página descreve o algoritmo usado pelo Windows para realizar consultas DNS . Não é a profundidade suficiente para lhe dar todas as respostas que você está procurando, mas algum tempo com um sniffer e este artigo deve ser tudo que você precisa para determinar o que está acontecendo em sua situação específica.

    
por 13.11.2009 / 05:41
2

Eu tive exatamente o mesmo problema. Eu passei um dia tentando descobrir isso. Agora eu sei e funciona como um encanto.

Se você tiver várias placas de rede e se especificar o servidor DNS em cada uma delas. Você sabe qual servidor DNS será usado por último?

Bem, você pode verificá-lo através da prática.

nslookup 192.168.3.6

Então você vê o servidor que seu PC realmente usa

A questão é - De que depende o que as janelas do servidor DNS escolhem para usar e como podemos alterá-lo.

Precisamos especialmente quando usamos clientes VPN.

A resposta de qwerty2010 está certo e correto. Mas você pode usá-lo apenas quando você tem NIC no painel de controle - rede e compartilhamento de configurações de adaptador de mudança de centro - lista de nics

Somente se você vir o nic que é responsável por seu cliente VPN, você pode usar o modo gráfico para apontar o windows que servidor dns (que está especificado em um determinado nic) que você gostaria de usar.

Então você vai Rede e centro de compartilhamento - > Alterar as configurações do adaptador - > Avançado - > Configurações avançadas - > e você subir o nic com DNS que você gostaria de usar. (UP você precisa levantá-lo).

No entanto, se, por exemplo, você usar o cliente Shrew vpn - você não terá nenhuma nics.

O que você faz.

Você abre o registro.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

E você olha nas subpastas 0000, 0001 etc a pasta com

DriverDesc = Shrew Soft Virtual Adapter

bem. Então você copia para a área de transferência

NetCfgInstanceId = {B498E7DE-7257-48F6-AD32-60E470030F05}

Agora você vai

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage]

e você abre key = Bind . Você verá a lista como esta

\Device\{1DF89CE3-CAAD-4EB7-A53F-AD16BC1D5EFD}
\Device\{70126DBE-B44D-4392-9417-0CABD6E384B1}
\Device\{D5127F8E-E7BB-4661-AE5A-A922614173D0}
\Device\{C44039AB-6801-4A9B-A736-3B12782FF411}
\Device\{85231D0F-CD05-4774-A983-632C5D83AC62}
\Device\{7E87BC81-8C58-4E05-9FA0-7897A6AA5CCE}
\Device\{3A1A3EFC-A9DE-4BCA-BAF6-81C7074487E0}
\Device\{8D41EDFC-04AC-4537-B5D5-0D54EB51A023}

Tudo o que você precisa fazer é colocar no topo

\Device\{B498E7DE-7257-48F6-AD32-60E470030F05}
\Device\{1DF89CE3-CAAD-4EB7-A53F-AD16BC1D5EFD}
\Device\{70126DBE-B44D-4392-9417-0CABD6E384B1}
\Device\{D5127F8E-E7BB-4661-AE5A-A922614173D0}
\Device\{C44039AB-6801-4A9B-A736-3B12782FF411}
\Device\{85231D0F-CD05-4774-A983-632C5D83AC62}
\Device\{7E87BC81-8C58-4E05-9FA0-7897A6AA5CCE}
\Device\{3A1A3EFC-A9DE-4BCA-BAF6-81C7074487E0}
\Device\{8D41EDFC-04AC-4537-B5D5-0D54EB51A023}

Isso é tudo. Não há necessidade de reiniciar.

Agora, suas janelas usarão o DNS especificado em shrew vpn nic quando você usar a conexão vpn.

    
por 29.10.2016 / 10:40
0

Como isso pode ajudar você ou outras pessoas, você pode desabilitar o uso round-robin do windows dos dns listados para tornar o uso do dns mais previsível. Tente definir o RoundRobin=0 na HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters ( referência ) para desativar o dns round-robing.

Há também um "tempo limite" para girar os servidores, você também pode tentar defini-lo para zero :

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
 ServerPriorityTimeLimit=0
    
por 24.09.2013 / 16:05
-11

Não decide aleatoriamente. Você está conectado a um roteador que recebe IP de uma empresa que possui servidores DNS. Eles obtêm o seu pedido, a menos que você altere o IP manualmente para outro DNS, por exemplo: OpenDns . Ou talvez você decida ter seus próprios servidores DNS. Isso funciona também. Basta digitar os endereços IP no centro da rede e tudo deve estar bem. E sim, você terá que configurá-los manualmente.

Você também pode ajustar um arquivo em C:\Windows\System32 chamado "hosts" sem extensão. Ele permite que você redirecione as solicitações de URL em vez de serem enviadas para o DNS padrão. Para um servidor local (que deve estar em execução e escutando a porta 80)

    
por 13.11.2009 / 04:54