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

Примечания править

Литература править

Ссылки править