Le DNS permet aux utilisateurs de se connecter à des sites web avec des noms de domaine, plutôt que des 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 par Cloudflare des informations les plus populaires sur Internet !
Copier le lien de l'article
Le DNS (Domain Name System) est en quelque sorte l'annuaire 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 l'intermédiaire d'adresses IP (Internet Protocol). 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 besoin de 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 utilisable par un ordinateur (par exemple, 192.168.1.1). Chaque appareil connecté à Internet reçoit une adresse IP, qui est nécessaire pour trouver l'appareil approprié sur Internet, de la même manière qu'une adresse postale permet de trouver un domicile. Lorsqu'un utilisateur souhaite charger une page web, l'adresse que saisit l'utilisateur dans son navigateur (example.com) doit être traduite en adresse utilisable par un ordinateur, indispensable pour localiser la page web correspondante.
Afin de comprendre le processus à l'œuvre derrière la résolution DNS, il est important de connaître les différents composants matériels par lesquels doit passer une requête DNS. Du point de vue du navigateur, la recherche DNS se déroule « en arrière-plan » et ne nécessite aucune interaction de l'ordinateur de l'utilisateur, à l'exception de la requête initiale.
Si les deux concepts font référence à des serveurs (ou des groupes de serveurs) faisant partie intégrante de l'infrastructure DNS, ils jouent chacun un rôle différent et ne se situent pas au même emplacement dans le pipeline d'une requête DNS. Une façon d'envisager ce qui les différencie consiste à 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 est l'ordinateur qui répond à la requête récursive d'un client et prend le temps de localiser l'enregistrement DNS. Il effectue 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 besoin d'effectuer plusieurs requêtes pour localiser 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 requêtes nécessaires en fournissant l'enregistrement de la ressource demandée plus tôt dans la recherche DNS.
En termes simples, le serveur DNS de référence désigne un serveur qui détient réellement les enregistrements de ressources DNS et est responsable de ces enregistrements. Situé tout en bas de la chaîne de recherche DNS, ce serveur répond en renvoyant l'enregistrement de la ressource recherchée, permettant ainsi 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 répondre à des requêtes avec ses propres données, sans devoir interroger une autre source, car il représente la source finale d'informations exactes pour certains enregistrements DNS.
Il est important de souligner que, dans les cas où la requête concerne un sous-domaine comme for.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 proposé par Cloudflare. Différents résolveurs DNS récursifs, comme Google DNS, OpenDNS et les fournisseurs, tels que Comcast, exploitent tous résolveurs DNS récursifs dans des datacenters. Ces résolveurs permettent le traitement rapide et facile des requêtes grâce à des systèmes informatiques optimisés pour le DNS, mais leur fonctionnement est fondamentalement différent de celui des serveurs de noms hébergés par Cloudflare.
Cloudflare gère des serveurs de noms au niveau de l'infrastructure qui sont essentiels au fonctionnement d'Internet. Le réseau de serveurs F-root, dont Cloudflare est en partie responsable de l'hébergement, en est un exemple emblématique. Le serveur F-root est l'un des composants de l'infrastructure du serveur de noms DNS de niveau racine, responsable du traitement de milliards de requêtes Internet chaque jour. Notre réseau Anycast nous place dans une position unique pour traiter d'importants volumes de trafic DNS sans interruption de service.
Dans la plupart des situations, le DNS assure la traduction d'un nom de domaine afin d'obtenir l'adresse IP correspondante. Pour comprendre le fonctionnement de cette opération, il est utile de suivre le cheminement d'une recherche DNS depuis son émission dans le navigateur web jusqu'au processus de recherche DNS, puis dans le sens inverse. Examinons les différentes étapes.
Remarque : souvent, les informations d'une recherche DNS sont mises en cache localement, dans l'ordinateur à l'origine de la requête, ou à distance, dans l'infrastructure DNS. Une recherche DNS comprend généralement 8 étapes. Lorsque les informations DNS sont mises en cache, certaines étapes du processus de recherche DNS sont omises, ce qui permet d'en accélérer le traitement. L'exemple ci-dessous décrit l'ensemble des 8 étapes lorsqu'aucune ressource n'est mise en cache.
Lorsque les 8 étapes de la recherche DNS ont renvoyé l'adresse IP d'example.com, le navigateur peut effectuer la requête correspondant à la page web :
Le résolveur DNS est la première étape du processus de recherche DNS, et est chargé de communiquer avec le client ayant effectué la requête initiale. Il lance la séquence de requêtes qui aboutit 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 implique à 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 qui est adressée à un résolveur DNS, afin de solliciter la résolution de la requête. Le résolveur DNS récursif est 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. L'utilisation conjointe de ces requêtes permet d'optimiser le processus de résolution DNS, et ainsi, de réduire la distance parcourue. Idéalement, des données d'enregistrement mises en cache sont disponibles, permettant au serveur de noms DNS de renvoyer une requête non récursive.
L'objectif de la mise en cache consiste à stocker temporairement des données dans un emplacement afin d'améliorer les performances et la fiabilité des requêtes de données. La mise en cache DNS implique de stocker des données plus près du client émettant la demande, afin d'accélérer le processus de résolution de la requête DNS et d'éviter la multiplication des requêtes plus loin dans 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 et de ressources processeur. Les données DNS peuvent être mises en cache à différents endroits, chacun conservant les enregistrements DNS pour une durée déterminée par une valeur TTL (Time-To-Live).
Les navigateurs web modernes sont conçus par défaut pour mettre en cache les enregistrements DNS pour une durée déterminée. L'objectif 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 envoyer les requêtes correctes à une adresse IP. Lorsqu'une requête est transmise pour un enregistrement DNS, le cache du navigateur est le premier emplacement vérifié pour trouver l'enregistrement demandé.
Dans Chrome, vous pouvez consulter l'état de votre cache DNS en vous rendant à l'adresse chrome://net-internals/#dns.
Le résolveur DNS au niveau du système d'exploitation est la deuxième et dernière étape locale avant qu'une requête DNS ne quitte votre ordinateur. Le processus conçu pour traiter cette requête dans votre système d'exploitation 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, afin de voir si l'enregistrement s'y trouve. Si ce n'est pas le cas, le résolveur envoie ensuite une requête DNS (avec un indicateur récursif activé) hors du réseau local, vers un résolveur récursif DNS dépendant du fournisseur d'accès Internet (FAI).
Comme pour 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 également 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 de l'offre d'autres fournisseurs de services DNS.