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).