Что такое mDNS? Можно ли сделать запрос mDNS без запуска службы mdns?
Недавно наткнулся avahi-daemon
а также mdns
....
Нужен ли в моей системе клиент mDNS для соединения с сервером mDNS?
Или есть какой-либо другой способ подключить компьютер без клиента mDNS к компьютеру сервера mDNS (hostname.local)?
Можно ли пинговать с компьютера без запущенной службы mDNS.
1 ответ
1. Что такое mDNS?
Чтобы получить общую картину, вам нужно взглянуть на что-то под названием Zeroconf. Концепции Zeroconf были впервые реализованы Apple, но для этого Apple использует маркетинговое название Bonjour (первоначально Rendezvous). mDNS (многоадресный DNS) является частью этого - см. ниже.
Apple использует Bonjour для...
... AirPrint (когда мобильные клиенты iOS ищут в локальной сети доступный принтер, который они могут использовать для "печати без драйверов"), или для
... общие ресурсы принтера CUPS для публикации в локальной сети или для
... медиатека iTunes для обмена по локальной сети и для
... многие другие службы, которые должны работать без установки, настройки и обслуживания центрального DNS-сервера.
Под Linux эти же концепции были реализованы в проекте Avahi.
Bonjour / Zeroconf имеет 3 основных цели:
- Выделите IP-адреса без DHCP-сервера.
- Переводите между именами хостов и IP-адресами без DNS-сервера.
- Откройте для себя службы (например, поставщиков печати) без сервера каталогов, например LDAP, и упростите их использование.
Полные технические концепции Zeroconf указаны в серии RFC, в основном:
- IPv4LL / rfc3927 для назначения локальных IP-адресов без DHCP-сервера.
- mDNS / rfc6762 для многоадресной DNS для разрешения имен хостов без центрального DNS-сервера.
- DNS-SD / rfc6763 для обнаружения служб на основе DNS без центрального сервера каталогов.
Одним из главных архитекторов Zeroconf был Стюарт Чешир. После того, как он записал свои мысли о том, как реализовать первоначальную простоту использования Apple, протокол связывания имен AppleTalk по сетям TCP/IP был нанят Apple, чтобы помочь реализовать концепцию Zeroconf для устройств Mac. Затем он также был основным автором вышеупомянутых связанных документов RFC.
Реализация Bonjour от Apple также доступна для Windows и Linux (хотя в Linux также существует независимая реализация под названием Avahi) в виде Open Source под лицензией Apache License v2.0.
IANA ведет реестр имен и портов служб, где разработчики, желающие определить и разработать новые типы служб для своих систем, могут зарезервировать и зарегистрировать имена для них.
Можно ли сделать запрос mDNS без запущенной службы mdns?
Да, это.
Просто беги
avahi-browse -a
получать постоянно обновляемый список сервисных объявлений со всех узлов вашей локальной сети и предлагаемых ими услуг. Более подробный вывод перечислены
avahi-browse -v -a -t
-t
здесь также завершается команда автоматически (и не обновляется автоматически список) после того, как можно предположить, что обнаружены все текущие активные службы.
Вы можете найти принтеры с поддержкой IPP (Internet Printing Protocol), например:
avahi-browse _ipp._tcp -r -t
-r
"разрешит" найденные сервисы и покажет им удобочитаемое имя. _ipp._tcp
является (странной) кодировкой имени для сервисов, к которым нужно привыкнуть, если вы изучите эту тему более подробно. В этом случае это точный синтаксис, который будет использоваться для сервисов IPP в локальной сети. Пример вывода для вышеуказанной команды:
+ wlan1 IPv4 Officejet 6500 [F051B9] Интернет-принтер локальный = wlan1 IPv4 Officejet 6500 [F051B9] Интернет-принтер локальное имя хоста = [HPA0B3CCF051B9.local] адрес = [192.168.78.24] порт = [631] txt = ["Scan=T" " Дуплекс =F" "Color=T" "UUID=1c852a4d-b800-1f08-abcd-a0b3ccf051b9" "note=" "adminurl=http://HPA0B3CCF051B9.local." "mac=a0:b3:cc:f0:51:b9" "priority=30" "usb_MDL=Officejet 6600" "usb_MFG=HP" "product=(HP Officejet 6600)" "ty=Officejet 6600" "URF=CP1,MT1-2-8-9-10-11,OB9,OFU0,PQ3-4-5,RS300-600,SRGB24,W8,DEVW8,DEVRGB24-48,ADOBERGB24-48,IS1" "rp=ipp/printer" "pdl=application/vnd.hp-PCL,image/jpeg,application/PCLm,image/urf" "qtotal=1" "txtvers=1"]
Вы также можете найти службы в другом домене, который предоставляет их Интернету. Одним из примеров домена, где вы можете добиться успеха (чаще всего), является dns-sd.org:
avahi-browse --domain=dns-sd.org -a -v -r
Я скопировал часть этого ответа из информации тэга Bonjour на AskDifferent. Тем не менее, большая часть этой информации о тегах была написана мной в любом случае, так что я совсем не расстраиваюсь из-за этого....