Outils pour utilisateurs

Outils du site


netadmin:mdns

Ceci est une ancienne révision du document !


mDNS

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:

  • IPv4: 224.0.0.251
  • IPv6: ff02::fb

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:

  1. l’hôte A.local recherche l'adresse de Z.local
  2. Tous les hôtes mDNS voient passer la demande
  3. L’hôte Z.local répond avec son adresse IPz
  4. Tous les les hôtes mDNS voient passer la réponse.
  5. Tous les hôtes mDNS mettent leur cache respectif à jour avec la correspondance Z.localIPz

Le TLD .local

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.

Les enregistrements mDNS

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.

Découverte d’hôtes via mDNS

le CLI avahi-resolve permet de lancer des requêtes mDNS depuis la ligne de commande:

avahi-resolve --name my-host.local

Découverte de services via mDNS

Sécurité

De nombreuses informations peuvent être collectées dans le cas ou le service mDNS est actif sur une interface exposée sur Internet. mDNS ne doit être utilisé que sur un réseau de confiance. Vérifier que mDNS n'est pas actif sur une interface publique (commande à exécuter depuis une session root):

nmap -Pn -sU -p5353 --script=dns-service-discovery <server-public-IP>

Références

1)
Top Level Domain
netadmin/mdns.1643068279.txt.gz · Dernière modification : 2022/01/24 23:51 de yoann