Cet article fait partie de notre guide: Guide des bonnes pratiques sur les serveurs Windows

Comprendre les serveurs DNS pour mieux dépanner le réseau

Les DNS font la conversion entre les noms des machines et leurs adresses IP dans la cadre de la communication des applications sur le réseau. Cet article explique comment ils fonctionnent et ce dont ils ont besoin.

La résolution de noms est le processus qui consiste à associer des noms de machines et des adresses IP. Cette fonction est plus connue sous son acronyme – le DNS - et c'est l'un des services les plus essentiels d'un réseau.

Les utilisateurs comprennent les noms descriptifs, mais les communications en réseau nécessitent des adresses numériques difficiles à mémoriser. S'il est assez simple pour les administrateurs réseau de se connecter à un serveur appelé web3, leur machine a besoin de l'adresse IP de ce serveur pour établir des communications avec lui.

Les trois Identités des machines

Les machines (appelées « hôtes » dans le jargon réseau) d'un réseau TCP/IP ont plusieurs identités. Les autres équipements du réseau utilisent ces identités pour fournir des données aux bons hôtes. Les trois identités possibles sont les suivantes :

  • L'adresse MAC (Media Access Control) correspond à un numéro encodé dans le firmware de la carte réseau (également appelée NIC).
  • L’adresse IP est une numérotation attribuée par logiciel à la carte d'interface réseau.
  • Le nom d'hôte (hostname) est le nom convivial d’une machine, qui a été défini lors de l'installation de son système d'exploitation.

Ces identités permettent de trouver une machine sur un réseau ou un segment de réseau.

Screenshot montrant les informations d'identité présentes sur le réseau.
Les commandes hostname et ip addr affichent les identités reconnues par le réseau.

Parce que les identités diffèrent, il doit exister un moyen de les relier les unes aux autres. Par exemple, le protocole de résolution d'adresses relie les adresses MAC inconnues aux adresses IP connues. Cependant, le processus de résolution de noms qui relie les noms d'hôtes et les adresses IP est beaucoup plus complexe.

La résolution de noms permet à un hôte d'être reconnu par son nom d'hôte ou son adresse IP. En général, les gens sont plus à l'aise avec des noms faciles à comprendre et à décrire, tels que webserver3. Cependant, les paquets de données TCP/IP nécessitent des champs d'adresses source et destination, valeurs nécessaires aux routeurs pour diriger correctement le trafic du réseau. Ces adresses, telles que l'adresse IPv4 192.0.2.127, sont beaucoup plus difficiles à comprendre. Imaginez que les signets des navigateurs web n'affichent que des adresses IP au lieu de noms descriptifs.

Screenshot montrant les adresses IP source and destination.
La capture d'un paquet montre les adresses IP source et destination trouvées selon les hostnames.

La plupart du temps, le processus de résolution de noms consiste à relier une adresse IP inconnue à un nom d'hôte connu, comme lorsqu'un administrateur tape ping webserver3. Le ping doit être envoyé à une adresse IP, mais l'administrateur se souvient plus facilement du nom descriptif webserver3.

Screenshot montrant la résolution du nom webserver3 en adresse IP
Faire un ping sur webserver3 et voir l'adresse IP correspondante.

Le processus de résolution de noms

Lorsque tout fonctionne correctement, un système résout le nom d'hôte en coulisses. Il consulte deux ressources pour découvrir l'adresse IP nécessaire : un fichier local et un serveur de base de données DNS.

La première méthode repose sur un fichier texte nommé hosts qui se trouve sur le disque dur de la machine locale. Le fichier hosts est pertinent pour une utilisation occasionnelle, mais il est difficile de le tenir à jour. En effet, les machines vont et viennent sur le réseau local et reçoivent de nouvelles configurations d'adresses IP de la part des serveurs DHCP. Par ailleurs, les réseaux modernes peuvent comporter des centaines, voire des milliers de machines, ce qui rend le fichier difficile à maintenir. Chaque fois que le nom d'hôte ou l'adresse IP d'une machine change, le fichier hosts devrait être mis à jour sur toutes les autres machines du réseau. Cette méthode est trop lourde pour un réseau moderne.

Screenshot montrant le fichier hosts sur un système Linux
Le fichier hosts sur un système Linux, avec deux hôtes et leurs adresses IP.

La seconde méthode, plus dynamique, consiste à stocker tous les noms et adresses IP sur un ou plusieurs serveurs du réseau et à configurer les hôtes pour qu'ils interrogent ce ou ces serveurs afin de récupérer les informations nécessaires. L'implémentation moderne de cette méthode est le DNS.

Les serveurs DNS maintiennent une base de données de noms et d'adresses IP. Les systèmes clients, tels que Windows, Linux et macOS, mettent dynamiquement à jour la base de données du serveur DNS chaque fois que leur nom d'hôte ou leur adresse IP change. Cela permet de s'assurer que la base de données est à jour. Les relations entre les noms d'hôtes et les adresses IP sont stockées dans des entrées appelées enregistrements de ressources.

Screenshot d'enregistrement DNS sur Windows
Quatre renseignements A stockés dans une zone Windows DNS

Il existe de nombreux types d'enregistrements de ressources. Cet article traite des enregistrements d'adresses (A) et de pointeurs DNS (PTR) :

Screenshot montrant l'enregistrement webserver3 sur Windows.
L'enregistrement A de webserver3 est stocké dans une zone DNS Windows.

Les enregistrements A permettent la résolution du nom d'hôte en adresse IP. Ce type de requête est connu sous le nom de forward lookup.

Les enregistrements PTR permettent de passer d'une adresse IP à un nom d'hôte. Ce type de requête est connu sous le nom de reverse lookup (recherche inversée).

Lorsqu'un utilisateur saisit un nom d'hôte dans le cadre d'une commande, telle que ping webserver3, le système interroge le serveur DNS pour obtenir l'adresse IP de webserver3. L'adresse est stockée dans un enregistrement A, ce qui permet au serveur DNS de répondre avec l'adresse IP du serveur web3.

La requête DNS locale

Les systèmes d'exploitation modernes incluent un client DNS qui vérifie le fichier hosts et interroge la base de données DNS. Le DNS communique sur le réseau en utilisant le port 53. Certaines transmissions DNS sont basées sur le protocole TCP, d'autres sur le protocole UDP. Les transmissions UDP sont utilisées pour les requêtes des clients, et le TCP pour les transferts de zone entre les serveurs DNS. Les transferts de zone permettent aux serveurs DNS de se mettre à jour les uns les autres.

Il convient de noter que les pare-feu des hôtes et des réseaux doivent autoriser la communication sur le port 53/udp pour que les requêtes de résolution de noms aboutissent.

Les clients internes qui demandent des ressources internes utilisent des serveurs DNS internes. Supposons que le poste de travail d'un utilisateur doive être configuré pour se connecter à un périphérique d'impression réseau nommé salesprinter3. Le technicien qui configure le poste de travail identifie facilement salesprinter3 par son nom et utilise la fonction Windows Map Network Printer pour établir la connexion.

Ensuite, l'ordinateur client interroge automatiquement le serveur DNS pour obtenir l'adresse IP associée au nom salesprinter3. Le serveur DNS vérifie ses enregistrements de ressources et répond avec l'adresse. Le système client peut maintenant adresser correctement les paquets TCP/IP à l’imprimante en réseau. Dans cet exemple, toutes les résolutions de noms sont effectuées à l'aide de ressources internes.

Le processus est le même pour tout client TCP/IP, que leur système soit Windows, Linux ou macOS.

La requête DNS Internet

La théorie est la même pour les machines situées sur Internet, mais le processus est plus complexe. Les noms Internet sont organisés hiérarchiquement en domaines, en commençant par la racine - représentée par un seul point - suivie par les domaines de premier niveau, tels que com, edu, org, etc. Les demandes de résolution de noms passent d'une couche à l'autre jusqu'à ce que le nom soit résolu ou déterminé comme non résoluble.

Screenshot de Wireshark avec une réponse DNS.
Cette capture de paquet par Wireshark montre a une réponse DNS response à une demande de résolution de nom pour getfedora.org

Les noms Internet sont en fait des chemins d'accès d'un domaine à l'autre. Par exemple, le nom webserver3.example.com se lit à l'envers comme suit : « aller à com, trouver example, puis trouver webserver3. » Cette convention de dénomination est de type fully qualified domain name (nom de nom de domaine pleinement qualifié).

Pour approfondir sur Administration de réseaux