Le DNS invisible : comment ton navigateur se repère sur le web
L'art invisible du DNS : comment ton navigateur trouve le bon serveur
Chaque fois que tu tapes un domaine dans ton navigateur, un petit prodige se produit. Il convertit ce nom lisible en IP, localise le serveur exact sur la planète et t'y connecte en un clin d'œil. Ce prodige, c'est le DNS, le Domain Name System. Bien plus malin que ce que la plupart des devs imaginent.
Inventé en 1983 par Paul Mockapetris, à l'époque des modems lents et d'un web naissant. Son but : un système rapide, qui grandit sans limite et résiste aux pannes sur un réseau distribué bancal. Quarante ans après, ça roule toujours nickel. Voyons pourquoi.
Le secret de la vitesse : UDP avant TCP
La première astuce est basique : le DNS utilise UDP par défaut, pas TCP.
TCP demande un handshake en trois étapes avant même d'envoyer la requête. Si chaque lookup DNS passait par là, le web patinerait grave. Un seul chargement de page déclenche des dizaines de lookups. Multiplie les allers-retours : c'est la latence partout.
UDP évite ça. Ton client balance un paquet sur le port 53 avec la question. Le serveur répond d'un seul paquet. Point final. Pas de négociation, juste l'essentiel.
Le hic ? Les paquets UDP peuvent se perdre. Le DNS gère ça simplement : pas de réponse dans le délai ? Tu renvoies. Plus de 99 % des queries rentrent dans un paquet de 512 octets, donc les pertes sont rares.
Plan B : si la réponse est trop grosse (genre avec DNSSEC), le serveur active le bit TC (Truncated). Le client repasse alors en TCP sur le port 53 pour une réponse complète et sûre. Un système en deux vitesses parfait : rapide d'habitude, fiable au besoin.
La hiérarchie en arbre : pas de base de données centrale
Le vrai génie du DNS, c'est sa scalabilité : pas de méga-base avec tous les domaines du monde.
C'est un arbre inversé, lu de droite à gauche. Pour www.example.com., on commence par la racine (ce point final discret) et on descend :
Les root servers ouvrent la danse. Treize logiques (A à M), mais dupliqués des milliers de fois via Anycast partout sur Terre. Ta query atterrit chez le plus proche. Ils ne connaissent pas ton domaine, juste les serveurs des TLD comme .com, .org ou .fr.
Les serveurs TLD sont gérés par les registries. Verisign pour .com, d'autres pour les codes pays. Demande-leur example.com, ils te filent les nameservers de ce domaine précis.
Les nameservers authoritatifs sont au bas de l'arbre, chez ton registrar ou un provider comme Cloudflare, Route 53 ou NameOcean. Ils ont le zone file complet : A, AAAA, CNAME, MX et tout le reste. Leur réponse porte le bit aa : "Je suis l'autorité. C'est la vérité."
Problème classique : si le nameserver s'appelle ns1.example.com, comment trouver son IP sans connaître celle de example.com ? Les TLD résolvent ça avec des glue records : ils donnent l'IP du nameserver direct avec la délégation NS. Sans ça, tout s'écroule.
Le cache : le superpouvoir du web
Réalité brutale : si chaque lookup remontait tout l'arbre, de root à authoritatif, internet s'effondrerait.
Le DNS sauve la mise grâce à un cache agressif à tous les niveaux.
Chaque enregistrement a un TTL en secondes : "Valable X secondes. Ne re-demande pas avant." Le cache est partout :
- Dans ton navigateur — Chrome a son cache interne, visible sur
chrome://net-internals/#dns. - Dans ton OS —
systemd-resolvedsous Linux,mDNSRespondersur macOS, DNS Client sous Windows. - Chez ton resolver récursif — 8.8.8.8 de Google, 1.1.1.1 de Cloudflare ou les pools de ton ISP, partagés entre millions d'utilisateurs. Un miss pour un devient un hit pour tous.
C'est pourquoi gérer les TTL est vital en migration. Pour switcher de serveur, baisse le TTL des jours avant : de 24h à 5 min. Oublie ça, et les resolvers envoient le trafic à l'ancienne IP pendant des heures, ignorant tes changements authoritatifs. Le cache mal géré freine tout.
La magie du routage : Anycast
Et là, ça devient diabolique.
Comment 8.8.8.8 répond en 2 ms depuis Tokyo ou Londres ? Comment treize root servers en gèrent des milliers physiques ? Pas grâce au DNS, mais à Anycast.
Le routage classique lie une IP à un serveur unique. Anycast casse ça : des centaines de serveurs mondiaux annoncent la même IP via BGP. Ton routeur envoie vers le plus proche grâce à l'algorithme de chemin le plus court.
Résultat : Cloudflare livre du DNS en millisecondes partout. Les DDoS sur les roots échouent, le trafic se disperse naturellement. De l'infra qui frise la magie.
Le bilan
Le DNS est un chef-d'œuvre de design distribué. Vite grâce à l'UDP sans état. Scalable via son arbre délégué. Résistant par ses caches multicouches. Proche de toi grâce à Anycast.
Tout ça conçu en 1983 pour un internet minuscule. Aujourd'hui, il gère des trillions de lookups quotidiens. Preuve que les bons principes ne vieillissent pas.
Avec NameOcean ou en gérant du DNS à grande échelle, ces bases changent ta vision des domaines, migrations et perfs. Le DNS n'est pas de la plomberie : c'est la circulation sanguine du web.