Vous devez changer une adresse A, un CNAME ou un MX et souhaitez que le monde entier le voie en quelques minutes ? Voici une méthode fiable, orientée résultats, pour accélérer au maximum la « propagation DNS » et éviter les pièges.
Vue d’ensemble de la question
Un administrateur souhaite réduire au minimum le délai entre la modification d’un enregistrement DNS (A, AAAA, CNAME, MX, etc.) et son apparition pour les utilisateurs du monde entier. Les délais perçus proviennent des caches : navigateur, OS, résolveurs récursifs (FAI/entreprise/publics) et parfois des couches réseau internes. L’objectif est de contrôler ces caches grâce à une préparation du TTL, une exécution propre et des vérifications ciblées.
Réponse & solutions
Étape | Action | Pourquoi / points d’attention |
---|---|---|
1. Planification du TTL | 24 à 48 heures avant le changement, abaissez le TTL de l’enregistrement (par ex. de 86 400 s → 300 s). | Les résolveurs qui consultent la zone avant la bascule garderont la valeur courte en cache, permettant une actualisation rapide lors du changement réel. |
2. Exécution de la modification | Modifiez la valeur souhaitée (nouvel IP, nouveau CNAME…), puis surveillez. | Le faible TTL force la plupart des caches à interroger de nouveau vos serveurs d’autorité dans les 5 minutes. |
3. Fenêtre de coexistence | Laissez l’ancien et le nouveau enregistrement actifs quelques heures. | Les derniers caches avec l’ancien TTL long ne casseront pas le service ; ils recevront toujours une réponse valide. |
4. Remontée du TTL | Une fois la propagation vérifiée, remontez le TTL à une valeur normale (3 600 s à 86 400 s). | Évite un trafic DNS excessif à long terme. |
5. Purge ciblée des caches | – Sur vos récursifs internes : rndc flush (BIND) / ipconfig /flushdns (Windows).– Sur certains CDN ou DNS managés, utilisez l’API ou l’interface « Purge Cache ». | Utile lorsqu’un cache sous votre contrôle contient encore l’ancienne valeur malgré un TTL court. Note : vous ne pouvez pas purger les caches de résolveurs tiers (FAI/publics). |
6. Anycast & DNS managé | Héberger la zone chez un fournisseur Anycast (Cloudflare, AWS Route 53, Google Cloud DNS…). | Diminue la latence d’interrogation des serveurs d’autorité et répartit la charge ; la propagation intra‑POP est quasi instantanée. |
7. Outils de vérification | Commande dig +trace , sites comme whatsmydns.net, ou métriques du fournisseur. | Permettent de suivre la visibilité de la nouvelle valeur dans différentes régions en temps réel. |
8. Spécificités DNSSEC | Changer d’adresse n’implique pas de nouvelle signature, mais changer de clé requiert la mise à jour du DS au registre. | Prévoir le double‑signing et respecter le add‑sign‑remove timing pour éviter toute rupture. |
Ce que signifie vraiment « propagation DNS »
Le DNS ne pousse pas les mises à jour ; il fonctionne par expiration de cache. Chaque résolveur stocke la réponse jusqu’au TTL. Tant que ce TTL n’est pas expiré, il ne recontacte pas l’autorité : c’est la raison pour laquelle il est impossible d’accélérer la visibilité d’un changement déjà mis en cache avec un TTL long. La meilleure stratégie est donc d’anticiper.
Couche de cache | Exemples | Comment l’influencer | Comment purger lors des tests |
---|---|---|---|
Navigateur | Chrome, Firefox, Edge | Non configurable côté serveur | Redémarrer le navigateur ou purger via la page interne dédiée (Chrome : chrome://net-internals/#dns ) |
Système d’exploitation | Windows, macOS, Linux | — | Windows : ipconfig /flushdns macOS : sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder Linux (systemd) : sudo resolvectl flush-caches |
Résolveur récursif | FAI, entreprise, publics (DoH/DoT) | TTL de vos enregistrements | Flusher si vous le contrôlez (ex. : rndc flush pour BIND). Sinon, attendre l’expiration du TTL. |
Autorités secondaires | Secondaires BIND/Knot/NSD, Anycast | SOA + NOTIFY/IXFR | Assurez-vous d’avoir notify yes; et des timers SOA corrects (voir ci‑dessous). |
Plan de bascule éprouvé
Adaptez les heures à votre fenêtre de maintenance. Le principe est de « préparer », puis « basculer », puis « stabiliser ».
- T‑48 h à T‑24 h : abaissez le TTL des enregistrements concernés (et éventuellement des enregistrements liés comme CNAME cible, MX, SRV, TXT pour SPF/DKIM/DMARC). Visez 300 s (5 min) ou 120 s si la charge DNS et votre fournisseur le permettent.
- T‑1 h : vérifiez que vos secondaires ont bien pris la nouvelle série SOA (serial) et que les nouvelles valeurs TTL apparaissent dans les réponses d’autorité.
- T‑0 : appliquez le changement (nouvelle IP, nouveau CNAME, bascule MX, etc.). Surveillez l’accessibilité de l’application et les métriques d’erreur.
- T+0 à T+2 h : période de coexistence. Conservez ancien et nouveau chemins valides (par ex. anciens et nouveaux backends derrière un même FQDN via réponses multiples A/AAAA, ou deux MX opérationnels).
- T+2 h : remontez le TTL à une valeur de croisière (3 600 s à 86 400 s) une fois la visibilité vérifiée à l’international.
- T+24 h : nettoyage (retirer l’ancien A/AAAA/target/serveur mail devenu inutile).
Recommandations TTL par cas d’usage
Cas | TTL temporaire (bascule) | TTL normal (après stabilisation) | Remarques |
---|---|---|---|
Site Web (A/AAAA) | 120–300 s | 3 600–86 400 s | Avec CDN/proxy, vous pouvez garder 300–900 s si le trafic DNS n’est pas un problème. |
Alias (CNAME) | 120–300 s | 3 600–86 400 s | Attention au « flattening » à l’apex : c’est l’A/AAAA synthétique qui dicte la mise en cache. |
Messagerie (MX) | 300–900 s | 14 400–86 400 s | Laissez les deux MX actifs pendant la transition ; adaptez aussi SPF/DKIM/DMARC. |
TXT (SPF/DMARC) | 300–900 s | 3 600–86 400 s | Les vérifications antispam tiennent compte du cache ; synchronisez avec MX. |
SRV (services) | 300 s | 3 600–86 400 s | Impacts forts sur clients temps réel (VoIP, bases, etc.). |
Paramètres SOA qui influencent la vitesse
Le SOA n’accélère pas la fraîcheur vue par les résolveurs tiers, mais il conditionne la vitesse de mise à jour de vos secondaires.
- refresh : intervalle entre deux vérifications de serial par un secondaire (souvent 900–3 600 s).
- retry : délai de re‑tentative en cas d’échec (souvent 120–900 s).
- expire : délai après lequel un secondaire cesse de répondre si l’autorité est injoignable (souvent 1–4 semaines).
- minimum (RFC 2308) : Negative TTL pour le cache des réponses inexistantes (NXDOMAIN). Choisissez 60–300 s si vous devez créer rapidement de nouveaux sous‑domaines non encore existants.
Activez NOTIFY et IXFR pour que les secondaires se mettent à jour immédiatement après changement de serial, au lieu d’attendre le refresh.
DNSSEC : conserver la vitesse sans casser la validation
- Un changement d’adresse (A/AAAA/CNAME/MX) ne nécessite pas forcément de nouvelle signature si la zone reste signée et le ZSK actif.
- Un changement de clés (ZSK/KSK) exige un protocole sûr : double‑signing et ordre « add → sign → remove » pour éviter des réponses invalides. Pensez à la mise à jour du DS au registre si la KSK change.
- Attention à l’aggressive NSEC caching côté résolveur : un NXDOMAIN récemment vu peut être répondu à partir des preuves NSEC/NSEC3 pendant le Negative TTL.
Anycast & fournisseurs DNS managés
Avec un service DNS Anycast, chaque point de présence répond localement ; la latence d’accès à l’autorité diminue et l’absorption de charge augmente. Cela ne « court‑circuite » pas les résolveurs récursifs (ils continuent à respecter le TTL), mais garantit que, lorsque ces résolveurs viennent rafraîchir, la réponse est servie rapidement dans leur région.
Bonnes pratiques avec un DNS managé :
- Utilisez les enregistrements pondérés ou latency‑based lorsqu’ils existent, pour des bascules progressives.
- Regroupez vos changements dans une transaction atomique via l’API, quand c’est proposé, afin d’éviter des fenêtres d’incohérence entre plusieurs enregistrements dépendants.
- Surveillez les quotas et la QPS autoritaire : un TTL très bas (ex. : 30 s) peut multiplier les requêtes.
Cas particulier : changement de délégation (NS/DS/Glue)
Changer les serveurs de noms d’une zone (NS au registre) suit une dynamique différente :
- Ajoutez d’abord les nouveaux NS tout en conservant les anciens côté zone et côté registre (coexistence).
- Attendez 24–48 h (ou le TTL de la délégation au TLD) tout en vérifiant via
dig +trace
que la chaîne de délégation est complète (NS + glue A/AAAA si nécessaire). - Retirez ensuite les anciens NS du registre et de la zone.
Si la zone est DNSSEC, synchronisez le DS avec la KSK active avant de basculer, et maintenez la période de coexistence.
Outils & commandes de vérification
Mesurer la réalité côté autorité
dig example.com A @ns1.example.net +norecurse +noall +answer +ttlid
dig example.com SOA @ns1.example.net +norecurse +noall +answer
Tracer la délégation de la racine
dig +trace example.com A
Comparer plusieurs résolveurs publics
# Linux/macOS
for s in 8.8.8.8 1.1.1.1 9.9.9.9 208.67.222.222; do
echo "== $s =="; dig example.com A @"$s" +noall +answer +ttlid;
done
Windows PowerShell
Resolve-DnsName example.com -Type A -Server 8.8.8.8
Resolve-DnsName example.com -Type A -Server 1.1.1.1
Vérifier le Negative TTL (NXDOMAIN)
# Interroger un nom volontairement inexistant
dig no-such-host.example.com A +noall +authority +ttlid
# Vérifier la valeur du champ SOA (minimum) de la zone
dig example.com SOA +noall +answer
Erreurs fréquentes et corrections
- « Propagation lente » alors que le TTL avait été réduit : certains résolveurs appliquent des planchers/plafonds de TTL ou la fonctionnalité « serve‑stale ». Laissez une fenêtre de coexistence suffisante.
- Oubli des enregistrements liés : abaisser le TTL du cible CNAME (et pas seulement du CNAME), des MX secondaires, des entrées SRV/TXT associées.
- Apparence de « mauvaise propagation » due au cache local : testez avec
+trace
et depuis plusieurs résolveurs publics avant de conclure. - Changement de KSK/KSK mal séquencé : respectez le double‑signing et la mise à jour DS avant de retirer l’ancienne clé.
- Trafic DNS qui explose avec TTL=60 s sans préparation : mettez en place du monitoring (QPS, latence, taux de SERVFAIL) et des limites de requêtes côté autorité.
Calcul d’impact de la baisse de TTL
Intuition utile : un résolveur va rafraîchir un nom environ toutes les TTL secondes. Si vous avez R résolveurs distincts qui desservent vos utilisateurs, votre autorité verra en première approximation R/TTL requêtes de rafraîchissement par seconde (en plus des manques de cache). Passer de 86 400 s à 300 s multiplie donc la fréquence de rafraîchissement par ~288 pour un même résolveur. D’où l’importance de n’abaisser le TTL que temporairement, et de vérifier que l’autorité et votre fournisseur tiennent la charge pendant la fenêtre de bascule.
Automatiser une bascule en toute sécurité
Un runbook automatisé réduit la fenêtre d’incohérence :
- T‑48 h : API « update TTL » (→ 300 s) sur les enregistrements concernés.
- Attendre au moins l’ancien TTL maximum pour que les caches adoptent le TTL court.
- T‑0 : transaction atomique : écrire les nouvelles valeurs (A/AAAA/CNAME/MX). Optionnel : réponses multiples ou pondérées pour bascule progressive.
- Monitoring : tests synthétiques multi‑régions + métriques autoritaires (QPS, SERVFAIL, latence, NXDOMAIN).
- T+2 h : API « update TTL » (→ 3 600–86 400 s) et purge ciblée des caches internes.
Exemple de squelette pseudo‑code (bash/cURL)
# 1) Abaissement TTL
api PUT /zones/ZONE/records/www.example.com/A '{"ttl":300}'
# 2) Attendre la prise en compte (ancien TTL max)
sleep $ANCIEN_TTL
# 3) Bascule
api PUT /zones/ZONE/records/[www.example.com/A](http://www.example.com/A) '{"answers":["203.0.113.10","203.0.113.11"]}'
# 4) Vérifications
for s in 8.8.8.8 1.1.1.1; do
dig [www.example.com](http://www.example.com) A @"$s" +noall +answer +ttlid
done
# 5) Remontée TTL
api PUT /zones/ZONE/records/[www.example.com/A](http://www.example.com/A) '{"ttl":3600}'
Tableau « flush » rapide (tests locaux)
Plateforme | Commande | Remarques |
---|---|---|
Windows | ipconfig /flushdns | Exécuter dans un terminal élevé si nécessaire. |
macOS | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder | La commande exacte varie selon la version, la séquence ci‑dessus marche sur les versions récentes. |
Linux (systemd‑resolved) | sudo resolvectl flush-caches | Vérifiez resolvectl statistics pour confirmer. |
BIND récursif | sudo rndc flush | Purge l’ensemble du cache (possible de cibler un nom avec certaines versions). |
dnsmasq | sudo killall -HUP dnsmasq | Recharge la configuration et purge le cache. |
nscd | sudo service nscd restart | Si utilisé pour le cache de noms d’hôtes. |
Stratégies avancées pour minimiser l’impact
- Blue/Green DNS : publiez deux ensembles d’adresses (A/AAAA) vers anciens et nouveaux backends. Tant que l’application supporte le multi‑endpoint, la coexistence absorbe les derniers caches lents.
- Weighted DNS : selon le fournisseur, ajustez la pondération (ex. 100 → 50/50 → 0) pour une bascule progressive.
- Équilibrage L7 : en alternative au changement DNS, mettez à jour la cible d’un load‑balancer (modification instantanée, pas de cache DNS côté client).
- Apex & CNAME flattening : si votre apex utilise un CNAME « aplatit », c’est l’A/AAAA généré qui est mis en cache. Abaissez le TTL de l’apex et du CNAME cible si possible.
- IPv6 : n’oubliez pas AAAA. Une moitié d’Internet préfèrera parfois l’AAAA (Happy Eyeballs), vous devez aligner A et AAAA.
- Mail : changez MX, SPF et enregistrements d’autodiscover (SRV) en phase. Gardez l’ancien MX opérationnel pendant la fenêtre de coexistence.
FAQ ciblée
Peut‑on « forcer » un FAI à oublier l’ancienne valeur ?
Non. Vous ne contrôlez pas les caches de tiers. D’où l’importance de la planification du TTL et de la coexistence.
Pourquoi whatsmydns montre des valeurs différentes ?
Parce que ses sondes interrogent des résolveurs différents, avec des états de cache différents. Ce n’est pas une « réplication lente » des autorités.
Un TTL de 0 accéléra‑t‑il tout ?
Rares sont les résolveurs qui respectent réellement 0, beaucoup imposent un plancher (p. ex. 30–60 s). De plus, cela peut surcharger votre autorité. Préférez 60–300 s temporairement.
Faut‑il aussi baisser le TTL du SOA ?
Le SOA n’est pas servi au client final comme une réponse à la place des enregistrements. Concentrez‑vous sur le TTL des enregistrements applicatifs ciblés et sur le Negative TTL (champ minimum) si vous devez faire naître des noms qui n’existaient pas.
Et si un résolveur « viole la RFC » et garde des réponses expirées ?
Certains disposent d’un mode serve‑stale pour la résilience. Cela peut prolonger de quelques minutes la visibilité de l’ancienne valeur. La coexistence est la parade.
Checklist avant/après
- ✓ TTL abaissé 24–48 h avant (enregistrements cibles et liés)
- ✓ Secondaires synchronisés (SOA serial + NOTIFY/IXFR)
- ✓ Fenêtre de bascule planifiée avec rollback
- ✓ Scripts de tests
dig
et sondes multi‑régions prêts - ✓ Monitoring QPS/erreurs/latence déployé
- ✓ Remontée du TTL après validation
- ✓ Nettoyage des anciens enregistrements
Informations complémentaires utiles
- Impossible d’accélérer ce qui est déjà en cache : un TTL long (par exemple 86 400 s) déjà stocké dans les résolveurs ne peut pas être forcé à expirer de l’extérieur. La seule solution est d’anticiper.
- Changer plusieurs enregistrements critiques ? Utilisez un script d’automatisation ou la gestion atomique via l’API de votre fournisseur pour éviter une fenêtre d’incohérence.
- Cache navigateur : les navigateurs modernes intègrent aussi leur propre cache DNS (p. ex. Chrome :
chrome://net-internals/#dns
). Le redémarrage du navigateur ou la commande interne d’effacement peut aider lors des tests. - Réseaux d’entreprise / ISP : certains résolveurs violant la RFC continuent à servir les valeurs expirées ; seul le temps ou un flush manuel du côté opérateur réglera le problème.
Exemples concrets
Migration de site Web (A/AAAA)
- T‑48 h : TTL = 300 s sur
www.example.com
(A/AAAA) et sur la cible si CNAME. - T‑0 : bascule de l’adresse vers le nouveau backend (les deux backends acceptent les sessions durant 2 h).
- T+2 h : métriques OK ? TTL = 3 600 s. T+24 h : couper l’ancien backend.
Migration MX
- T‑48 h : TTL = 300–900 s sur MX et TXT (SPF/DMARC), publication des nouvelles clés DKIM.
- T‑0 : ajouter les nouveaux MX (pondérations/priorités adaptées) en conservant les anciens.
- T+24 h : retirer progressivement les anciens MX quand la délivrabilité est stable.
Création accélérée d’un sous‑domaine
Si vous devez créer rapidement feature.example.com
alors qu’il n’existait pas : réduisez le Negative TTL (SOA minimum) quelques jours avant pour éviter que des NXDOMAIN récents ne bloquent la visibilité, puis revenez à une valeur plus élevée après.
Résumé opérationnel
La « propagation DNS » se gagne en amont : baisse temporaire des TTL, exécution atomique, coexistence raisonnée et vérifications agressives (dig +trace
, résolveurs multiples). Ajoutez à cela un DNS Anycast et une surveillance en temps réel, et la visibilité mondiale d’un changement passe généralement de plusieurs heures à quelques minutes, sans surprises pour vos utilisateurs.
Conclusion : en appliquant ces bonnes pratiques—surtout la réduction temporaire du TTL, la surveillance active et l’usage d’un service DNS Anycast—la propagation mondiale passe généralement de plusieurs heures à quelques minutes.