Qu’est ce que le DNS ? | Fonctionnement du DNS

Le DNS permet aux utilisateurs de se connecter à des sites Web à l’aide du nom de domaine plutôt que l’adresse IP. Découvrez le fonctionnement du DNS.

Share facebook icon linkedin icon twitter icon email icon

DNS

Objectifs d’apprentissage

Après avoir lu cet article, vous pourrez :

  • Définir le DNS
  • Comprendre le fonctionnement du DNS
  • Différentier les requêtes DNS récursives et itératives
  • Séparer les serveurs de noms faisant autorité des résolveurs DNS récursifs
  • Découvrir le fonctionnement de la mise en cache DNS

Qu’est ce que le DNS ?

Le DNS (Domain Name System) est le répertoire téléphonique d'Internet. Les utilisateurs humains accèdent aux informations en ligne via des noms de domaine, comme nytimes.com ou espn.com. Les navigateurs web interagissent via des adresses IP (Internet Protocol). Le DNS traduit les noms de domaine en adresses IP afin que les navigateurs puissent charger les ressources Internet.

Chaque appareil connecté à Internet possède une adresse IP unique que d'autres machines utilisent pour trouver cet appareil. Les serveurs DNS éliminent la nécessité pour les humains de mémoriser des adresses IP telles que 192.168.1.1 (en IPv4), ou des adresses IP alphanumériques récentes plus complexes telles que 2400:cb00:2048:1::c629:d7a2 (en IPv6).

DNS

Comment fonctionne le DNS ?

Le processus de résolution DNS implique la conversion d'un nom d'hôte (tel que www.example.com) en une adresse IP utilisable par la machine (telle que 192.168.1.1). Une adresse IP est donnée à chaque périphérique sur Internet, elle est nécessaire pour trouver le périphérique Internet approprié de la même manière qu'une adresse dans une rue est utilisée pour trouver un domicile. Lorsqu'un utilisateur souhaite charger une page web, une traduction doit intervenir entre l'adresse que l'utilisateur tape dans son navigateur web (exemple.com) et l'adresse utilisable par la machine, nécessaire pour localiser la page web exemple.com.

Pour bien comprendre le processus sous-jacent à la résolution DNS, il est important de connaître les différents composants matériels entre lesquels une requête DNS doit passer. Pour le navigateur web, la recherche DNS se produit « en arrière-plan » et ne nécessite aucune interaction de l'ordinateur de l'utilisateur en dehors de la demande initiale.

Quatre serveurs DNS sont impliqués dans le chargement d'une page web :

  • Récurseur DNS - Le récurseur est en quelque sorte le bibliothécaire à qui l'on demande d'aller chercher un livre particulier sur les rayons d'une bibliothèque. Le récurseur DNS est un serveur conçu pour recevoir les requêtes des ordinateurs clients via des applications telles que les navigateurs web. En règle générale, le récurseur est alors chargé de faire des demandes supplémentaires afin de satisfaire la requête DNS du client.
  • Serveur de noms racine - Le serveur racine est la première étape de la traduction (résolution) de noms d'hôtes lisibles par l'homme en adresses IP. Il peut être considéré comme une section dans une bibliothèque qui permet d'accéder à différents rayons (elle sert généralement de référence à d'autres emplacements plus spécifiques).
  • Serveur de noms TLD - Le serveur de domaine de premier niveau (TLD) peut être considéré comme un rayon spécifique dans une bibliothèque. Ce serveur de noms est la prochaine étape de la recherche d'une adresse IP spécifique. Il héberge, par ailleurs, la dernière partie d'un nom d'hôte (dans example.com, le serveur TLD est « com »).
  • Serveur de noms faisant autorité - Ce serveur de noms final peut être considéré comme un dictionnaire dans un rayon de bibliothèque, dans lequel un nom spécifique est traduit en une définition. Le serveur de noms faisant autorité est le dernier arrêt de la requête du serveur de noms. Si le serveur de noms faisant autorité a accès à l'enregistrement demandé, il renverra l'adresse IP du nom d'hôte demandé au récurseur DNS (le bibliothécaire) qui a effectué la requête initiale.

Quelle est la différence entre un serveur DNS faisant autorité et un résolveur DNS récursif ?

Les deux concepts font référence à des serveurs (groupes de serveurs) qui font partie intégrante de l'infrastructure DNS, mais chacun remplit un rôle différent et vit à différents emplacements à l'intérieur du pipeline d'une requête DNS. La différence essentielle est que le résolveur récursif se trouve au début de la requête DNS et le serveur de noms faisant autorité à la fin.

Résolveur DNS récursif

Le résolveur récursif est l'ordinateur qui répond à une requête récursive d'un client et prend le temps de retrouver l'enregistrement DNS. Pour ce faire, il effectue une série de requêtes jusqu'à ce qu'il atteigne le serveur de noms DNS faisant autorité pour l'enregistrement demandé (ou expire ou renvoie une erreur si aucun enregistrement n'est trouvé). Heureusement, les résolveurs DNS récursifs n'ont pas toujours besoin de faire plusieurs requêtes pour retrouver les enregistrements nécessaires pour répondre à un client. La mise en cache est un processus de persistance des données qui permet de court-circuiter les demandes nécessaires en servant un enregistrement de la ressource demandée plus tôt dans la recherche DNS.

DNS query diagram

Serveur DNS faisant autorité

En clair, un serveur DNS faisant autorité est un serveur qui détient réellement des enregistrements de ressources DNS et qui en est responsable. Il s'agit du serveur situé en bas de la chaîne de recherche DNS qui répondra avec l'enregistrement de la ressource recherchée, en permettant finalement au navigateur web effectuant la requête d'atteindre l'adresse IP nécessaire pour accéder à un site web ou à d'autres ressources web. Un serveur de noms faisant autorité peut satisfaire les requêtes à partir de ses propres données sans avoir à interroger une autre source, car il s'agit de la source de vérité finale pour certains enregistrements DNS.

DNS query diagram

Il convient de mentionner que lorsque la requête concerne un sous-domaine tel que foo.example.com ou blog.cloudflare.com , un serveur de noms supplémentaire sera ajouté à la séquence après le serveur de noms faisant autorité, qui est chargé de stocker l'enregistrement CNAME du sous-domaine.

DNS query diagram

Il existe une différence essentielle entre de nombreux services DNS et le service DNS fourni par Cloudflare. Différents résolveurs récursifs DNS tels que Google DNS, OpenDNS et des fournisseurs comme Comcast maintiennent tous des datacenters de résolveurs récursifs DNS. Ces résolveurs permettent des requêtes rapides et faciles via des clusters optimisés d'ordinateurs optimisés DNS, mais ils sont fondamentalement différents des serveurs de noms hébergés par Cloudflare.

Cloudflare gère des serveurs de noms au niveau de l'infrastructure qui font partie intégrante du fonctionnement d'Internet. Un bon exemple est le serveur réseau f-root dont Cloudflare assure en partie l'hébergement. La racine F est l'un des composants de l'infrastructure de serveurs de noms DNS de niveau racine responsable de milliards de requêtes Internet par jour. Notre réseau Anycast nous offre une position unique pour gérer de gros volumes de trafic DNS sans interruption de service.

Quelles sont les étapes d'une recherche DNS ?

Dans la plupart des situations, le DNS se préoccupe de la traduction d'un nom de domaine en une adresse IP appropriée. Pour savoir comment ce processus fonctionne, il est utile de suivre le chemin d'une recherche DNS lorsqu'elle quitte un navigateur web, passe par le processus de recherche DNS, et revient. Jetons un coup d'œil aux étapes.

Remarque : les informations de recherche DNS sont souvent mises en cache localement à l'intérieur de l'ordinateur interrogateur ou à distance dans l'infrastructure DNS. Il y a généralement 8 étapes dans une recherche DNS. Lorsque les informations DNS sont mises en cache, les étapes sont ignorées du processus de recherche DNS, ce qui les rend plus rapides. L'exemple ci-dessous décrit les 8 étapes lorsque rien n'est mis en cache.

Les 8 étapes d’une recherche DNS :

  1. Un utilisateur tape « exemple.com » dans un navigateur web. La requête est acheminée via Internet et reçue par un résolveur DNS récursif.
  2. Le résolveur interroge ensuite un serveur de noms racine DNS (.).
  3. Le serveur racine répond ensuite au résolveur avec l'adresse d'un serveur DNS de domaine de premier niveau (TLD) (tel que .com ou .net), qui stocke les informations de ses domaines. Lorsque vous recherchez example.com, la demande est dirigée vers le TLD .com.
  4. Puis, le résolveur fait une demande au TLD .com.
  5. Le serveur TLD répond avec l’adresse IP du serveur de noms de domaine, exemple.com
  6. Enfin, le résolveur récursif envoie une requête au serveur de noms de domaine.
  7. L’adresse IP du site exemple.com est ensuite renvoyée depuis le serveur de noms vers le résolveur.
  8. Le résolveur DNS répond alors au navigateur web avec l’adresse IP du domaine initialement demandé.

  9. Une fois que les 8 étapes de la recherche DNS ont renvoyé l’adresse IP de exemple.com, le navigateur peut lancer la requête pour la page web :

  10. Le navigateur fait une requête HTTP à l'adresse IP.
  11. À cette adresse IP, le serveur renvoie la page web à afficher dans le navigateur (étape 10).
DNS query diagram

Qu'est-ce qu'un résolveur DNS ?

Le résolveur DNS est le premier arrêt de la recherche DNS. Il est chargé de traiter avec le client qui a effectué la requête initiale. Le résolveur démarre la séquence de requêtes qui conduit finalement à la traduction d'une URL en l'adresse IP nécessaire.

Remarque : une recherche DNS non mise en cache typique impliquera à la fois des requêtes récursives et itératives.

Il est important de faire la différence entre une requête DNS récursiveet un résolveur DNS récursif. La requête fait référence à la demande adressée à un résolveur DNS nécessitant la résolution de la requête. Un résolveur récursif DNS est l'ordinateur qui accepte une requête récursive et traite la réponse en effectuant les demandes nécessaires.

DNS query diagram

Quels sont les types de requêtes DNS ?

Dans une recherche DNS typique, trois types de requêtes se produisent. En utilisant une combinaison de ces requêtes, un processus optimisé pour la résolution DNS peut entraîner une réduction de la distance parcourue. Dans une situation idéale, des données d'enregistrement mises en cache seront disponibles et permettront à un serveur de noms DNS de renvoyer une requête non récursive.

3 types de requêtes DNS :

  1. Requête récursive - Dans une requête récursive, un client DNS demande à un serveur DNS (généralement un résolveur DNS récursif) de répondre au client soit avec l’enregistrement de la ressource demandé, soit avec un message d’erreur s’il ne trouve pas l’enregistrement.

  2. Requête itérative - Dans cette situation, le client DNS permettra à un serveur DNS de renvoyer la meilleure réponse possible. Si le serveur DNS interrogé n'a pas de correspondance pour le nom de la requête, il renverra une référence à un serveur DNS faisant autorité pour un niveau inférieur de l'espace de noms de domaine. Le client DNS fera alors une requête à l'adresse de référence. Ce processus se poursuit avec des serveurs DNS supplémentaires en aval de la chaîne de requête jusqu'à ce qu'une erreur ou un délai d'expiration se produise.

  3. Requête non récursive - Cette requête se produit généralement lorsqu'un client résolveur DNS interroge un serveur DNS pour un enregistrement auquel il a accès, soit parce qu'il fait autorité pour l'enregistrement, soit que l'enregistrement existe à l'intérieur de son cache. En règle générale, un serveur DNS mettra en cache les enregistrements DNS pour éviter la consommation de bande passante supplémentaire et la charge sur les serveurs en amont.

Qu'est-ce que la mise en cache DNS? Où se produit la mise en cache DNS ?

Le but de la mise en cache est de stocker temporairement des données dans un emplacement qui améliore les performances et la fiabilité des demandes de données. La mise en cache DNS implique de stocker les données plus près du client demandeur afin que la requête DNS puisse être résolue plus tôt et éviter des requêtes supplémentaires plus bas dans la chaîne de recherche DNS, ce qui améliore les temps de chargement et réduit la bande passante/la consommation processeur. Les données DNS peuvent être mises en cache dans différents emplacements, chacun d'entre eux stockant les enregistrements DNS pendant une durée définie déterminée par un Time to Live (TTL).

Mise en cache DNS du navigateur

Les navigateurs web modernes sont conçus par défaut pour mettre en cache les enregistrements DNS pendant une durée définie. Le but ici est évident. Plus la mise en cache DNS est proche du navigateur web, moins il y aura d'étapes de traitement à effectuer pour vérifier le cache et envoyer les requêtes correctes à une adresse IP. Lorsqu'une requête est faite pour un enregistrement DNS, le cache du navigateur est le premier emplacement vérifié pour l'enregistrement demandé.

Dans Chrome, vous pouvez consulter l’état de votre cache DNS en accédant à chrome://net-internals/#dns.

Mise en cache DNS au niveau du système d'exploitation (OS)

Le résolveur DNS au niveau du système d'exploitation est le deuxième et dernier arrêt local avant qu'une requête DNS ne quitte votre ordinateur. Le processus à l'intérieur de votre système d'exploitation conçu pour gérer cette requête est communément appelé « résolveur stub » ou client DNS. Lorsqu'un résolveur stub reçoit une requête d'une application, il vérifie d'abord son propre cache pour voir s'il a l'enregistrement. S'il ne l'a pas, il envoie ensuite une requête DNS (avec un indicateur récursif activé), en dehors du réseau local, à un résolveur récursif DNS qui dépend du fournisseur d'accès Internet (FAI).

Lorsqu’un résolveur récursif qui dépend d’un FAI reçoit une requête DNS, comme dans toutes les étapes précédentes, il vérifie également si la traduction de l’adresse hôte à IP demandée est déjà stockée dans sa couche de persistance locale.

Le résolveur récursif est également doté de fonctionnalités supplémentaires selon le type d’enregistrements présents dans son cache :

  1. Si le résolveur n'a pas les enregistrements A, mais a bien les enregistrements NS pour les serveurs de noms faisant autorité, il interrogera ces serveurs de noms directement, en contournant plusieurs étapes de la requête DNS. Ce raccourci empêche les recherches à partir des serveurs de noms racine et .com (dans notre recherche de 'exemple.com') et aide à résoudre la requête DNS plus rapidement.
  2. Si le résolveur ne contient pas d’enregistrements NS, il envoie une requête aux serveurs TLD (.com dans le cas présent), en contournant le serveur racine.
  3. Dans le cas peu probable où le résolveur n'a pas d'enregistrements pointant vers les serveurs TLD, il interroge alors les serveurs racine. Cet événement se produit généralement après qu'un cache DNS a été purgé.

Découvrez ce qui différencie Cloudflare DNS des autres fournisseur de service DNS.