Отладка разрешения имен в Windows и APIPA

588
divB

Для лабораторного оборудования я везде использую настройки по умолчанию, а они используют автоматическую настройку IP (я думаю, APIPA или zeroconf); Я положил их на частный выключатель.

Мне всегда удавалось обращаться к ним по имени хоста, я думаю, что это работает через mDNS.

Теперь я заменил одно устройство на идентичное, и вдруг это перестало работать:

C:\>ping FSW26-101414 Ping request could not find host FSW26-101414. Please check the name and try aga in. 

Инструменты, конечно, работают, и имя хоста определенно верно:

C:\>ping 169.254.27.85  Pinging 169.254.27.85 with 32 bytes of data: Reply from 169.254.27.85: bytes=32 time<1ms TTL=128 Reply from 169.254.27.85: bytes=32 time<1ms TTL=128 Reply from 169.254.27.85: bytes=32 time<1ms TTL=128 Reply from 169.254.27.85: bytes=32 time<1ms TTL=128  Ping statistics for 169.254.27.85: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms 

Что может быть причиной этого? Является ли проблема "хостом" или "клиентом"? Как я могу отладить это?

0
How are you expecting the name to resolve to an IP address? WINS? DNS? James 6 лет назад 0
Это часть моего вопроса ... но я предполагаю, что это mDNS. Я написал, что это AIPA (т.е. zeroconf), поэтому нет DHCP, DNS и т. Д. divB 6 лет назад 0
Попробуйте разрешить имя хоста вручную, используя nslookup. James 6 лет назад 0
Я думаю, что nslookip только для DNS. Если я использую его, он запрашивает мой основной DNS-сервер. Конечно, имя хоста не будет найдено таким образом. divB 6 лет назад 3
Are you running Windows 10 1511 or later? Prior versions of windows don't natively support mDNS. James 6 лет назад 0
Windows uses NetBios or DNS out of the box typically. Any device that isn’t windows based isn’t going to show up by hostname in a windows network. In addition NetBios can not be blocked on your firewall or disabled on the network interface. https://support.microsoft.com/en-us/help/172218/microsoft-tcp-ip-host-name-resolution-order Appleoddity 6 лет назад 0
If you were able to ping host names without adding .local to the end, then you were probably resolving them via NetBIOS Name Service broadcasts, not mDNS. Spiff 6 лет назад 0
@Spiff: Depends on the client used. While Bonjour requires .local to be explicitly specified, the integrated mDNS client in recent Win10 builds doesn't. (Whether you add .local or not, it automagically uses both mDNS and LLMNR.) grawity 6 лет назад 0
Ah ok then it's NetBIOS. For the devices which are working, adding ".local" does not work. Host OS is Win7 and the clients are a combination of Linux (!) and Win7 Embedded. The questions is then how to debug this with NetBIOS. Again, same device (Rohde & Schwarz FSW) used to work; I just changed the device to a different one. divB 6 лет назад 0
The solution is: NetBIOS must be enabled on the interface and the interface must be set as Home/Work network (NOT public), otherwise the firewall blocks netbios. divB 6 лет назад 0

1 ответ на вопрос

0
grawity

Локальное разрешение имен может использовать несколько протоколов. Сгруппированы по клиентским ОС:

  • Windows 10 (не знаю, какие выпуски, но приблизительно 10.1803 или более поздние) поддерживают протокол Apple mDNS (многоадресная передача UDP на порт 5353). Запросы имен отправляются группам многоадресной рассылки 224.0.0.251 и FF02 :: FB. Это не зависит от конфигурации IP (несмотря на то, что является частью пакета Zeroconf, он не использует, не подразумевает APIPA и наоборот). Он появляется, чтобы быть активным, когда LLMNR активен.

    (Если у вас установлен iTunes, независимо от версии Windows, он устанавливает свой собственный клиент mDNS - Apple Bonjour - в качестве Winsock LSP. Bonjour разрешает только имена с .localсуффиксом, в то время как встроенный клиент принимает однокомпонентные имена без TLD как Что ж.)

  • Windows Vista и Server 2008 и более поздние версии поддерживают протокол LLMNR (многоадресная передача UDP на порт 5355). Запросы имен отправляются групповым группам 224.0.0.252 и FF02 :: 1: 3. Это не зависит от конфигурации IP; он активен, пока активно обнаружение сети.

  • Все версии Windows поддерживают протокол службы имен NetBIOS (широковещательная рассылка UDP / IPv4 на порт 137, а также некоторые сложные выборы «главного браузера»). Насколько я понимаю, запросы на имя транслируются. Это не зависит от конфигурации IP, но требует, чтобы SMBv1 был установлен и включен.

Я не знаю, какое «лабораторное оборудование» вы используете, но любой из этих протоколов может поддерживаться не Windows-устройствами. (Например, в Linux mDNS реализован с помощью Avahi или mDNSResponder; LLMNR реализован с помощью systemd-resolved или xllmnrd; NBNS реализован с помощью Samba nmbd.) Многие устройства говорят на mDNS. Печатники, как правило, говорят все три и более.

Как устранить неполадки многоадресных протоколов:

  1. Установите инструмент захвата пакетов .
  2. Направьте его на интерфейс вашей локальной сети.
  3. Попробуйте разрешить имя, посмотрите, генерирует ли ваш компьютер ожидаемые пакеты запросов LLMNR или mDNS и генерирует ли другое устройство какие-либо ответы.
  4. Перезагрузите другое устройство (или просто подключите его к сети) и посмотрите, объявляет ли это устройство свои собственные пакеты регистрации имени .

Обратите внимание, что nslookupэто не общий инструмент поиска имени. Это строго одноадресный DNS-клиент, который вообще не помогает с mDNS / LLMNR / NBNS.

Based on your comments it must be NetBIOS (Host: Win7 Embedded, Client: Win7). Do you also have an idea how to debug the NetBIOS name resolution? divB 6 лет назад 0
Based on my comments it must be either NetBIOS or LLMNR, because Win7 is later than WinVista... Use the same tools either way – start a packet capture, try to resolve a name, and see what packets show up. grawity 6 лет назад 0