Menu Fermer

DNS et serveurs de noms : Comment cela fonctionne ?

Cette entrée fait partie d'une série de 7 sur 13 dans la série Internet - comment ça marche : le dossier

Les DNS (Domain Name System) est un protocole de la couche 7 du modèle OSI et une infrastructure importante d’internet.
Le fonctionnement générale n’est pas très compliqué, une fois compris.

Dans cet article, vous trouverez la description générale du fonctionnement des serveurs DNS sur internet.
Qu’est-ce que les DNS ? A quoi servent-ils ? comment changer les serveurs DNS ?

DNS et serveurs de noms : Comment cela fonctionne ?

Qu’est-ce que les DNS ou serveurs de noms

Le DNS est un protocole qui se charge d’effectuer la correspondance entre les adresses littérales et adresses IP.
Plus précisément, il assoie un nom d’hôte à une adresse IP (et inversement).
Cela permet donc de connaître l’adresse IP d’une adresse en lettre et inversement.
Par exemple, pour connaître l’adresse IP de www.malekal.com, on procède à une résolution.
D’où le nom Domain Name Service puisque c’est un service qui retourne les noms de domaines et adresse IP.

En résumé, le DNS fait correspondre un domaine à son adresse IP et inversement.

La plupart des applications, que ce soit votre navigateur internet ou jeux en ligne possèdent des adresses enregistrées.
Des interrogations ont donc lieu constamment pour récupérer l’adresse IP et permettre la connexion aux serveurs DNS.

Par défaut, la connexion internet utilise les serveurs de noms du fournisseur d’accès. Ces derniers sont attribués automatiquement par le protocole DHCP.
Schéma d'une résolution DNS

Si la résolution n’est pas possible sur un ordinateur, vous rencontrez énormément de problème de connexion.
Sur Google Chrome, cela peut se traduire par l’erreur DNS_PROBE_FINISHED_NXDOMAIN

Exemple ci-dessous d’une résolution où on récupère l’adresse IP de l’adresse www.malekal.com :

A quoi servent les DNS ?
On peut aussi associer une adresse IP à un nom d’hôte, on parle alors de DNS inversé.

Comment fonctionne la résolution DNS

Plusieurs étapes se succèdent lors d’une résolution DNS reposant sur la hiérarchie DNS.

Etape 1 – Envoyer une demande pour résoudre un nom de domaine

Lorsque vous tapez www.malekal.com dans un navigateur internet, afin de charger la page Web, votre ordinateur demande l’adresse IP. Les ordinateurs ne savent pas à l’avance où ils peuvent trouver les informations nécessaires, ils essaient donc de rechercher dans le cache DNS et toute source externe disponible.

Etape 2 – Recherchez un IP localement (cache DNS)

Pour maximiser les réponses, il existe beaucoup de cache afin de ne pas répéter les interrogations DNS.
En effet cela pourrait aussi encombrer internet ou les serveurs.

Avant d’aller en externe, votre ordinateur charge la base de données de cache DNS locale pour voir si vous avez déjà demandé l’IP pour ce nom de domaine. Chaque ordinateur a un cache temporaire avec les demandes DNS les plus récentes et tente de se connecter à des sources en ligne.

Lorsque le cache DNS dispose des données IP pour le site Web auquel vous essayez de vous connecter, la page se charge immédiatement. DNS Cache accélère ce processus de recherche car l’ordinateur contient les informations dont elle a besoin et n’a pas à transmettre la demande à votre FAI.

Sur Windows, on peut afficher le cache DNS avec la commande ipconfig depuis l’invite de commandes :

ipconfig /displaydns
ipconfig permet d'afficher les DNS

Etape 3 – Contact les serveurs DNS du FAI récursif pour résoudre un nom de domaine

La base de données de cache DNS locale d’un ordinateur ne contient pas toujours les données nécessaires pour résoudre un nom de domaine internet. Dans ce cas, la demande va plus loin à votre fournisseur de services Internet (FAI) et à son serveur DNS.

Une fois qu’il obtient une demande, le résolveur cherche dans ses enregistrements pour fournir l’adresse IP correcte. Lorsque les informations nécessaires sont présentes dans les enregistrements mis en cache du serveur DNS du FAI, l’ordinateur récupère l’IP et se connecte au site Web.
Si le serveur DNS récursif du FAI ne peut pas résoudre le nom de domaine, il contacte d’autres serveurs DNS pour vous fournir les informations. C’est pourquoi nous les appelons des serveurs DNS récursifs.
Chaque fournisseur de services Internet a au moins une configuration de serveur DNS secondaire pour garantir une grande disponibilité maximale du service.

Etape 3 – Demande aux serveurs DNS en dehors de fournir une adresse IP

Les résolveurs DNS du FAI sont configurés pour demander à d’autres serveurs DNS l’adresse IP jusqu’à ce qu’ils puissent fournir des données au demandeur. Ce sont des requêtes DNS itératives.

Lorsqu’un client DNS envoie une telle demande, le premier serveur répondant ne fournit pas l’adresse IP nécessaire. Au lieu de cela, il dirige la demande vers un autre serveur plus bas dans la hiérarchie DNS, et celui-ci à l’autre jusqu’à ce que l’adresse IP soit complètement résolue. Il y a quelques arrêts dans ce processus.

  • Les serveurs DNS racines (Root Domain Nameserver). Les serveurs racines eux-mêmes ne mappent pas les adresses IP vers les noms de domaine. Au lieu de cela, ils détiennent les informations sur tous les serveurs de noms de domaine de niveau supérieur (TLD) et pointent vers leur emplacement. TLD est la section la plus à droite d’un nom de domaine, par exemple, .com dans phoenixnap.com ou .org sur www.technology.org. Les serveurs racine sont essentiels car ils sont le premier arrêt pour toutes les demandes de recherche DNS.
  • Serveur DNS de domaine (TLD Nameserver). Ces serveurs contiennent les données pour les domaines de deuxième niveau, tels que malekal.com. Auparavant, le serveur racine montrait l’emplacement du serveur TLD. Ensuite, le serveur TLD doit diriger la demande vers le serveur qui contient les données nécessaires pour le site Web que nous essayons d’atteindre.
  • Serveur DNS d’autorité. Les serveurs faisant autorité sont la destination finale des demandes de recherche DNS. Ils remettent l’adresse IP du site Web aux serveurs DNS récursifs. Si le site a des sous-domaines, le serveur DNS local continuera d’envoyer des demandes au serveur faisant autorité jusqu’à ce qu’il résout finalement l’adresse IP.
La hiérarchie DNS : serveur DNS racine, serveur de domaine de premier niveau, serveur d'autorité, résolveur DNS du FAI

Etape 4 – Récupération de l’adresse IP

Une fois que le serveur DNS récursif du FAI obtient l’adresse IP en envoyant plusieurs requêtes DNS itératives, elle la renvoie enfin à votre ordinateur. L’enregistrement de cette demande reste maintenant mis en cache sur votre ordinateur. Le navigateur internet peut ensuite récupérer cette IP à partir du cache et la connecter au serveur du site Web.

Lorsque nous le décomposons comme ça, le processus de recherche DNS semble prendre beaucoup de temps. En fait, il faut des millisecondes, avec peut-être quelques millisecondes de plus si le dossier DNS n’est pas dans le cache local. Dans les deux cas, les utilisateurs ne peuvent pas faire la différence. Il s’agit d’une description de base du fonctionnement du DNS, et cela devrait vous donner une idée de ce qui se passe sous le capot lorsque vous parcourez ou envoyez un e-mail.

Quels sont les ports du protocole DNS ?

D’un point de vue réseau, les requêtes DNS se font sur le port 53 en UDP.
Ce protocole n’est pas chiffré et les requêtes se font en clair sur le réseau.
Il est donc tout à fait possible de voler des données à travers des attaques Attaque Man in the Middle (MITM).

Chiffrer les connexions DNS

Les clients DNS sur Windows et Linux

Les deux OS proposent des outils en ligne de commandes pour effectuer des résolutions : nslookup et dig.

L’article suivant présente ces deux outils avec les commandes les plus utiles.

Problèmes et erreurs DNS

Parfois on peut rencontrer des problèmes de résolutions DNS.
En général, des erreurs DNS s’affichent.
Pour diagnostiquer et résoudre, un article complet existe sur le site :

Sécurité des DNS (DoH, DNSSec) et attaques

Par défaut, les requêtes ne sont pas chiffrées, ni authentifiée.
Cela implique deux choses :

  • Un attaquant peut les voir et donc savoir ce que vous faites
  • Il peut aussi les manipuler

Cela à travers des attaques man in the middle.

Ainsi il existe des protocoles qui permettent de sécuriser les requêtes DNS.

  • DNS-over-TLS ou DNS-over-HTTPS — Apporte le support qui permet le chiffrement des requêtes, toutefois, celle-ci peut révéler le site que vous visitez.
  • DNSCrypt : un autre protocole qui permet de chiffrer les connexions DNS.
  • DNSSEC — Permet d’authentifier les requêtes afin de les sécuriser.
  • DNS Over HTTPS (DoH) : Il s’agit d’utiliser le protocole HTTPS pour effectuer des requêtes . On bénéficie alors des avantages de ce dernier. Mozilla Firefox le support par défaut.

Pour plus d’informations :

Mais ils ne sont encore que très peu utilisés.
Pour plus d’informations sur les aspects de sécurité, lire notre article :

DNS Menteur et Trojan DNS

Ce procédé consiste à retourner une adresse IP erronée afin de falsifier le résultat.
Cela peut permettre des redirections lors de la consultation d’un site internet par exemple.
Ces méthodes sont en général utilisées pour filtrer l’accès à des sites internet.
Plusieurs cas :

  • On l’utilise pour filtrer les publicités ou contrôle parental. Par exemple, OpenDNS l’utilise pour filtrer l’accès à un site connu pour être malveillant ou pour du filtrage de contrôle parental.
  • Un gouvernement pour filtrer l’accès à un site internet

Mais on parle souvent de menteurs pour les gouvernements.
Ces derniers forcent les fournisseurs d’accès à bloquer l’accès au site en modifiant les résultats sur les serveurs.
En France, on utilise ce procédé pour bloquer les sites terroristes.
Voici un article plus complet :

Enfin ils sont aussi une cible des logiciels malveillants qui peut permettre des redirections vers des sites publicitaires ou phishingTrojan.DNSChanger 

Comment changer la configuration des serveurs DNS

Suivez ces tutoriels pour modifier les serveurs DNS :

Naviguer dans la série<< L’établissement d’une connexion sur internetLe protocole HTTP (Hypertext Transfer Protocol) : versions et fonctionnement >>