Zeroconf

Поделись знанием:
(перенаправлено с «MDNS»)
Перейти к: навигация, поиск




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 [www1.ietf.org/mail-archive/web/ietf/current/msg37126.html] [www1.ietf.org/mail-archive/web/ietf/current/msg37773.html]. Текущий черновик LLMNR позволяет устройству выбрать любое доменное имя, что рассматривается как недостаток в безопасности некоторыми членами IETF [www1.ietf.org/mail-archive/web/ietf/current/msg37740.html]. mDNS совместим с DNS-SD как описано ниже, а LLMNR не совместим. Детальные различия обсуждаются [www.mhonarc.org/archive/html/ietf/2005-08/msg00494.html здесь].

Поиск сервисов

Протокол Apple

Облегченный протокол DNS Service Discovery (DNS-SD) используется в продукции Apple, многих сетевых принтерах и значительном количестве других продуктов и приложений под различные ОС. Он считается более простым и легким в реализации, чем SSDP, поскольку он использует DNS, а не HTTP. Используются записи SRV (RFC 2782), TXT, и PTR для описания Service Instance Names, которые содержат подробности о доступных сервисах, таких как тип, доменное имя и опциональные параметры настройки. Существует реестр типов сервисов [www.dns-sd.org/ServiceTypes.html], публикуемый [www.dns-sd.org 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 рабочей группой [www.ietf.org/html.charters/OLD/zeroconf-charter.html 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.
  • [zeroconf.sourceforge.net/ zcip] (Zero-Conf IP)
  • BusyBox [busybox.net/] в текущих версиях включает реализацию zeroconf.
  • [www.progsoc.uts.edu.au/~wildfire/zeroconf/ zeroconf], пакет на основе [www.zeroconf.org/AVH-IPv4LL.c Simple IPv4LL], более простой реализации от Arthur van Hoff.

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

  • [udhcp.busybox.net/lists/udhcp/2005-May/000124.html Патч] для [udhcp.busybox.net/ uDHCP client/server]

mDNS и DNS-SD

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

mDNS и DNS-SD (DNS Service Discovery) часто реализуются вместе. Наиболее популярная комбинация — это mDNSResponder от Apple, который имеет интерфейсы к Си и Java и доступен для BSD, Mac OS X, Linux, и других POSIX-совместимых ОС, а также для Microsoft Windows. [developer.apple.com/darwin/projects/rendezvous/] [www.macdevcenter.com/pub/a/mac/2004/08/31/osx_java.html]

См. также

Ссылки на реализации

  • 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.sourceforge.net/ JmDNS] in Java
  • [www.acm.uiuc.edu/signet/liaison/ Liaison]
  • [www.dotlocal.org/mdnsd/ mdnsd], embeddable Multicast DNS Daemon without DNS-SD
  • [sourceforge.net/projects/pyzeroconf/ pyZeroConf], Python service discovery
  • [sourceforge.net/projects/zeroconf/ tmdns], tiny multicast DNS, from the same project as ZCIP
  • [www.multicastdns.org/ Multicast DNS]

Напишите отзыв о статье "Zeroconf"

Ссылки

  • Erik Guttman (2001). «Autoconfiguration for IP Networking: Enabling Local Communication». IEEE Internet Computing 5 (3): 81-86.
  • [www.zeroconf.org/ Zeroconf.org] — Stuart Cheshire’s page, including expired internet drafts.
  • [www.oreillynet.com/pub/a/wireless/2002/12/20/zeroconf.html «Understanding Zeroconf and Multicast DNS»], December 2002 article, very slightly outdated, on the O’Reilly Network.
  • [www.science.uva.nl/research/air/wiki/ZeroconfTechnologies AIR Wiki : ZeroconfTechnologies]
  • [ietf.org/html.charters/dnsext-charter.html Charter of the DNSEXT working group], which coordinates LLMNR standarization
  • [www.dotlocal.org/ Explanation of .local addresses], which are used with mDNS but not yet standardized by IANA
  • [www.dns-sd.org/ DNS-SD.org] DNS Service Discovery
  • [www.upnp.org/ UPnP consortium]
  • RFC 2608, Service Location Protocol, Version 2
  • [avahi.org/ avahi.org]

Книги

  • [www.oreilly.com/catalog/bonjour/index.html Zero Configuration Networking: The Definitive Guide], by Daniel Steinberg and Stuart Cheshire, O’Reilly

Видео

  • [video.google.com/videoplay?docid=-7398680103951126462&q=Google+techtalks Zeroconf tech talk] by Stuart Cheshire to Google engineers.

Примечания

  1. [www.computerra.ru/think/sentinel/34467/ И звезда с звездою говорит — Компьютерра-Онлайн — Apple Rendezvous: теперь для Linux и Windows!]

Отрывок, характеризующий Zeroconf

Старый князь говорил, что ежели он болен, то только от княжны Марьи; что она нарочно мучает и раздражает его; что она баловством и глупыми речами портит маленького князя Николая. Старый князь знал очень хорошо, что он мучает свою дочь, что жизнь ее очень тяжела, но знал тоже, что он не может не мучить ее и что она заслуживает этого. «Почему же князь Андрей, который видит это, мне ничего не говорит про сестру? – думал старый князь. – Что же он думает, что я злодей или старый дурак, без причины отдалился от дочери и приблизил к себе француженку? Он не понимает, и потому надо объяснить ему, надо, чтоб он выслушал», – думал старый князь. И он стал объяснять причины, по которым он не мог переносить бестолкового характера дочери.
– Ежели вы спрашиваете меня, – сказал князь Андрей, не глядя на отца (он в первый раз в жизни осуждал своего отца), – я не хотел говорить; но ежели вы меня спрашиваете, то я скажу вам откровенно свое мнение насчет всего этого. Ежели есть недоразумения и разлад между вами и Машей, то я никак не могу винить ее – я знаю, как она вас любит и уважает. Ежели уж вы спрашиваете меня, – продолжал князь Андрей, раздражаясь, потому что он всегда был готов на раздражение в последнее время, – то я одно могу сказать: ежели есть недоразумения, то причиной их ничтожная женщина, которая бы не должна была быть подругой сестры.
Старик сначала остановившимися глазами смотрел на сына и ненатурально открыл улыбкой новый недостаток зуба, к которому князь Андрей не мог привыкнуть.
– Какая же подруга, голубчик? А? Уж переговорил! А?
– Батюшка, я не хотел быть судьей, – сказал князь Андрей желчным и жестким тоном, – но вы вызвали меня, и я сказал и всегда скажу, что княжна Марья ни виновата, а виноваты… виновата эта француженка…
– А присудил!.. присудил!.. – сказал старик тихим голосом и, как показалось князю Андрею, с смущением, но потом вдруг он вскочил и закричал: – Вон, вон! Чтоб духу твоего тут не было!..

Князь Андрей хотел тотчас же уехать, но княжна Марья упросила остаться еще день. В этот день князь Андрей не виделся с отцом, который не выходил и никого не пускал к себе, кроме m lle Bourienne и Тихона, и спрашивал несколько раз о том, уехал ли его сын. На другой день, перед отъездом, князь Андрей пошел на половину сына. Здоровый, по матери кудрявый мальчик сел ему на колени. Князь Андрей начал сказывать ему сказку о Синей Бороде, но, не досказав, задумался. Он думал не об этом хорошеньком мальчике сыне в то время, как он его держал на коленях, а думал о себе. Он с ужасом искал и не находил в себе ни раскаяния в том, что он раздражил отца, ни сожаления о том, что он (в ссоре в первый раз в жизни) уезжает от него. Главнее всего ему было то, что он искал и не находил той прежней нежности к сыну, которую он надеялся возбудить в себе, приласкав мальчика и посадив его к себе на колени.
– Ну, рассказывай же, – говорил сын. Князь Андрей, не отвечая ему, снял его с колон и пошел из комнаты.
Как только князь Андрей оставил свои ежедневные занятия, в особенности как только он вступил в прежние условия жизни, в которых он был еще тогда, когда он был счастлив, тоска жизни охватила его с прежней силой, и он спешил поскорее уйти от этих воспоминаний и найти поскорее какое нибудь дело.
– Ты решительно едешь, Andre? – сказала ему сестра.
– Слава богу, что могу ехать, – сказал князь Андрей, – очень жалею, что ты не можешь.
– Зачем ты это говоришь! – сказала княжна Марья. – Зачем ты это говоришь теперь, когда ты едешь на эту страшную войну и он так стар! M lle Bourienne говорила, что он спрашивал про тебя… – Как только она начала говорить об этом, губы ее задрожали и слезы закапали. Князь Андрей отвернулся от нее и стал ходить по комнате.
– Ах, боже мой! Боже мой! – сказал он. – И как подумаешь, что и кто – какое ничтожество может быть причиной несчастья людей! – сказал он со злобою, испугавшею княжну Марью.
Она поняла, что, говоря про людей, которых он называл ничтожеством, он разумел не только m lle Bourienne, делавшую его несчастие, но и того человека, который погубил его счастие.
– Andre, об одном я прошу, я умоляю тебя, – сказала она, дотрогиваясь до его локтя и сияющими сквозь слезы глазами глядя на него. – Я понимаю тебя (княжна Марья опустила глаза). Не думай, что горе сделали люди. Люди – орудие его. – Она взглянула немного повыше головы князя Андрея тем уверенным, привычным взглядом, с которым смотрят на знакомое место портрета. – Горе послано им, а не людьми. Люди – его орудия, они не виноваты. Ежели тебе кажется, что кто нибудь виноват перед тобой, забудь это и прости. Мы не имеем права наказывать. И ты поймешь счастье прощать.
– Ежели бы я был женщина, я бы это делал, Marie. Это добродетель женщины. Но мужчина не должен и не может забывать и прощать, – сказал он, и, хотя он до этой минуты не думал о Курагине, вся невымещенная злоба вдруг поднялась в его сердце. «Ежели княжна Марья уже уговаривает меня простить, то, значит, давно мне надо было наказать», – подумал он. И, не отвечая более княжне Марье, он стал думать теперь о той радостной, злобной минуте, когда он встретит Курагина, который (он знал) находится в армии.
Княжна Марья умоляла брата подождать еще день, говорила о том, что она знает, как будет несчастлив отец, ежели Андрей уедет, не помирившись с ним; но князь Андрей отвечал, что он, вероятно, скоро приедет опять из армии, что непременно напишет отцу и что теперь чем дольше оставаться, тем больше растравится этот раздор.
– Adieu, Andre! Rappelez vous que les malheurs viennent de Dieu, et que les hommes ne sont jamais coupables, [Прощай, Андрей! Помни, что несчастия происходят от бога и что люди никогда не бывают виноваты.] – были последние слова, которые он слышал от сестры, когда прощался с нею.