LLMNR, NBT-NS, mDNS
LLMN
LLMNR (Link-Local Multicast Name Resolution) (Windows) — это протокол, который используется в локальных сетях для соответствия сетевых имен их IP-адресам без использования DNS-сервера. Он активно используется в средах Windows.
LLMNR используется для соответствия сетевых имен их IP-адресам в локальной сети, когда на сети отсутствует DNS-сервер или он недоступен. Он позволяет установить соответствие между уникальным именем устройства (например, компьютера) и его IP-адресом в пределах одной сети без использования централизованного сервера.
Работа протокола LLMNR основана на мультикаст-рассылке информации о запросе на соответствие сетевого имени IP-адресу. Пример:
- "PC1" отправляет мультикаст запрос на адрес 224.0.0.252 с UDP-портом 5355, содержащий имя "PC2".
- Все компьютеры в локальной сети, поддерживающие LLMNR, получают этот запрос, включая "PC2".
- "PC2" обнаруживает, что запрос содержит его имя, и отправляет ответ на порт "PC1" с своим IP-адресом.
- "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, он передает UDP пакет на порт 137 локального IP-адреса широковещательного адреса сети.
- Устройства в сети, сопряженные с IP-адресами, получают пакет с запросом NBT-NS.
- Если устройство настроено для отклика на такие запросы, оно отправляет ответ NBT-NS с информацией о себе обратно на порт исходного компьютера.
- Исходный компьютер получает ответ NBT-NS с данными о сетевом устройстве, включая имя устройства и IP-адрес.
mDNS
mDNS(Multicast DNS) (Linux, MAC OS) — это протокол, который позволяет устройствам в локальной сети находить друг друга без необходимости настройки DNS-сервера.
Он используется для выполнения следующих функций:
- Автоматическое обнаружение: mDNS позволяет устройствам автоматически обнаруживать другие устройства в локальной сети. Например, если у вас есть сетевой принтер, устройства в сети смогут найти его без необходимости вручную настраивать IP-адрес принтера.
- Распознавание имени: mDNS позволяет устройствам иметь уникальное имя в локальной сети, без настройки DNS-сервера. Это позволяет обращаться к устройству по его имени, например, вместо IP-адреса. Это особенно полезно в домашней сети, где устройства имеют дружественные имена.
- Анонсирование: Устройство, желающее быть обнаруженным, отправляет mDNS пакеты через мультикастную IP-группу, известную как "224.0.0.251". Эти пакеты содержат информацию о имени устройства и его IP-адресе.
- Поиск: Другие устройства в сети, выполняющие mDNS, мониторят эту мультикастную группу и получают информацию о доступных устройствах. Когда они обнаруживают новое устройство, они обновляют свои списки доступных устройств.
- Кэширование: Устройства, поддерживающие mDNS, могут кэшировать информацию об обнаруженных устройствах. Это позволяет им быстро идентифицировать доступные устройства без постоянного выполнения поиска на каждый запрос.
- Игра вопрос-ответ: когда устройство хочет обратиться к другому устройству по его имени, оно отправляет запрос через мультикастную группу. Устройство, которое имеет такое имя, отвечает на запрос, предоставляя свой IP-адрес.
Таким образом, mDNS позволяет устройствам автоматически обнаруживать друг друга и обращаться друг к другу без необходимости настройки DNS-сервера или знания IP-адресов.