января 15 2009 01:09 дп

Что такое Zeroconf и с чем его едят

domain-names.jpg

Давайте разберемся с терминологией:

  • Zeroconf — это протокол, разработанный Apple и призванный решать следующие проблемы:
    • выбор сетевого адреса для устройства;
    • нахождение компьютеров по имени;
    • обнаружение сервисов, например принтеров.
  • Avahi — открытая и свободная реализация протокола zeroconf.
  • Bonjour — проприетарная реализация протокола zeroconf от Apple.

Для назначения IP-адресов устройствам, zeroconf использует RFC 3927. Стандарт описывает назначение, так называемых link-local адресов, из диапазона 169.254.0.0/16. Технология называется IPv4 Link-Local или IPv4LL.

Для разрешения имен (name resolving) используется протокол Multicast DNS или сокращено mDNS. Он позволяет устройству выбрать имя в зоне .local. Работает это почти как обычный DNS, но с нюансами. Каждый компьютер хранит записи своей зоны (A, MX, SRV) сам и сам же обслуживает запросы к ним. Когда какой либо компьютер хочет узнать запись зоны, скажем определить IP-адрес по имени (получить запись A для заданной зоны), он обращается по multicast-адресу 224.0.0.251. Соответственно, запрос получают все компьютеры в локальной сети, а отвечает тот, кто хранит зону для интересующего нас имени.

Для поиска и обнаружения сервисов используется протокол DNS based Service Discovery или DNS-SD. Для того, чтобы прорекламировать, какие сервисы доступны на устройстве, используются DNS-записи типа SRV, TXT, PTR.

Как все это заставить работать на Linux? Гораздо проще, чем кажется. Разберем по шагам:

  1. Поставить пакеты avahi-daemon, avahi-autoipd, libnss-mdns. Если у вас стоит Ubuntu, то скорее всего эти пакеты уже установлены.
  2. Включить IPv4LL. Этот шаг совершенно не обязателен. Если у вас есть любой IP-адрес, который нормально маршрутизируется в локальной сети, то использовать IPv4LL не нужно и даже вредно, так как по стандарту, маршрутизатуры не должны форвардить пакеты с link-local адресами (169.254.*). Иными словами, пробросить интернет через NAT скорее всего не удастся (мне не удалось). Но если вы уж решились, то достаточно для сетевого интерфейса локальной сети, в файле /etc/network/interfaces поставить тип ipv4ll. Что-то типа такого:
    iface eth0 inet ipv4ll

    Далее можно сделать sudo invoke-rc.d networking restart или даже перезагрузиться (avahi-autoipd не будет устанавливать на интерфейсе адрес 169.254.*, если там уже есть другой IP-адрес, а он после sudo invoke-rc.d networking restart скорее всего никуда не исчезнет).

  3. Разрешить в брандмауэре прохождение UDP-пакетов через порт 5353 по адресу 224.0.0.251 (это нужно для нормально работы mDNS) на интерфейсах, смотрящих в локальную сеть.

На этом настройку можно считать завершенной. Какие бонусы после этого вы получите? Перечисляю: все компьютеры получат имена в домене *.local, без лишних телодвижений с вашей стороны; jabber-клиенты Gajim или Empathy будут показывать всех собеседников в локальной сети; Rhythmbox будет расшаривать всю музыку; Ekiga позволит находить и звонить всем, у кого она запущена в локалке; PulseAudio сможет находить все опубликованные звуковые устройства в сети; ну и многое, многое другое. Вы можете ознакомится со списком программ, поддерживающих avahi.

Несколько замечаний.

  • Просмотреть анонсированные сервисы в сети можно командой avahi-browse --all. Она же будет показывать в realtime подключение и отключение этих сервисов.
  • Если у вас стоит брандмауэр, то сервисы могут видеть друг друга, но не общаться, если закрыты нужные для них порты.
  • При помощи демона avahi-dnsconfd можно клонировать /etc/resolv.conf на все компьютеры локальной сети.
  • Непременно проголосуйте за идею внедрения связки NFS+Zeroconf в Gnome.

Источник http://blog.antage.name


Популярность: 47%

2 Комментариев »

1 звезда2 звезд3 звезд4 звезд5 звезд (1 голосов, средний: 4 из 5)
Загрузка ... Загрузка ...
Дай же, не жадничай!
ЯндексЯндекс. ДеньгиХочу такую же кнопку

2 Responses to “Что такое Zeroconf и с чем его едят”

  1. antage on 31 Мар 2009 at 14:36 #

    Поставьте, пожалуйста, прямую ссылку на мою статью.

  2. Stepanoff on 31 Мар 2009 at 22:59 #

    При переходе по ссылке попадаешь на страницу статьи.

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


Самые популярные статьи

  • Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальных доменов
  • Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO
  • Установка Samba сервера на Ubuntu или Debian за 5 минут
  • Подборка wide-screen обоев высокого разрешения
  • Mail.ru Агент в Linux
  • Установка и настройка DHCP сервера
  • Подробное руководство по настройке wifi соединения с шифрованием разных типов
  • Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH
  • Настройка ограничения и распределения канала (HTB Shaper)
  • Создание загрузочной флэшки с Ubuntu 8.04 Live или Server
  • Настройка маршрутизации в Ubuntu Linux для начинающих
  • Настройка вебкамер Genius и Acer Crystal Eye в Ubuntu 8.04
  • Редактирование текста при помощи SED
  • Сотня лучших полезных программ с открытым исходным кодом.
  • Небольшая подборка обоев "Linux like"
  • Установка VMware Server на Ubuntu 8.04
  • Блокировка нежелательных URL с помощью iptables
  • Запуск виртуальных хостов Apache2 от разных пользователей
  • Виртуализация с помощью Qemu
  • Вышел пакет PlayOnLinux 3.0 для запуска Windows игр в Linux
  • Установка драйвера MADWIFI для сетевого адаптера Atheros 5xxx
  • Установка сервера голосового общения TeamSpeak
  • Установка и настройка SSHD в среде chroot при помощи makejail
  • HDR обои на рабочий стол 1920x1200
  • Настройка маршрутизации с помощью Quagga (zebra)
  • Установка системы резервного копирования BackupPC
  • Установка и настройка L2TP сервера xl2tpd или l2tpd
  • Настройка поддержки мультимедиа в Ubuntu 8.04
  • Релиз Midnight Commander 4.6.3
  • Что такое Zeroconf и с чем его едят

  • « Установка и настройка SSHD в среде chroot при помощи makejail | XAMPP - web сервер для Mac OS »

    Рейтинг блогов Rambler's Top100
    службы мониторинга серверов