Ceci est une ancienne révision du document !
Initialement développé par Apple via son protocole Bonjour, c'est aujourd'hui un standard RFC6762 .
mDNS utilise la même syntaxe que DNS (commandes et structure des requêtes) mais ne nécessite pas qu'un serveur DNS soit paramétré. Pour la résolution des noms, les machines créent leurs propres enregistrements DNS dans un cache local.
Comme aucun serveur n'est paramétré, les clients utilisent le port 5353/TCP avec les adresses de diffusion multicast:
Tous les hôtes voient passer la demande et le client ayant le nom recherché répond à la demande avec un message multicast contenant son adresse IP. Puisque le message est échangé en multicast, tous les autres machines peuvent mettre à jour leur cache respectif.
Le processus de résolution se résume alors ainsi:
A.local recherche l'adresse de Z.localZ.local répond avec son adresse IPzZ.local → IPz
Tout nom DNS a
En général, seuls les noms d’hôtes avec le TLD1) .local peuvent être utilisés avec le Multicast DNS. Cela limite cette forme de résolution de noms aux réseaux locaux. Les noms d’hôtes avec d’autres domaines de premier niveau, tels que .fr ou .com ne sont pas traités par le mDNS. Les adresses Web ne peuvent pas être résolues de cette manière.
Comme le standard DNS, mDNS supporte les enregistrements de type A, AAAA ainsi que le type SRV. Grace à cela, mDNS peut être utilisé pour trouver (résoudre) des hôtes et de services sur le réseau local.
Exemple d’enregistrement de type SRV:
_service._proto.name. TTL class SRV priority weight port target. _sip._tcp.example.com. 86400 IN SRV 0 5 5060 sipserver.example.com.
le CLI avahi-resolve permet de lancer des requêtes mDNS depuis la ligne de commande:
avahi-resolve --name my-host.local