Le DNS permet aux utilisateurs de se connecter à des sites web en utilisant des noms de domaine au lieu d'adresses IP. Découvrez le fonctionnement du DNS.
Cet article s'articule autour des points suivants :
Contenu associé
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
Le DNS (Domain Name System, système de nom de domaine) est en quelque sorte le répertoire téléphonique d'Internet. Les internautes accèdent aux informations en ligne via des noms de domaine (par exemple, nytimes.com ou espn.com), tandis que les navigateurs interagissent par le biais d'adresses IP (Internet Protocol, protocole Internet). Le DNS traduit les noms de domaine en adresses IP afin que les navigateurs puissent charger les ressources web.
Chaque appareil connecté à Internet dispose d'une adresse IP unique que les autres appareils utilisent afin de le trouver. Grâce aux serveurs DNS, les internautes n'ont pas à mémoriser les adresses IP (par exemple, 192.168.1.1 en IPv4) ni les adresses IP alphanumériques plus récentes et plus complexes (par exemple, 2400:cb00:2048:1::c629:d7a2 en IPv6).
Le processus de résolution DNS implique la conversion d'un nom d'hôte (par exemple, www.example.com) en adresse IP « au format informatique » (par exemple, 192.168.1.1). Chaque appareil relié à Internet se voit attribuer une telle adresse. Cette dernière permet de trouver l'appareil approprié sur Internet, de la même manière qu'une adresse dans une rue permet de trouver un domicile. Lorsqu'un utilisateur souhaite charger une page web, une traduction doit intervenir entre l'adresse que l'utilisateur saisit dans son navigateur (example.com) et l'adresse utilisable par la machine, nécessaire pour localiser la page web example.com.
Afin de comprendre le processus à l'œuvre derrière la résolution DNS, il est important de connaitre les différents composants physiques par lesquels une requête DNS doit passer. Du point de vue du navigateur, la recherche DNS s'effectue « en arrière-plan » et ne nécessite aucune interaction de l'ordinateur de l'utilisateur en dehors de la requête initiale.
Si les deux concepts font référence à des serveurs (groupe de serveurs) faisant partie intégrante de l'infrastructure DNS, ils présentent chacun un rôle différent et ne se situent pas au même emplacement dans le pipeline d'une requête DNS. Pour comprendre la différence entre les deux, il suffit de se souvenir que le résolveur récursif se trouve au début de la requête DNS et le serveur de noms de référence à la fin.
Le résolveur récursif désigne l'ordinateur qui répond à la requête récursive d'un client et prend le temps de suivre l'enregistrement DNS. Il lance pour cela une série de requêtes jusqu'à atteindre le serveur de noms DNS de référence pour l'enregistrement demandé (la requête expire ou renvoie une erreur si aucun enregistrement n'est trouvé). Heureusement, les résolveurs DNS récursifs n'ont pas toujours à effectuer plusieurs requêtes pour rechercher les enregistrements permettant de répondre à un client. En tant que processus de persistance des données, la mise en cache permet de court-circuiter les requêtes nécessaires en fournissant l'enregistrement de la ressource demandée plus tôt au sein de la recherche DNS.
En clair, le terme serveur DNS de référence désigne un serveur détenant réellement les enregistrements de ressources DNS et responsable de ces derniers. Situé tout en bas de la chaîne de recherche DNS, ce serveur répond en renvoyant l'enregistrement de la ressource recherchée. Ce faisant, il permet 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 de référence peut satisfaire les requêtes à partir de ses propres données sans avoir à interroger une autre source, car il s'agit de la source unique de vérité pour certains enregistrements DNS.
Il convient de mentionner que dans les cas où la requête porte sur un sous-domaine, comme foo.example.com ou blog.cloudflare.com, un serveur de noms supplémentaire sera ajouté à la séquence après le serveur de noms de référence responsable du stockage de l'enregistrement CNAME du sous-domaine.
Il existe une différence cruciale entre de nombreux services DNS et celui fourni par Cloudflare. Les différents résolveurs DNS récursifs, comme Google DNS, OpenDNS et les fournisseurs tels que Comcast, entretiennent tous des datacenters de résolveurs DNS récursifs. Ces résolveurs permettent d'effectuer des requêtes rapides et faciles grâce à des clusters optimisés d'ordinateurs orientés DNS, mais leur fonctionnement est fondamentalement différent de celui des serveurs de noms hébergés par Cloudflare.
Cloudflare maintient des serveurs de noms au niveau de l'infrastructure faisant intégrante du fonctionnement d'Internet. Le réseau de serveurs F-root (que Cloudflare est partiellement chargé d'héberger) en est un exemple emblématique. Le serveur F-root constitue l'un des composants de l'infrastructure du serveur de noms DNS au niveau racine. Il est responsable de milliards de requêtes Internet chaque jour. Notre réseau Anycast nous place dans une position unique pour gérer de gros volumes de trafic DNS sans interruption de service.
Dans la plupart des situations, le DNS se charge de la traduction d'un nom de domaine afin d'aboutir à l'adresse IP appropriée. Pour comprendre le fonctionnement de cette opération, il peut s'avérer utile de suivre le parcours d'une recherche DNS, depuis son émission dans le navigateur web jusqu'à son traitement par le processus de recherche DNS lui-même, avant de revenir à son origine dans le sens inverse. Examinons les différentes étapes.
Remarque : les informations d'une recherche DNS sont souvent mises en cache localement, dans l'ordinateur à l'origine de la requête ou à distance au sein de l'infrastructure DNS. Une recherche DNS se compose généralement de 8 étapes. Lorsque les informations DNS sont mises en cache, le processus de recherche DNS ignore certaines étapes, accélérant d'autant son traitement. L'exemple ci-dessous décrit l'ensemble des 8 étapes en l'absence d'informations mises en cache.
Une fois que les 8 étapes de la recherche DNS ont renvoyé l'adresse IP d'example.com, le navigateur peut émettre la requête à la page web :
Chargé de communiquer avec le client à l'origine de la requête initiale, le résolveur DNS constitue le premier arrêt lors du processus de recherche DNS. Il démarre la séquence de requêtes qui conduira finalement à la traduction de l'URL afin d'obtenir l'adresse IP requise.
Remarque : en règle générale, une recherche DNS non mise en cache impliquera à la fois des requêtes récursives et itératives.
Il est important de comprendre la différence entre une requête DNS récursive et un résolveur DNS récursif. La requête désigne la demande adressée à un résolveur DNS afin de solliciter la résolution de cette dernière. Le résolveur DNS récursif se rapporte à l'ordinateur qui accepte une requête récursive et traite la réponse en effectuant les requêtes nécessaires.
Une recherche DNS typique génère trois types de requêtes. Grâce à l'utilisation conjointe de ces dernières, l'optimisation du processus de résolution DNS peut déboucher sur une réduction de la distance parcourue. Idéalement, le processus peut disposer de données d'enregistrement mises en cache afin de permettre au serveur de noms DNS de renvoyer une requête non récursive.
L'objectif de la mise en cache consiste à stocker de manière temporaire les données à un emplacement afin d'améliorer les performances et la fiabilité des requêtes de données. La mise en cache DNS implique le stockage des données plus près du client demandeur afin d'accélérer le processus de résolution DNS et d'éviter les requêtes supplémentaires au sein de la chaîne de recherche DNS. Cette opération permet ainsi d'améliorer les temps de chargement et de réduire la consommation de bande passante/ressources processeur. Les données DNS peuvent être mises en cache à divers endroits, chacun stockant des enregistrements DNS pendant un laps de temps déterminé par une TTL (Time-To-Live, durée de vie).
Les navigateurs web modernes sont conçus par défaut pour mettre en cache les enregistrements DNS pendant une durée définie. L'objectif de l'opération est évident : plus la mise en cache DNS est réalisée à proximité du navigateur web, moins d'étapes de traitement seront nécessaires pour vérifier le cache et effectuer les requêtes correctes à une adresse IP donnée. Lorsqu'une requête d'enregistrement DNS est émise, le cache du navigateur constitue ainsi le premier emplacement à être vérifié pour trouver l'enregistrement demandé.
Dans Chrome, vous pouvez consulter l'état de votre cache DNS en vous rendant à l'adresse suivante : chrome://net-internals/#dns.
Le résolveur DNS au niveau du système d'exploitation constitue le deuxième et dernier arrêt au niveau local avant qu'une requête DNS ne quitte votre ordinateur. Le processus conçu pour traiter cette requête au sein de votre système d'exploitation est communément désigné sous le terme de « résolveur stub » ou de 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 si l'enregistrement s'y trouve. Si ce dernier n'y figure pas, le résolveur envoie ensuite une requête DNS (avec un indicateur récursif activé) à l'extérieur du réseau local, vers un résolveur récursif DNS dépendant du fournisseur d'accès Internet (FAI).
Comme à toutes les étapes précédentes, lorsqu'un résolveur récursif dépendant d'un FAI reçoit une requête DNS, il vérifie de même si la traduction de l'« adresse hôte en adresse IP » demandée est déjà stockée dans sa couche de persistance locale.
Le résolveur récursif dispose également de fonctionnalités supplémentaires selon le type d'enregistrements présents dans son cache :
Découvrez ce qui différencie le service Cloudflare DNS des autres fournisseurs de service DNS.