O DNS não pode resolver o nome do host; nslookup pode

9

Eu tenho um usuário no Windows 7 que está tentando acessar um servidor local com um nome DNS de windows.cs. Temos dois servidores DNS internos. O servidor DHCP atribui aos usuários os dois servidores DNS internos como primário e secundário e, em seguida, o DNS dos nossos ISPs como servidor DNS terciário.

De vez em quando, o usuário não pode acessar o site em windows.cs. Se eu fizer ping, ele diz que não pode resolver o nome do host. Eu libero o cache do DNS e, quando exibo o cache do DNS, ele tem o seguinte:

windows.cs - O nome não existe

No entanto, se eu usar o nslookup, que por padrão consulta o servidor DNS primário (nosso interno) e o windows.cs, ele retorna o endereço IP correto.

Então, por que o Windows não pode resolver o nome do host usando ping, mas pode fazê-lo ao usar a ferramenta nslookup? E como faço para corrigir isso?

Safado
fonte
1
+1, eu tenho esse problema frequentemente ... mesmo com nomes de host que eu estava usando apenas 5 minutos atrás!
21311 Brad

Respostas:

12

Parece que você está dizendo que a solicitação do windows.cs está indo para o servidor DNS dos ISPs de vez em quando. O resultado nxdomain é armazenado em cache pelo cliente DNS do Windows e, portanto, usado para qualquer tentativa com um navegador da Web, ping etc. A limpeza do cache (ipconfig / flushdns) deve forçar o cliente DNS do Windows a tentar novamente a consulta, mas não há garantia de que não irá para o servidor DNS do ISP novamente.

O motivo pelo qual o ping não pode resolver o nome do host, mas o nslookup pode ser porque o nslookup é uma ferramenta de baixo nível que ignora o cliente DNS do Windows. Ele usa o servidor DNS solicitado (o primeiro por padrão) e faz a consulta rapidamente. Você pode alterar o servidor DNS consultado digitando server <host>no prompt nslookup, em que host é o IP ou FQDN.

O cliente DNS do Windows, no entanto, fará apenas consultas para entradas que não estão no cache (ou que expiraram). Caso contrário, ele retornará o resultado em cache.

Não está claro imediatamente por que o cliente Windows está usando o servidor DNS do ISP. Talvez não tenha conseguido resolver o servidor local recentemente (talvez por estar em outra rede), talvez o servidor local estivesse retornando erros. Ou talvez não tenha sido solicitado corretamente em Configurações avançadas de TCP / IP> DNS.

Pessoalmente, prefiro usar apenas endereços de servidores DNS locais em estações de trabalho (propagadas pelo DHCP), para simplificar a configuração e evitar problemas como esse. Eu ficaria curioso para saber a lógica por trás da configuração do servidor DNS dos ISPs nos desktops. Não consigo imaginar que haja razões válidas de desempenho e, na redundância, duas são suficientes na maioria das redes (se não adicionar uma terceira).

Alex Forbes
fonte
Você levanta um bom argumento. Não há nenhuma razão específica para que o servidor DHCP o atribua como terciário. E isso parece uma explicação razoável do motivo pelo qual não está resolvendo (mas por que está indo para o terceiro servidor DNS? Quem sabe ..). Obrigado pela direção. Vou remover o servidor DNS público do servidor DNS atribuído distribuído através do DHCP e ver se resolve o problema. Os servidores DNS internos devem passar as consultas que não puderem responder a esse servidor DNS, portanto, não deve ser um problema.
Safado
Atualização: isso parece ter corrigido nosso problema. Obrigado pela sugestão!
Safado
0

Os resultados nslookupdiferem dos resultados pingdevido a nslookupidiossincrasias e bugs . No entanto, eles não são realmente relevantes para o seu problema principal, que violou a regra de que os servidores DNS do proxy de fallback devem fornecer a mesma visualização do espaço para nome DNS que a principal . O servidor DNS proxy do seu ISP não fornece a mesma exibição do espaço para nome DNS que os seus próprios servidores DNS proxy na sua LAN.

Parece que mais um administrador do sistema caiu em desgraça com o meu ISP fornece e documentos, então eu preciso usá-lo. falácia. ☺

JdeBP
fonte
Então, em termos leigos, você está dizendo para não atribuir servidores DNS aos meus usuários, a menos que eu saiba que esses servidores DNS têm as mesmas informações? Seus links não funcionam.
Safado
0

Versão TL; DR: o IPv6 causou o problema de consulta DNS no meu caso, desativá-lo resolveu o problema de consulta DNS.

Eu tive o mesmo problema na minha máquina de desenvolvimento. Sempre que eu fazia login na rede da empresa, não conseguia resolver os nomes de host interno, todos os nomes / URIs de host externo podiam ser resolvidos. Eu verifiquei os servidores DNS que foram atribuídos na conexão VPN e eles mostraram que os servidores DNS da empresa estavam configurados como primário e secundário. Eu também poderia usar, nslookupmas tive que alterar manualmente o servidor via server X.X.X.Xpara obter a resolução DNS.

No final, descobri que o IPv6 estava causando problemas com a resolução de nomes: em cada consulta DNS, o DNS IPv6 era consultado, e não os servidores DNS da empresa IPv4. Depois de desativar o IPv6, é necessário que ipconfig /flushdnsos endereços consultados anteriormente ainda não sejam resolvidos.

SaschaM78
fonte
0

Consegui resolver o problema de maneira simples, excluindo o registro DNS e executando os comandos flushdns e registerdns, e isso foi corrigido. a razão pela qual a idade está no próprio DNS. O DNS não excluiu o registro após o término da concessão e não foi renovado, o que não conseguiu resolver o nome porque ele era antigo. Espero que ajude a resolver seus problemas.

Mohamed
fonte