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 не сумісний. Детальні відмінності обговорюються тут.

Пошук сервісів[ред.ред. код]

Протокол 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 в поточних версіях включає реалізацію zeroconf.
  • zeroconf, пакет на основі Simple IPv4LL, простішій реалізації від Arthur van Hoff.

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

Виноски[ред.ред. код]

Посилання[ред.ред. код]