ZeroConf et l'implémentation "Bonjour"
Le service "DNS Discovery Service"
Objectif du service
Ce service permet aux diverses machines présentent sur un même réseau de s'informer mutuellement des services qu'elles fournissent.
La gestion des services disponibles n'est pas encore effectuée par l'organisme
IANA, qui gère actuelement les noms de domaines ainsi que les ports utilisés
par les différents protocoles internet. Mais la gestion des services sera bientot sa responsabilité
Ce service n'a pas été défini dans une RFC, mais il est également spécifier dans une draft qui a été rédigée par les ingénieurs d'Apple.
Fonctionnement
Ce service est complémentaire du service multicastDNS. En effet, il utilise des requetes DNS afin de partager les informations sur les services accessibles pour chaque machine du réseau local. Ainsi il utilise le meme principe que les serveurs de DNS pour hiérarchiser les noms de domaines, sauf qu'au lieu de stocker des domaines il va plutot stocker des protocoles et des noms de services.
Ainsi la racine est la même que pour le protocole DNS, le ".". En dessous de la racine, il y a le protocole, puis le nom du service qui est partagé, finalement il y a l'instance du service. Cette instance permet de gérer les cas ou il peut y avoir plusieurs fois le service installé, par exemple s'il y a plusieurs serveurs sur une machine, le numéro d'instance sera très pratique afin de connaitre à quelle serveur la connexion sera effectuée.Au démarrage du daemon, en meme temps que l'enregistrement du nom de domaine de la machine, il va enregistrer les services qu'il offre puis informer les ordinateurs du réseau.C'est le même procédé, lorsqu'un nouveau service est disponible, le daemon va envoyer une requête en multicast afin que chaque machine soit prévenue du nouveau service activé.
Exemple de démonstration
La capture suivante, réalisée avec le logiciel "Bonjour Browser", présente une vue de tous les services existants dans un réseau composé de plusieurs Macintoshs ainsi que d'un PC sous windows et une machine Linux. Ainsi, sur cette image on se rend compte qu'il y a de nombreux services activés sur un réseau privé. On ne voit pas de distinction entre les différents systèmes d'exploitations présents sur le réseau et normalement on ne peut deviner l'OS de chaque machine (si l'on ne tient pas compte des noms). Simplement on obtient la liste des services qui sont accessibles via les protocoles de "Bonjour".