Qu’est-ce que le protocole DNS?

Go to the profile of  Ben Dover
Ben Dover
6 minutes à lire
Qu’est-ce que le protocole DNS?

Le protocole Domain Network System (DNS) aide les utilisateurs d’Internet et les dispositifs réseau à découvrir des sites Web utilisant des noms d’hôte lisibles par l’homme, au lieu d’adresses IP numériques.

En simplifiant le processus DNS, voici comment il  fonctionne:

  1. Un navigateur, une application ou un périphérique appelé client DNS émet une requête DNS ou une recherche d’adresse DNS, fournissant un nom d’hôte comme « coeur-digital.com ».
  2. La demande est reçue par un résolveur DNS, qui est responsable de trouver l’adresse IP correcte pour ce nom d’hôte. Le résolveur DNS recherche un serveur de noms DNS qui détient l’adresse IP du nom d’hôte dans la requête DNS.
  3. Le résolveur commence à partir du serveur DNS racine d’Internet, en descendant la hiérarchie vers les serveurs DNS de domaine supérieur (TLD) (« .com » dans ce cas), jusqu’au serveur de noms responsable du domaine spécifique « coeur-digital.com ».
  4. Lorsque le résolveur atteint le serveur de noms DNS faisant autorité pour « coeur-digital.com », il reçoit l’adresse IP et d’autres détails pertinents et le retourne au client DNS. La requête DNS est maintenant résolue. \0/

Un peu d'histoire des DNS

L’idée  de cartographier les hostnames lisibles par l’homme aux adresses  numériques a vu le jour dans les années 1970, avec ARPANET, le  prédécesseur de l’internet moderne. Le  Stanford Research Institute (SRI) était responsable de la gestion d’un  fichier texte appelé hosts.txt qui mappait les noms d’hôtes aux adresses  informatiques sur ARPANET. Pour ajouter une entrée au fichier des  hôtes, les utilisateurs appellent le personnel de l’ISR pendant les  heures de bureau, et ils ajoutent l’hôte et son adresse numérique  associée manuellement au fichier.

Dans les années 1980, il était entendu qu’un fichier hôte centralisé et mis à jour manuellement n’était pas une approche évolutive. John Postel, de l’Université de Californie du Sud, dont l’équipe était responsable de la liste des numéros attribués par l’ARPANET, a confié la tâche de créer un système automatisé de désignation à Paul Mockapetris. Mockapetris était censé trouver un compromis entre cinq solutions techniques concurrentes, mais il a créé sa propre solution, le système de noms de domaine.

En 1984, quatre étudiants de l’UC Berkeley ont écrit la première implémentation de serveur de noms DNS pour Unix, et l’ont nommée BIND. Dans les années 1990 BIND a été porté à Windows NT. À ce jour, il est le logiciel DNS le plus largement utilisé au monde.

En 1987, le DNS a été formalisé dans la RFC 1035.

Les spécification du protocole DNS

Le  Domain Namespace

L’espace de noms DNS régit les noms d’hôtes publics utilisés sur Internet. L’espace de noms est une arborescence, chaque noeud de l’arborescence ayant une étiquette textuelle et zéro ou plusieurs enregistrements de ressources DNS (RR) décrivant le domaine.

Le nom de domaine se compose de l’étiquette, ainsi que de l’étiquette de ses nœuds parents, séparés par un point (comme dans « coeur-digital.com »). L’espace de noms de domaine est divisé en zones, et chaque zone est déléguée à une entité spécifique pour l’administration et la gestion.

Syntaxe et format des noms de domaine

Un nom de domaine se compose d’une ou plusieurs parties appelées étiquettes, qui sont séparées par des points. Une étiquette peut contenir jusqu’à 63 caractères. L’étiquette à l’extrême droite est le domaine de premier niveau (TLD), et les étiquettes suivantes de droite à gauche sont plus bas dans la hiérarchie des espaces de noms. Chaque étiquette est connue comme un sous-domaine de l’étiquette ci-dessus. DNS permet jusqu’à 127 niveaux hiérarchiques.

Par exemple, « forum.support.coeur-digital.com » représente un sous-domaine « forum » sous le sous-domaine « support », sous le domaine « coeur-digital », sous le domaine de premier niveau « .com ».

Architecture du résolveur DNS et du serveur de noms
Il existe deux composants clés qui résolvent les requêtes DNS par les clients : un résolveur DNS et un serveur de noms DNS.

Résolveur DNS

Aussi appelé résolveur récursif, il s’agit d’un serveur conçu pour recevoir des requêtes DNS de navigateurs web et d’autres applications ou dispositifs réseau. Il reçoit un nom d’hôte et est responsable du suivi de l’adresse IP de ce nom d’hôte :

  1. Le résolveur recherche l’enregistrement de ressource DNS requis dans son cache local ou celui du système d’exploitation sur le périphérique local.
  2. S’il n’est pas trouvé, il recherche une référence directe au serveur de noms faisant autorité de la zone DNS du domaine.
  3. À défaut, il effectue une requête récursive - le résolveur contacte un serveur racine DNS et reçoit les détails d’un serveur de noms TLD pour le TLD pertinent, par ex. “.com”.
  4. Via le serveur de noms TLD, il reçoit les détails du serveur de noms faisant autorité et lui demande l’adresse IP qui correspond au nom d’hôte demandé.

En réalité, les résolveurs ne passent pas par tout ce processus pour chaque requête récursive, car une partie du parcours, y compris les adresses de serveur DNS, peut déjà être stockée dans le cache local.

Serveur de noms faisant autorité

Le serveur de noms faisant autorité est le dernier arrêt d’une requête DNS. Il détient le fichier maître DNS pour la zone DNS qu’il gère, qui contient les enregistrements de ressources fiables et correctes pour tous les domaines de la zone.

Dans certains cas, le serveur de noms faisant autorité achemine le résolveur DNS vers un autre serveur de noms qui contient des enregistrements spécifiques pour un sous-domaine, par exemple, support.coeur-digital.com. Si un enregistrement CNAME ou ALIAS est utilisé, le serveur de noms redirige le résolveur DNS vers un autre nom d’hôte, pour lequel le nom d’hôte demandé est un alias, et le processus de résolution DNS recommence.

Les formats de message DNS

La communication DNS se produit via deux types de messages : les requêtes et les réponses. Le format de requête DNS et le format de réponse se composent des sections suivantes :

  1. La section de l’en-tête contient l’identification, les indicateurs, le nombre de questions, le nombre de réponses, le nombre d’enregistrements de ressources d’autorité (RR) et le nombre d’enregistrements de ressources supplémentaires.
  2. Le champ flag "Drapeau" contient des sections d’un ou quatre bits, indiquant le type de message, si le serveur de noms fait autorité, si la requête est récursive ou non, si la requête a été tronquée, et l’état.
  3. La section des questions contient le nom de domaine et le type d’enregistrement (A, AAAA, MX, TXT, etc.) en cours de résolution. Chaque étiquette du nom de domaine est préfixée par sa longueur.
  4. La section des réponses contient les dossiers de ressources du nom demandé.

Le Protocole de Transport DNS

Les DNS utilisent le protocole de datagramme utilisateur (UDP) sur le port 53 pour servir les requêtes DNS. UDP est préféré parce qu’il est rapide et a peu de traffic en général. Une requête DNS est une requête UDP unique du client DNS suivie d’une réponse UDP unique du serveur.

Si une réponse DNS est supérieure à 512 octets, ou si un serveur DNS gère des tâches comme les transferts de zone (transfert d’enregistrements DNS du serveur DNS primaire au serveur DNS secondaire), le protocole de contrôle de transmission (TCP) est utilisé à la place de l’UDP, pour permettre des vérifications de l’intégrité des données.

Fichiers maîtres DNS (fichiers de zone)

Un fichier maître DNS est un fichier texte stocké sur un serveur de noms DNS, qui définit les informations DNS pour une zone DNS unique. Le fichier contient les données suivantes :

  1. Global Time to Live (TTL) - combien de temps les enregistrements doivent être conservés dans le cache DNS local.
  2. Enregistrement du début de l’autorité (COC) – serveur de noms principal faisant autorité pour la zone.
  3. Un ou plusieurs enregistrements de ressources - voir plus de détails ci-dessous.

Enregistrements de ressources DNS

Les enregistrements de ressources sont utilisés pour stocker des noms d’hôtes, des adresses IP et d’autres informations dans des serveurs de noms DNS. Un enregistrement est composé des champs suivants :

Name Ttl Record class Record type Record data

  1. Le nom est un identificateur alphanumérique de l’enregistrement DNS
    TTL (durée de vie) spécifie la durée de conservation de l’enregistrement dans le cache local
  2. La classe d’enregistrement indique l’espace de noms – généralement IN, l’espace de noms Internet
  3. Le type d’enregistrement est le type d’enregistrement DNS, par exemple un A, un CNAME, un MX
  4. Les données d’enregistrement contiennent les valeurs DNS, par exemple l’adresse IP d’un nom d’hôte

Les types d’enregistrement DNS les plus courants pris en charge par le protocole DNS :

  1. Enregistrement de serveur de noms (NS) : spécifie le serveur de noms faisant autorité pour une zone DNS
  2. Ipv4 Address Mapping records (A)—un nom d’hôte et son adresse Ipv4
  3. Ipv6 Address records (AAAA) – un nom d’hôte et son adresse Ipv6
  4. Mail eXchanger record (MX) : spécifie un serveur de messagerie SMTP pour le domaine

GO TOP