у меня была аналогичная проблема, которую я решил, изменив настройки DHCP моего маршрутизатора, чтобы дать моей локальной сети домен и статические записи DNS, чтобы поместить каждый хост в этом домене.
тем не менее, я нашел несколько сообщений на форуме, которые описывают аналогичную проблему, которая имела тонко различные симптомы и другое решение (изменение реестра), поэтому я собираюсь подробно описать свою проблему, чтобы отличить ее от этого.
Мой Вопрос
Я недавно получил новый роутер (Микротик), и настроил его назначьте каждому хосту в моей сети статический IP и дайте каждому хосту локальный DNS хоста (и только имя хоста). Это отлично работало с UNIX / Linux / Mac OS X, но у Windows были проблемы с ним.
на Windows, я не мог пинг некоторые хосты по имени, хотя я мог бы искать их через nslookup и пинговать их по IP:
C:\>nslookup router
Server: router
Address: 192.168.22.1
Non-authoritative answer:
Name: router
Address: 192.168.22.1
C:\>ping router
Ping request could not find host router. Please check the name and try again.
C:\>ping 192.168.22.1
Pinging 192.168.22.1 with 32 bytes of data:
Reply from 192.168.22.1: bytes=32 time<1ms TTL=64
Reply from 192.168.22.1: bytes=32 time<1ms TTL=64
Reply from 192.168.22.1: bytes=32 time<1ms TTL=64
Reply from 192.168.22.1: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.22.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>nslookup overkill
Server: router
Address: 192.168.22.1
Non-authoritative answer:
Name: nas_server
Address: 192.168.22.5
но, как ни странно, некоторые другие сработало:
C:\>ping nas_server
Pinging nas_server [192.168.22.5] with 32 bytes of data:
Reply from 192.168.22.5: bytes=32 time<1ms TTL=64
Reply from 192.168.22.5: bytes=32 time<1ms TTL=64
Reply from 192.168.22.5: bytes=32 time<1ms TTL=64
Reply from 192.168.22.5: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.22.5:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>
Я использовал Wireshark для дальнейшего расследования и обнаружил, что команда ping не вызывает любой DNS пакеты для отправки, только NetBIOS Name Service пакетов. Это не сработает для моего маршрутизатора, но это будет успешно для моего NAS-сервера (потому что NAS работает под управлением Samba). Nslookup использовал DNS, поэтому он работал для всего.
захват Wireshark от пинга:
корень проблемы был что Windows использует службу имен NetBIOS вместо DNS в некоторых случаях (например, когда у хоста нет домена).
Мое Решение
Примечание: скриншоты с экрана настройки маршрутизатора, но они иллюстрируют общие понятия.
Я настроил свой DHCP-сервер, чтобы сообщить всем хостам, что они являются частью домена:
затем я настроил все мои статические записи DNS для размещения всех хостов в этом домене:
затем я очистил всю информацию DHCP / DNS от Windows:
C:\>ipconfig /release
C:\>ipconfig /renew
C:\>ipconfig /flushdns
и все работало!
C:\>ping router
Pinging router.localnet [192.168.22.1] with 32 bytes of data:
Reply from 192.168.22.1: bytes=32 time<1ms TTL=64
Reply from 192.168.22.1: bytes=32 time<1ms TTL=64
Reply from 192.168.22.1: bytes=32 time<1ms TTL=64
Reply from 192.168.22.1: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.22.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>