Le DNS-Service Discovery (DNS-SD)

En l'état, le protocole mDNS est particulièrement abstrait, c'est pourquoi on le retrouve souvent comme base pour d'autres protocoles ou applications. C'est cette partie qui nous intéresse ici, nous allons voir l'application de mDNS au sein du protocole DNS-SD et nous étudierons ensuite, sans rentrer forcément dans les détails, les diverses mises en oeuvre du projet Zeroconf et donc de mDNS.

Commençons donc tout d'abord par le protocole DNS-SD qui signifie DNS-Service Discovery. Ce protocole est l'une des fonctionnalités de base du projet Zeroconf. Comme son nom l'indique, DNS-SD permet de rechercher des services sur le réseau local.

Comme mDNS, DNS-SD se base sur la structure existante du DNS, tel que les enregistrements, afin de publier les services disponibles. Par conséquent, chaque hôte possédant des services, sera en mesure de les publier sur le réseau avec comme détails par exemple le type de service ou le nom de domaine.

Le protocole DNS-SD n'est pas dépendant du protocole mDNS. En effet, il fonctionne très bien avec le service DNS de base et qui utilise des requêtes unicast. On peut donc se poser la question suivante : "quel est donc l'intérêt du mDNS dans ce cas ?". Et bien la réponse est assez évidente. Ces deux protocoles (DNS-SD et mDNS) sont des technologies complémentaires et fonctionnent très bien ensemble. Quand le premier permet de rechercher des services sur le lien local, le deuxième l'annonce à l'ensemble des ordinateurs présents sur le lien. Il n'est pas étonnant que les deux protocoles soient compatibles puisqu'ils ont été développés par la même équipe (Stuart Cheshire et Marc Krochmal d'Apple).

Pour finir, le protocole DNS-SD est utilisé par de nombreux produits, qu'ils soient d'Apple ou non (iTunes, Safari, clients de messagerie instantanée, distributions Linux, ...).

Ci-dessous un exemple de configuration d'une application de découverte de service:



© Alexandre Cusin-Panit et Nicolas Duthilleul