Multicast DNS : la résolution de noms alternative à petite échelle

Le Domain Name System (DNS) peut être comparé à un très gros annuaire téléphonique : le service permet aux utilisateurs de saisir des adresses Web dans leur navigateur, après quoi le système détermine l’adresse IP correcte à utiliser. Cette résolution de noms fonctionne en faisant en sorte que votre propre ordinateur interroge un serveur DNS correspondant. Une liste y est stockée dans laquelle l’adresse IP correcte de chaque nom d’hôte (c’est-à-dire l’adresse Web) est attribuée. Cependant, le Multicast DNS adopte une approche différente. Mais comment fonctionne cette alternative au DNS classique ?

Comment fonctionne le Multicast DNS ?

Multicast DNS (mDNS) est un service conçu pour aider à la résolution de noms dans les petits réseaux. Toutefois, le mDNS utilise une méthode différente de celle du DNS traditionnel : au lieu de solliciter un serveur de noms, tous les participants au réseau sont directement adressés. Le client correspondant envoie un multicast dans le réseau et demande à quel participant du réseau le nom d’hôte correspond. Le multicast est une forme de communication spécifique dans laquelle un seul message est adressé à un groupe de destinataires. Le groupe peut par exemple être constitué de l’ensemble du réseau ou d’un sous-réseau.

De cette façon, la requête est également envoyée au membre du groupe qui possède le nom d’hôte recherché. Il répond alors à l’ensemble du réseau également via le Multicast. De cette façon, tous les participants sont informés de la connexion entre le nom et l’adresse IP et peuvent effectuer une entrée correspondante dans leur cache mDNS. Ainsi, tant que cette entrée est valable, personne dans le réseau n’a besoin de demander ce nom d’hôte.

Le Multicast DNS génère un trafic relativement important, mais il permet d’économiser activement les ressources du réseau : pour ce faire, le client demandeur envoie la réponse correcte en fonction de son état (c’est-à-dire en fonction de l’entrée actuelle du cache). Le destinataire ne doit répondre que si cela n’est plus correct, ou si cette entrée est sur le point d’expirer. Les autres participants au réseau sont également informés de cette manière avant l’envoi d’une réponse. Cette méthode permet donc de réduire le trafic sur le réseau.

En général, seuls les noms d’hôtes avec la terminaison .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 (TLD), 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.

Note

Multicast DNS a été développé au début des années 2010 et est décrit dans la RFC 6762.

mDNS a été développé dans le cadre du projet Zeroconf (Zero Configuration Networking). L’idée derrière le Zero Configuration Networking est de permettre aux ordinateurs de communiquer entre eux sans aucun effort de configuration préalable. Le Multicast DNS répond à ces exigences : la procédure Multicast fait partie du TCP/IP et peut donc fonctionner sans aucune configuration.

Les avantages du mDNS

Le multicast DNS est conçu pour les petits réseaux et est destiné à améliorer la facilité d’utilisation. L’idée de base est que les utilisateurs peuvent connecter des appareils dans leur réseau local sans difficulté. Comme tous les appareils partagent leurs adresses IP, il n’est alors pas nécessaire de mettre en place un serveur ou un répertoire. Ainsi, des dispositifs supplémentaires peuvent être ajoutés de manière très dynamique et rapide.

Une application populaire du mDNS est le logiciel Bonjour d’Apple. Le service est principalement conçu pour connecter facilement les imprimantes de réseau au PC ou au Mac. Comme les appareils s’informent mutuellement de leurs adresses IP, l’utilisateur n’a pas à configurer lui-même la connexion. En plus du service d’Apple, le logiciel open source Avahi peut désormais être utilisé comme service mDNS. Cela permet également de connecter différents appareils entre eux sans qu’il soit nécessaire de les configurer au préalable. Depuis Windows 10, mDNS est également disponible dans le système d’exploitation de Microsoft.

Risques et inconvénients de Multicast DNS

La facilité de manipulation s’accompagne toutefois de certains inconvénients. Un problème réside dans la procédure Multicast même. Bien que le protocole tente de maintenir un faible trafic sur le réseau, les ordinateurs participants doivent également surveiller constamment le réseau et traiter les messages entrants. Cela nécessite et coûte de la puissance de calcul.

Par ailleurs, l’attribution des noms d’hôtes est problématique : en principe, vous pouvez choisir librement un nom pour chaque appareil, à condition qu’il se termine par .local. Cela peut (au moins théoriquement) conduire à ce que deux participants au réseau aient le même nom d’hôte. Les développeurs de mDNS n’ont délibérément pas mis en œuvre de solution pour un tel scénario. En effet, ils partent du principe que d’une part le cas est peu susceptible de se produire et, d’autre part, que la double dénomination peut être intentionnelle.

En revanche, un autre problème représente une source de danger. Dans certains cas, le mDNS est ouvert. Cela signifie que le service répond également aux demandes provenant de l’extérieur (via Internet). Les cybercriminels peuvent trouver de tels services ouverts et les utiliser pour effectuer des attaques DDoS. Les dispositifs de réseau sont ensuite détournés pour bombarder de requêtes un serveur cible. En outre, les données sensibles peuvent être repérées via un Multicast DNS ouvert. Les attaquants peuvent s’en servir pour lire les adresses MAC des appareils connectés, par exemple, puis utiliser ces informations pour lancer d’autres attaques.