Chapitre 6.14Le DNS

L'annuaire d'Internet.

3 minutes de lecture

Le DNS, pour Domain Name System, c'est l'annuaire d'Internet. Son travail consiste à traduire un nom de domaine lisible par un humain en une adresse IP exploitable par une machine. Reprenons notre exemple, blog.le-guide.tech, et ses trois étages.

  • tech : domaine de premier niveau (Top Level Domain, TLD), avec son registre et ses serveurs à lui.
  • le-guide : domaine de second niveau (Second Level Domain, SLD).
  • blog : sous-domaine.

Cette découpe n'est pas décorative, elle correspond exactement au chemin que va suivre la recherche.

Une résolution en cascade

Le DNS ne repose pas sur un annuaire unique. Aucune machine au monde ne connaît la totalité des noms de domaine. C'est un processus en cascade qui interroge plusieurs annuaires jusqu'à tomber sur la réponse définitive.

  1. Lors de ta connexion à Internet, ton FAI t'a fourni l'adresse de son serveur DNS, son annuaire à lui. Quand tu tapes blog.le-guide.tech dans ton navigateur, celui-ci envoie une requête à ce serveur, qu'on appelle un résolveur. Comme le-guide.tech est le meilleur guide 😎, ton FAI a probablement déjà la réponse en cache et peut la retourner immédiatement.
  2. Sinon, le résolveur interroge un serveur DNS racine. Il existe treize adresses racine, dupliquées sur plus d'un millier de machines réparties dans le monde entier pour assurer la disponibilité du réseau. Le serveur racine ne connaît pas ton site, mais il sait qui gère le .tech.
  3. Le résolveur interroge donc les serveurs du TLD, qui lui répondent à leur tour par une délégation. Ils ne connaissent pas le contenu de le-guide.tech, mais ils savent quels serveurs font autorité dessus.
  4. Une dernière requête, cette fois vers ces serveurs autoritaires, donne enfin l'adresse IP de blog.le-guide.tech.
  5. Le résolveur retourne l'information à ton navigateur, et la garde en mémoire pour les prochains visiteurs.
  6. C'est seulement après tout ça que ton navigateur peut envoyer une requête vers le serveur web pour afficher le site 🤯. Ça explique pourquoi ta première visite sur un nouveau site met souvent un peu plus de temps à démarrer. Le chapitre sur le cache détaille les mécanismes qui permettent d'accélérer tout ça.

En pratique, cette cascade complète est rare. Ton navigateur, ton système d'exploitation, ta box et le résolveur de ton FAI gardent tous une copie des réponses récentes. Pour un site populaire, la réponse sort d'un cache dans l'immense majorité des cas, en quelques millisecondes.

Les enregistrements DNS

Une zone DNS, c'est la liste des enregistrements associés à ton domaine. Chacun a un type qui indique ce qu'il déclare. Voici ceux que tu croiseras dans l'interface de ton hébergeur.

  • A : associe un nom à une adresse IPv4. C'est l'enregistrement de base.
  • AAAA : la même chose en IPv6.
  • CNAME : déclare qu'un nom est un alias vers un autre nom. Très utilisé pour pointer vers un service externe, par exemple boutique.mon-site.com vers la plateforme e-commerce qui héberge réellement la boutique.
  • MX : indique quels serveurs reçoivent les mails du domaine. Ce sera le sujet du chapitre email et nom de domaine.
  • TXT : du texte libre. En pratique il sert surtout à prouver que tu es bien propriétaire du domaine, et à porter les réglages antispam SPF, DKIM et DMARC.
  • NS : désigne les serveurs qui font autorité sur la zone. C'est lui qu'on modifie quand on change d'hébergeur DNS.

Exemple :

Tu lances une campagne marketing et tu veux une page dédiée sur promo.mon-site.com, hébergée chez un outil externe de landing pages. L'outil te demande de créer un CNAME de promo.mon-site.com vers clients.outil-marketing.com. Aucun code à écrire, aucun serveur à configurer, une ligne dans ta zone DNS et l'affaire est jouée.

Le TTL et la propagation

Chaque enregistrement porte un TTL (Time To Live), une durée en secondes qui dit aux résolveurs combien de temps ils ont le droit de garder la réponse en cache. Un TTL de 3600 signifie qu'un résolveur qui a interrogé ta zone pourra servir la même réponse pendant une heure sans rien revérifier.

C'est de là que vient la fameuse "propagation DNS". Quand tu changes l'adresse IP de ton site, le changement n'est pas instantané pour tout le monde. Rien ne se propage réellement, ce sont simplement les caches existants qui expirent les uns après les autres, chacun à son rythme. On parle souvent de vingt-quatre à quarante-huit heures, par prudence.

Le réflexe des pros avant une migration, c'est de baisser le TTL à 300 secondes plusieurs jours à l'avance. Le jour J, le basculement se fait en cinq minutes au lieu de deux jours. Une fois la migration validée, on remonte le TTL. Oublier cette étape, c'est se condamner à voir la moitié de ses visiteurs sur l'ancien serveur pendant tout un week-end.

Quand le DNS tombe

Le DNS est un point de défaillance sous-estimé. Si tes serveurs de noms deviennent injoignables, ton site est parfaitement en ligne mais plus personne ne sait le trouver. En 2016, une attaque par déni de service massive contre l'hébergeur DNS Dyn a rendu Twitter, Spotify, GitHub et beaucoup d'autres inaccessibles pendant des heures, sans qu'aucun de ces sites n'ait le moindre problème.

Ce rôle central en fait aussi une cible. Le DNS a été conçu à une époque où l'on ne se méfiait de personne, et une réponse falsifiée peut envoyer tes visiteurs vers un serveur pirate en toute discrétion. Deux réponses existent. DNSSEC signe cryptographiquement les réponses pour garantir qu'elles n'ont pas été trafiquées, et DoH ou DoT chiffrent la requête elle-même pour que ton FAI ne puisse plus lire la liste des sites que tu consultes. Le chapitre suivant revient sur ces DNS alternatifs.

PrécédentLa programmation objet Tous les chapitres