Parfois on cherche à reproduire nos infrastructures professionnelles alors qu’il existe des solutions tout à fait satisfaisante pour répondre à des besoins ponctuels. Le mdns fait partie de ses solutions.

Je cherchais une solution de résolution de noms pour éviter de devoir créer des baux statiques pour tous mes périphériques. Et j’ai trouvé la solution en regardant dans les paramètres des baux DHCP de ma freebox. En effet j’ai vu le nom de mdns que je ne connaissais pas. Je suis tombé sur la doc de zéroconf et là je me suis dit génial tout à fait ce que je cherche. Donc fini de jongler avec les adresses IP de mes périphériques comme celle de mon raspberry pi.

Le mDNS, pour Multicast DNS, a été développé par la société Apple en s’inspirant des travaux publié par Bill Manning et Bill Woodcook (2 bill’s) sur le protocole Multicast Domain Name Service. Le Multicast DNS est un protocole utilisant des datagrammes similaires au DNS unicast, mais mis en œuvre différemment. En effet mDns n’utilise pas de serveur central, chaque périphérique envoie des requêtes aux autres pour indiquer leur nom, leur adresse IP et leur fonction. mDns utilise le domaine .local qui lui est réservé. Par exemple mon raspberry pi, qui se nomme rpi, est accessible depuis les autres machines par le nom rpi.local.

Installation de mdns sur le Raspberry pi.

L’implémentation de ce protocole sur Linux utilise la bibliothèque logicielle Avahi et est compatible avec celle de Bonjour. Pour ubuntu pas besoin de se prendre la tête car tout est installé par défaut et configuré via le package Zéroconf. Par contre sur le rpi il faut tout simplement deux packages :

sudo apt-get install avahi-daemon libnss-mdns

Même pas besoin de rebooter pour que cela soit pris en compte.

Pour retrouver tous vos périphériques mdns présent sur votre réseau il suffit de taper la commande suivante :

avahi-browse --all

Oh surprise la chromecast est présente dans la liste.