Zeroconf

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Zeroconf или Zero Configuration Networking — набор технологий, которые автоматически создают IP-сеть без конфигурации или специальных серверов.

Также известен как Automatic Private IP Addressing (APIPA), позволяя необученным пользователям соединять компьютеры, сетевые принтеры и другие устройства вместе и получать работающую сеть. Без Zeroconf, или чего-нибудь подобного, пользователь должен либо установить специальные сервисы, например DHCP и DNS, или настраивать всё вручную.

Идеология Zeroconf применялась в утилите Rendezvous от фирмы Apple Computer[1], когда компания переходила с AppleTalk на IP.

Решенные проблемы[править | править вики-текст]

Zeroconf решает три проблемы:

  • Выбор сетевого адреса для устройства
  • Нахождение компьютеров по имени
  • Обнаружение сервисов, например принтеров

Выбираемый адрес[править | править вики-текст]

Как IPv4, так и IPv6 описывают способы автоматического выбора IP адреса. Согласно RFC 3927, IPv4 использует адреса 169.254.* (link-local).

Microsoft ссылается на это как Automatic Private IP Addressing (APIPA) или «Internet Protocol Automatic Configuration» (IPAC).

Поиск по именам[править | править вики-текст]

Существует два способа разрешения имен. Apple Computer использует Multicast DNS (mDNS), а Microsoft — Link-local Multicast Name Resolution (англ.) (LLMNR).

Эти протоколы имеют мало отличий. mDNS выбирает имя в пространстве «.local» и объявляет его на некоторый мультикаст адрес. Это приводит к специальной семантике для пространства имен .local, что считается проблемой для некоторых членов IETF [1] [2]. Текущий черновик LLMNR позволяет устройству выбрать любое доменное имя, что рассматривается как недостаток в безопасности некоторыми членами IETF [3]. mDNS совместим с DNS-SD как описано ниже, а LLMNR не совместим. Детальные различия обсуждаются здесь.

Поиск сервисов[править | править вики-текст]

Протокол Apple[править | править вики-текст]

Облегченный протокол DNS Service Discovery (DNS-SD), используется в продукции Apple, многих сетевых принтерах и значительном количестве других продуктов и приложений под различные ОС. Он считается более простым и легким в реализации, чем SSDP, поскольку он использует DNS, а не HTTP. Используются записи SRV (RFC 2782), TXT, и PTR для описания Service Instance Names, которые содержат подробности о доступных сервисах, таких как тип, доменное имя и опциональные параметры настройки. Существует реестр типов сервисов [4], публикуемый DNS-SD.org.

Протокол UPnP[править | править вики-текст]

Simple Service Discovery Protocol (SSDP) — это протокол Universal plug-and-play, используемый в Windows XP и нескольких типах сетевого оборудования. Несмотря на название, он считается сложным и требует больших усилий для реализации, чем DNS-SD. SSDP использует HTTP-уведомления, которые содержат URI типа сервиса и Unique Service Name (USN).

Стандарты IETF[править | править вики-текст]

Service Location Protocol (SLP) — единственный протокол для обнаружения сервисов, получивший статус RFC, обычно игнорируется крупными производителями, кроме Novell. SLP описан в RFC 2608.

Стандартизация[править | править вики-текст]

RFC 3927 — стандарт для выбора IP адресов сетевыми устройствами, был опубликован в марте 2005 рабочей группой Zeroconf IETF working group, которая включала работников Apple, Sun и Microsoft.

Реализации[править | править вики-текст]

Apple Bonjour[править | править вики-текст]

Наиболее широко применяемое решение Zeroconf — Bonjour (бывший Rendezvous) от Apple Computer, который не следует SLP, а использует комбинацию стандартов IETF. Bonjour использует адресацию link-local, mDNS и DNS-SD. Apple перешла с SLP на mDNS и DNS-SD с выходом Mac OS 10.2.

Avahi[править | править вики-текст]

Avahi — реализация Zeroconf для дистрибутивов GNU/Linux и BSD.

IPv4 Link-Local адреса[править | править вики-текст]

Доступно несколько реализаций:

  • Windows и Mac OS поддерживают их с 1998. Apple выпустил реализацию с открытым кодом в пакете bootp для ОС Darwin.
  • zcip (Zero-Conf IP)
  • BusyBox [5] в текущих версиях включает реализацию zeroconf.
  • zeroconf, пакет на основе Simple IPv4LL, более простой реализации от Arthur van Hoff.

Вышеперечисленные реализации — отдельные демоны. Другой подход заключается в модификации существующих DHCP клиентов.

mDNS и DNS-SD[править | править вики-текст]

Мультикаст DNS позволяет использовать привычные API и формат пакетов DNS для работы в малых сетях без обычного DNS сервера.

mDNS и DNS-SD (DNS Service Discovery) часто реализуются вместе. Наиболее популярная комбинация — это mDNSResponder от Apple, который имеет интерфейсы к Си и Java и доступен для BSD, Mac OS X, Linux, и других POSIX-совместимых ОС, а также для Microsoft Windows. [6] [7]

См. также[править | править вики-текст]

Ссылки на реализации[править | править вики-текст]

  • Avahi, a free-software (LGPL) implementation of mDNS/DNS-SD for Linux, NetBSD, FreeBSD and Darwin/MacOSX
  • Bonjour, an implementation of DNS-SD by Apple Computer
  • JmDNS in Java
  • Liaison
  • mdnsd, embeddable Multicast DNS Daemon without DNS-SD
  • pyZeroConf, Python service discovery
  • tmdns, tiny multicast DNS, from the same project as ZCIP
  • Multicast DNS

Ссылки[править | править вики-текст]

Книги[править | править вики-текст]

Видео[править | править вики-текст]

Примечания[править | править вики-текст]