September 23, 2025

LLMNR, NBT-NS, mDNS

LLMN

LLMNR (Link-Local Multicast Name Resolution) (Windows) — это протокол, который используется в локальных сетях для соответствия сетевых имен их IP-адресам без использования DNS-сервера. Он активно используется в средах Windows.

Для чего нужен LLMNR?

LLMNR используется для соответствия сетевых имен их IP-адресам в локальной сети, когда на сети отсутствует DNS-сервер или он недоступен. Он позволяет установить соответствие между уникальным именем устройства (например, компьютера) и его IP-адресом в пределах одной сети без использования централизованного сервера.

Процесс работы LLMNR:

Работа протокола LLMNR основана на мультикаст-рассылке информации о запросе на соответствие сетевого имени IP-адресу. Пример:

  1. "PC1" отправляет мультикаст запрос на адрес 224.0.0.252 с UDP-портом 5355, содержащий имя "PC2".
  2. Все компьютеры в локальной сети, поддерживающие LLMNR, получают этот запрос, включая "PC2".
  3. "PC2" обнаруживает, что запрос содержит его имя, и отправляет ответ на порт "PC1" с своим IP-адресом.
  4. "PC1" получает ответ от "PC2" с его IP-адресом.

Протокол LLMNR работает на прикладном уровне сети и использует порт 5355 для обмена информацией. Он работает только в пределах одной сети без применения ретрансляции через маршрутизаторы.

NBT-NS

NBT-NS (NetBIOS Name Service) (Windows) — это протокол, который используется в сетях Microsoft Windows для определения сетевых устройств.

Целью NBT-NS является обнаружение устройств в сети по их NetBIOS именам. NetBIOS — это программный интерфейс, который позволяет приложениям обмениваться данными и обнаруживать другие устройства в локальной сети. NBT-NS выступает в качестве службы, которая отвечает на запросы об идентификации NetBIOS имени и IP-адреса устройства.

Процесс работы NBT-NS:

  1. Когда компьютер отправляет запрос NBT-NS, он передает UDP пакет на порт 137 локального IP-адреса широковещательного адреса сети.
  2. Устройства в сети, сопряженные с IP-адресами, получают пакет с запросом NBT-NS.
  3. Если устройство настроено для отклика на такие запросы, оно отправляет ответ NBT-NS с информацией о себе обратно на порт исходного компьютера.
  4. Исходный компьютер получает ответ NBT-NS с данными о сетевом устройстве, включая имя устройства и IP-адрес.

mDNS

mDNS(Multicast DNS) (Linux, MAC OS) — это протокол, который позволяет устройствам в локальной сети находить друг друга без необходимости настройки DNS-сервера.

Он используется для выполнения следующих функций:

  • Автоматическое обнаружение: mDNS позволяет устройствам автоматически обнаруживать другие устройства в локальной сети. Например, если у вас есть сетевой принтер, устройства в сети смогут найти его без необходимости вручную настраивать IP-адрес принтера.
  • Распознавание имени: mDNS позволяет устройствам иметь уникальное имя в локальной сети, без настройки DNS-сервера. Это позволяет обращаться к устройству по его имени, например, вместо IP-адреса. Это особенно полезно в домашней сети, где устройства имеют дружественные имена.

Процесс работы mDNS:

  1. Анонсирование: Устройство, желающее быть обнаруженным, отправляет mDNS пакеты через мультикастную IP-группу, известную как "224.0.0.251". Эти пакеты содержат информацию о имени устройства и его IP-адресе.
  2. Поиск: Другие устройства в сети, выполняющие mDNS, мониторят эту мультикастную группу и получают информацию о доступных устройствах. Когда они обнаруживают новое устройство, они обновляют свои списки доступных устройств.
  3. Кэширование: Устройства, поддерживающие mDNS, могут кэшировать информацию об обнаруженных устройствах. Это позволяет им быстро идентифицировать доступные устройства без постоянного выполнения поиска на каждый запрос.
  4. Игра вопрос-ответ: когда устройство хочет обратиться к другому устройству по его имени, оно отправляет запрос через мультикастную группу. Устройство, которое имеет такое имя, отвечает на запрос, предоставляя свой IP-адрес.

Таким образом, mDNS позволяет устройствам автоматически обнаруживать друг друга и обращаться друг к другу без необходимости настройки DNS-сервера или знания IP-адресов.