
На клиенте Windows 7, когда я пингую хост LAN MYSTERY, он выдает мне правильный IP. Однако, когда я делаю nslookup MYSTERY, он говорит о несуществующем домене. Я проверил оба DNS, перечисленных в ipconfig, и обнаружил, что имя хоста MYSTERY действительно не указано. На сервере DHCP также нет записи. То же самое поведение происходит после того, как я делаю ipconfig /flushdns. В локальном файле хостов Windows также нет записи.
Как узнать, откуда клиент получает разрешенный IP-адрес?
Примечание. MYSTERY — это Synology Rackstation, настроенная для присоединения к сетевому домену.
решение1
На вашем компьютере с Windows должен быть установлен какой-либо преобразователь mDNS (Бонжур), пусть это будет iTunes, Skype или другое программное обеспечение, которое устанавливает преобразователь mDNS. ping
будет корректно разрешаться, если преобразователь установлен, потому чтоLLMNRтеперь используется в Windows Vista и выше. LLMNR использует преобразователь mDNS для возврата записи.
Synology использует демон под названием avahi, этоМногоадресная DNS-рассылка/mDNS/DNS-SD сервер. Synology поставляется с завода настроенным как "RackStation" или имя хоста, исходя из того, что я испытал.
Если у вас Mac, dns-sd -B
покажет вам многоадресные службы. Вы увидите службу _http._tcp.local., указанную для RackStation.
dns-sd -G v4 RackStation.local
должен предоставить вам правильный IP-адрес для вашего RackStation
dns-sd -L RackStation _http._tcp.
должен вернуть всю информацию о сервисе, включая номера портов, серийный номер, модель и т. д.
Это также относится и к DiskStation. Я провел тестирование на DiskStation. С RackStation должно быть то же самое.
решение2
(Этот ответ, вероятно, неверный. Кажется, @xeon на правильном пути, и я кое-чему здесь научился.)
Причина сбоя поиска DNS заключается в том, что ping не использует DNS для разрешения этого имени.
nslookup
это команда для поиска DNS. ping
с другой стороны также попытается использоватьNetBIOS/ПОБЕДЫифайл хостовдля разрешения имени. Наиболее вероятный сценарий заключается в том, что это имя было получено через первое.
Вы можете использовать nbtstat -c
для перечисления имен NetBIOS и IP-адресов, которые были недавно замечены, или nbtstat -a <device>
если вы хотите активно искать имя. Имейте в виду, что это -a
займет больше времени, так как он должен попытаться сделать это один раз для каждого интерфейса. (вы не можете сказать ему пропустить широковещание/использовать только WINS)
Эта -r
опция позволит вам сравнить то, что было решено посредством широковещательной рассылки, с тем, что было решено посредством WINS, но это уже немного более продвинутый вариант.
решение3
Проверьте свои окнахозяевафайл, чтобы убедиться, что у вас нет записи, жестко закодированной там. Это заставит разрешение имени, даже если оно не может быть разрешено там.