Zeroconf

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

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

Zeroconf був запропонований працівником фірми Apple Computer, коли компанія переходила з 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 не сумісний. Детальні відмінності обговорюються тут [Архівовано 23 квітня 2012 у Wayback Machine.].

Пошук сервісів

Протокол 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 [Архівовано 1 травня 2009 у Wayback Machine.] (Zero-Conf IP)
  • BusyBox [Архівовано 13 серпня 2011 у Wayback Machine.] в поточних версіях включає реалізацію zeroconf.
  • zeroconf, пакет на основі Simple IPv4LL, простішій реалізації від Arthur van Hoff.

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

  • Патч для uDHCP client/server

Виноски

  1. Архівована копія. Архів оригіналу за 7 грудня 2008. Процитовано 19 грудня 2008.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. Архівована копія. Архів оригіналу за 7 грудня 2008. Процитовано 19 грудня 2008.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  3. Архівована копія. Архів оригіналу за 7 грудня 2008. Процитовано 19 грудня 2008.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  4. Архівована копія. Архів оригіналу за 7 січня 2017. Процитовано 19 грудня 2008.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)

Посилання

  • JmDNS [Архівовано 14 серпня 2009 у Wayback Machine.], a pure Java implementation of mDNS/DNS-SD
  • pyZeroConf [Архівовано 7 квітня 2009 у Wayback Machine.], a pure Python implementation of mDNS/DNS-SD
  • Mono.Zeroconf [Архівовано 2 січня 2010 у Wayback Machine.], a cross platform (Linux, Windows, Mac), unified Mono/.NET library for Zeroconf, supporting both Bonjour and Avahi
  • Multicast DNS Specification [Архівовано 25 листопада 2009 у Wayback Machine.]
  • DNS-Based Service Discovery Specification [Архівовано 8 лютого 2009 у Wayback Machine.]
  • Zeroconf.org [Архівовано 21 квітня 2009 у Wayback Machine.] — Stuart Cheshire's page, including internet drafts.
  • dns-sd.org [Архівовано 27 лютого 2009 у Wayback Machine.] DNS based Service Discovery
  • multicastdns.org [Архівовано 2 червня 2009 у Wayback Machine.] Multicast DNS
  • «Understanding Zeroconf and Multicast DNS» [Архівовано 24 січня 2007 у Wayback Machine.], December 2002 article, slightly outdated, on the O'Reilly Network.
  • AIR Wiki : ZeroconfTechnologies [Архівовано 26 травня 2006 у Wayback Machine.]
  • Charter of the DNSEXT working group, which coordinates LLMNR standardization
  • RFC 2608, Service Location Protocol, Version 2
  • Zero Configuration Networking: The Definitive Guide [Архівовано 17 травня 2008 у Wayback Machine.], by Daniel Steinberg and Stuart Cheshire, O'Reilly
  • Zeroconf tech talk by Stuart Cheshire to Google engineers.