Ceci est une ancienne révision du document !


Zeroconf est une collection d'outils et de protocoles servant à l'autoconfiguration des réseaux. Cette technologie est appellée Bonjour (ou encore Rendezvous) par Apple et est utilisée intensivement par Mac OS X.

Zeroconf est composé de

  • Résolution de noms, MDNS
  • Publication de service sur le réseau
  • Allocation d'adresses

Traditionellement, la plus part de ce travail est réalisé par DHCP et DNS. Cependant, la conception décentralisée de zeroconf est plus appropriée dans certaines situations, comme pour les réseaux ad-hoc. De plus, cela se fait sans aucune configuration (mise à part celle de l'installation de zeroconf).

Zeroconf s'intègre très bien avec les outils traditionnels. Par exemple, vous pouvez obtenir une adresse IP par DHCP et utiliser le service DNS pour résoudre les adresses sur internet, tout en utilisant le hostname.local de MDNS (Multicast DNS) pour résoudre les adresses des autres ordinateurs sur le LAN.

Remarque : Si vous souhaitez utiliser zeroconf dans un réseau qui ne vous appartient pas, il est préférable de contacter en premier l'administrateur réseau. Bien que zeroconf soit un protocole performant, l'administrateur peut ne pas vouloir de ce traffic réseau additionnel. Soyez aussi vigilant, car il est aisé d'usurper un nom mdns .local.

Cette technologie peut actuellement être utilisée pour

  • Partager de la musique - Rhythmbox, Banshee, iTunes
  • Echanger des fichiers - gShare
  • Découvrir automatiquement les autres clients VoIP - Ekiga (an)
Installation

Ubuntu 6.10

Tous les packets sont installés par default. Pour activer zeroconf, editer le fichier

/etc/default/avahi-daemon

et changer

AVAHI_DAEMON_START=0

par

AVAHI_DAEMON_START=1

Puis rebooter.

Vous pouvez aussi relancer le démon sans rebooter avec cette commande :

sudo /etc/init.d/avahi-daemon restart

Ubuntu 6.06 and 5.10

Installer simplement les packets avahi-daemon et libnss-mdns.

MDNS

Maintenant, chaque ordinateur qui a avahi-daemon (ou mdnsresponder) installé s'indentifiera lui-même sur le réseau comme

hostname.local

par exemple, mon ordinateur flute, s'identifie lui-même comme

flute.local

Dès lors, n'importe quel ordinateur peut utiliser hostname.local à la place d'une adresse IP. Par exemple vous pouvez faire

ping flute.local

ou

ssh flute.local
Configuration du pare-feu

Si vous utilisez un pare-feu et que vous avez des problems comme celui-ci

sam@titania:~$ ping flute.local
ping: unknown host flute.local

alors il est probable que votre pare-feu bloque les communications de zeroconf. Si lorsque vous arrêtez votre pare-feu zeroconf fonctionne, alors cela vient sûrment du pare-feu.

Si vous utilisez firestarter tout le traffic multicast est bloqué. Cela sera peut-être configurable dans la prochaine version. En attendant, la solution à ce problème est d'éditer /etc/firestarter/user-pre en tant qu'utilisateur root. Vous aurez besoin de chmod u+w ce fichier pour obtenir les droits en écriture avant de l'éditer. Par exemple;

sudo -s
cd /etc/firestarter
chmod +w user-pre
gedit user-pre

Adaptez le contenu de ce fichier avec ce qui suit:

$IPT -A INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
$IPT -A OUTPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT

Puis, sauvegarder le fichier, remettre les droits en lecture seule sur ce fichier et relancer firestarter:

chmod -w user-pre
/etc/init.d/avahi-daemon restart

Maintenant, vous devriez être capable de résoudre les noms .local

sam@titania:~$ ping flute.local
PING flute.local (192.168.1.101) 56(84) bytes of data.
64 bytes from flute.local (192.168.1.101): icmp_seq=1 ttl=64 time=4.45 ms
64 bytes from flute.local (192.168.1.101): icmp_seq=2 ttl=64 time=4.16 ms

Si vous utilisez le pare-feu guarddog, vaus aurez besoin de créer une nouvelle zone pour le traffic multicast et d'ajouter une entrée au fichier networkprotocoldb.xml

Appeller cette nouvelle zone "multicast" et positionner les adresses de la zone ainsi 224.0.0.0/255.0.0.0. Ajouter le code XML ci-dessous dans /usr/share/apps/guarddog/networkprotocoldb.xml , juste au-dessus de l'endroit où il est écrit "<protocol name="domain">". Relancer guarddog et cocher les cases qui permettent le traffic mDns entre vos zones.

<protocol name="mDns">
  <!-- Protocol information guessed by Greg N <emailgregn@googlemail.com> -->
  <longname>mDns,Bonjour,Avahi,ZeroConf</longname>
  <longname lang="nl">mDns</longname>
  <longname lang="fr">mDns</longname>
  <longname lang="it">mDns</longname>
  <longname lang="es">mDns</longname>
  <description>Protocols to allow networks to configure themselves. It is called Bonjour (formerly Rendezvous) by Apple, and used extensively on Mac OS X. </description>
 
  <classification class="net"/>
  <network>
    <udp source="server" dest="client">
      <source><port portnum="nonprivileged"/></source>
      <dest><port portnum="5353"/></dest>
    </udp>
    <udp source="client" dest="server">
      <source><port portnum="5353"/></source>
      <dest><port portnum="nonprivileged"/></dest>
    </udp>
  </network>
  <security threat="medium" falsepos="low"/>
</protocol>
Resources
  • zeroconf.1176391402.txt.gz
  • Dernière modification: Le 13/04/2007, 08:47
  • (modification externe)