Vérification de la propagation DNS

Vous avez modifié un enregistrement et certaines personnes obtiennent encore l’ancienne réponse. Cette vérification demande à votre propre serveur de noms ce qui est vrai maintenant, puis demande à 24 résolveurs publics ce qu’ils croient en ce moment.

Par exemple : github.com (MX), gnu.org (A)

Rien n’est poussé nulle part

Le mot « propagation » donne l’impression que votre changement part de votre hébergeur DNS pour couvrir tout internet. Le DNS ne fonctionne pas ainsi. Vos serveurs de noms détiennent l’enregistrement et attendent qu’on les interroge. Ils n’envoient rien à personne.

Les machines qui cherchent les noms pour les gens s’appellent des résolveurs. Votre fournisseur d’accès en exploite un, tout comme Google (8.8.8.8) et Cloudflare (1.1.1.1). La première fois qu’on demande www.example.com à un résolveur, il va chercher la réponse chez votre serveur de noms et en garde une copie. Chaque enregistrement porte un nombre, le TTL (durée de vie), qui dit pendant combien de secondes la copie peut être réutilisée. Le résolveur ne redemande pas avant que ce compteur tombe à zéro.

Donc, après une modification, chaque résolveur passe à la nouvelle valeur à son propre rythme, quand sa copie de l’ancienne expire. Un résolveur qui n’avait pas de copie voit la nouvelle valeur tout de suite.

Ce que cette vérification compare

  1. Elle trouve les serveurs de noms qui font autorité pour le nom et en interroge un directement, sans cache entre les deux. Cette réponse est la référence, affichée avec son TTL complet.
  2. Elle envoie la même question, au même moment, à 24 résolveurs publics : 17 exploités par des fournisseurs situés à un endroit connu (les États-Unis, le Brésil, l’Espagne, l’Allemagne, la Russie, l’Inde, la Chine, la Corée du Sud, l’Australie, le Zimbabwe et d’autres) et 7 réseaux mondiaux comme Google, Cloudflare, Quad9 et OpenDNS.
  3. Elle compare chaque réponse complète à la référence. Si un nom a plusieurs valeurs, l’ensemble doit correspondre.

Vous choisissez le type d’enregistrement : A, AAAA, CNAME, MX, NS, TXT ou CAA. Un nom saisi avec www. est vérifié tel quel, puisque www est un enregistrement distinct.

Lire la carte et le tableau

À jour
Le résolveur renvoie les mêmes valeurs que votre serveur de noms.
Différent
Il renvoie autre chose, normalement la valeur précédente. La colonne TTL indique combien de secondes il reste à sa copie et c’est le temps que vous attendrez pour ce résolveur.
Pas de réponse
Le résolveur a expiré ou refusé. Cela ne vous apprend rien sur votre enregistrement.

Si les résolveurs renvoient trois ensembles de valeurs distincts ou plus, la vérification cesse d’y voir un simple retard. Un domaine servi par un réseau de diffusion de contenu, ou qui utilise un routage géographique, distribue exprès des adresses différentes selon la région. Les grands sites comme wikipedia.org ou netflix.com ont toujours cet aspect.

« N’existe pas (NXDOMAIN) » pour un enregistrement que vous venez de créer est aussi une réponse en cache. Les résolveurs se souviennent qu’un nom était absent aussi longtemps que l’enregistrement SOA de la zone le prévoit, souvent entre 5 minutes et 1 heure.

Planifier un changement pour que l’attente soit courte

Vous ne pouvez pas vider les caches des autres. Ce que vous pouvez faire, c’est décider à l’avance combien de temps ils durent.

  1. Au moins un TTL complet avant le changement, baissez le TTL de l’enregistrement à 300. S’il était de 86400, faites-le la veille.
  2. Faites le changement. Chaque résolveur suit maintenant en moins de cinq minutes.
  3. Laissez l’ancien serveur en marche pendant cette fenêtre pour que personne n’arrive sur une adresse morte.
  4. Une fois que tout fonctionne, remontez le TTL à 3600 ou plus. Des TTL courts veulent dire plus de requêtes et des premières visites un peu plus lentes.

Changer les serveurs de noms eux-mêmes est plus lent. La liste des serveurs de noms est détenue par le registre de votre extension de domaine, avec un TTL que vous ne contrôlez pas : 48 heures pour .com. Gardez la zone en vie chez l’ancien hébergeur DNS pendant deux jours après le changement.

Les réseaux mondiaux répondent depuis celui de leurs sites qui est le plus proche de notre serveur, donc le résultat pour Google ou Cloudflare décrit un de leurs emplacements, pas tous. Votre ordinateur, votre navigateur et votre routeur ont aussi leurs caches et cette vérification ne peut pas les voir.

Questions fréquentes

Combien de temps dure la propagation DNS ?

Au plus le TTL qu’avait l’enregistrement avant votre changement. C’est 5 minutes pour un TTL de 300 et une journée pour 86400. Les « 24 à 48 heures » qu’on lit souvent sont une borne haute prudente et elle ne vaut vraiment que pour un changement de serveurs de noms.

Peut-on accélérer la propagation DNS ?

Pas après coup, sauf sur deux réseaux qui offrent un formulaire public pour effacer un nom en cache : Google Public DNS (« Flush Cache ») et Cloudflare 1.1.1.1 (« Purge Cache »). Pour tous les autres, baissez le TTL avant votre prochain changement.

Tous les résolveurs sont à jour, alors pourquoi vois-je encore l’ancien site ?

Votre appareil a son propre cache. Exécutez ipconfig /flushdns sous Windows ou sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder sous macOS, puis redémarrez le navigateur. Un routeur domestique peut aussi s’accrocher à l’ancienne réponse et le redémarrer règle cela.

Pourquoi les résolveurs affichent-ils des adresses IP différentes pour le même domaine ?

Soit certains détiennent encore la valeur précédente, soit le domaine répond différemment selon la région grâce à un CDN ou à un routage géographique. La vérification distingue les deux en comptant les réponses distinctes.

Quel TTL utiliser pour les enregistrements DNS ?

3600 (une heure) convient à la plupart des enregistrements. Descendez à 300 dans les jours autour d’une migration et montez à 86400 pour les enregistrements qui ne changent jamais, comme le MX chez un grand fournisseur de messagerie.