Из того, что вы говорите, следует, что запрос на windows.cs поступает на DNS-сервер ISP время от времени. Затем результат nxdomain кэшируется DNS-клиентом Windows и, таким образом, используется для любых повторных попыток с помощью веб-браузера, проверки связи и т. Д. Очистка кэша (ipconfig / flushdns) должна заставить DNS-клиент Windows повторить запрос, но это не гарантируется. больше не пойдет на DNS-сервер интернет-провайдера.
Причина, по которой ping не может разрешить имя хоста, но nslookup может, заключается в том, что nslookup - это низкоуровневый инструмент, который обходит DNS-клиента Windows. Он использует любой DNS-сервер, которому вы его указываете (первый по умолчанию), и выполняет запрос на лету. Вы можете изменить DNS-сервер, который он запрашивает, набрав server <host>
в приглашении nslookup, где host - это IP или FQDN.
Однако DNS-клиент Windows будет выполнять запросы только для тех записей, которые не находятся в его кэше (или срок их действия истек). В противном случае он возвращает кэшированный результат.
Не сразу понятно, почему клиент Windows использует DNS-сервер ISP. Возможно, он не мог разрешить локальный сервер в последнее время (возможно, из-за того, что он был в другой сети), возможно, локальный сервер возвращал ошибки. Или, возможно, он неправильно упорядочен в разделе «Дополнительные параметры TCP / IP»> «DNS».
Лично я предпочитаю использовать адреса локальных DNS-серверов только на рабочих станциях (распространяемых через DHCP), чтобы упростить настройку и избежать подобных проблем. Мне было бы любопытно узнать причину установки DNS-сервера интернет-провайдеров на настольных компьютерах. Я не могу себе представить, что существуют какие-либо веские причины производительности, и для избыточности достаточно двух в большинстве сетей (если не добавить третью).