Qu'est-ce que la propagation DNS ?
La propagation DNS est la période pendant laquelle une modification publiée par un serveur de noms faisant autorité devient visible via d'autres serveurs faisant autorité, des résolveurs récursifs et des caches locaux. Le serveur de noms qui publie la modification peut servir le nouvel enregistrement dès qu'il a publié la modification, tandis que d'autres serveurs faisant autorité peuvent encore être en cours de mise à jour et que les résolveurs récursifs peuvent renvoyer une réponse mise en cache plus ancienne. Les valeurs TTL indiquent la durée de conservation dans le cache, mais le comportement des résolveurs peut varier, de sorte que des réponses obsolètes peuvent parfois persister au-delà du TTL nominal.
Comprendre la « propagation »
Le terme « propagation » est quelque peu trompeur. Les changements DNS ne « se propagent » pas activement ou se propagent. Au lieu de cela :
1. Vous mettez à jour les registres sur le serveur de noms faisant autorité
2. Les copies mises en cache expirent en fonction du TTL (Time To Live)
3. Les nouvelles requêtes récupèrent les registres mis à jour des serveurs faisant autorité
4. Les anciennes copies mises en cache continuent à servir jusqu'à l'expiration du TTL
Il est plus exact de dire « expiration du cache DNS » que « propagation », mais le terme propagation est largement utilisé.
Comment fonctionnent les changements DNS
Le processus de mise à jour
Step 1: Update DNS records
example.com A record: 203.0.113.50 → 203.0.113.51
Step 2: Authoritative nameserver immediately serves new record
Step 3: Existing cached copies remain valid until TTL expires
Step 4: New queries after TTL expiration receive updated record
Step 5: All caches eventually expire and refresh
→ "Propagation complete"
Exemple de chronologie
Time: 10:00 - DNS updated (TTL: 300s / 5 minutes)
Resolver A (cached at 09:58):
09:58 - Cached old IP, expires 10:03
10:03 - Cache expires, queries again, gets new IP
Resolver B (cached at 10:01):
10:01 - Cached old IP, expires 10:06
10:06 - Cache expires, queries again, gets new IP
Resolver C (queries at 10:05):
10:05 - No cache, queries immediately, gets new IP
All resolvers have new IP by: 10:06
Propagation time: 6 minutes (worst case based on TTL)
Facteurs affectant le temps de propagation
TTL (durée de vie)
Le facteur le plus important :
| Valeur TTL | Temps de propagation | Cas d'utilisation |
|---|---|---|
| 60s | 1-2 minutes | Migrations actives, équilibrage de charge |
| 300s (5 min) | 5-10 minutes | Changements de production, défaut raisonnable |
| 3600s (1 heure) | 1-2 heures | Infrastructure stable |
| 86400s (24 heures) | 24-48 heures | Registres rarement changés |
Changements de serveurs de noms
Le changement de serveurs de noms prend plus de temps que les autres changements DNS :
Registry Level: 24-48 hours (TLD nameserver cache)
Resolver Level: Based on NS record TTL
Total Time: Up to 48 hours worst case
Comportement du résolveur et FAI
Tous les résolveurs DNS ne respectent pas les valeurs TTL :
Résolveurs bien comportés : Google (8.8.8.8), Cloudflare (1.1.1.1), OpenDNS- Respectent strictement TTL
- Propagation rapide
- Peuvent ignorer les TTL bas
- Cachent plus longtemps que spécifié
- Peuvent retarder la propagation de plusieurs heures
Distribution géographique
Différentes régions se mettent à jour à différents moments en fonction du cache du résolveur local :
North America: 10:05 - Updated
Europe: 10:08 - Updated
Asia: 10:12 - Updated
Mise en cache côté client
Même après la mise à jour des serveurs DNS, les caches locaux peuvent conserver les anciennes valeurs :
- Cache navigateur : 60 secondes généralement
- Cache du système d'exploitation : Minutes à heures
- Cache de l'application : Varie selon l'application
Vérification de la propagation DNS
Vérificateurs de propagation en ligne
whatsmydns.net : Affiche la résolution DNS à partir de 20+ emplacements dans le monde dnschecker.org : Vérifie les registres A, AAAA, CNAME, MX, TXT globalement Vérification d'intégrité DomScan :curl "https://domscan.net/v1/health?domain=example.com"
# Shows current DNS configuration
Vérifications en ligne de commande
Vérifier plusieurs résolveurs :# Google DNS
dig @8.8.8.8 example.com
# Cloudflare DNS
dig @1.1.1.1 example.com
# Your ISP (no @ server specified)
dig example.com
# Compare results
Interroger directement le serveur de noms faisant autorité :
# Find nameservers
dig example.com NS
# Query authoritative NS directly
dig @ns1.example.com example.com
Ce qui montre la « vérité » immédiatement, sans cache impliqué.
Vérifier à partir de plusieurs emplacements
# Using curl with DNS over HTTPS
curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=example.com&type=A'
Minimisation du temps de propagation
Avant de faire des changements
Étape 1 : Réduire le TTL (24-48 heures avant le changement)Old: example.com. 3600 IN A 203.0.113.50
New: example.com. 300 IN A 203.0.113.50
^^^
Reduced to 5 minutes
Étape 2 : Attendre l'expiration du TTL ancien
Attendre la durée complète de l'ancien TTL (3600s = 1 heure)
Étape 3 : Faire le changement DNSexample.com. 300 IN A 203.0.113.51
Étape 4 : Surveiller la propagation
Vérifier les résolveurs globalement
Étape 5 : Restaurer le TTL (après confirmation du succès)example.com. 3600 IN A 203.0.113.51
Pendant les changements
Utiliser anycast DNS : Les fournisseurs comme Cloudflare utilisent des réseaux anycast qui se mettent à jour quasi instantanément sur tout leur réseau global Surveiller en continu : Suivre la propagation sur les régions clés et les résolveurs Avoir un plan d'annulation : Maintenir l'ancienne infrastructure en fonctionnement jusqu'à la fin de la propagationScénarios de propagation courants
Changement d'un registre A
Temps attendu : 5-30 minutes (basé sur TTL)# Before
example.com → 203.0.113.50
# After
example.com → 203.0.113.51
# Propagation: 1x TTL duration
Changement d'un registre MX
Temps attendu : 5-30 minutes (basé sur TTL) Risque : L'e-mail peut être livré à l'ancien serveur pendant la propagation Atténuation : Maintenir l'ancien serveur de messagerie actif pendant 24-48 heuresChangement de serveurs de noms
Temps attendu : 24-48 heuresWhy so long?
- TLD registry caches NS records
- Registry TTL often 24-48 hours
- No control over registry cache
Meilleure pratique : Configurer tous les registres sur les nouveaux serveurs de noms avant de changer
Ajout d'un nouveau sous-domaine
Temps attendu : Instant à 1 heure Piège : Mise en cache négatifIf subdomain was queried and didn't exist:
→ NXDOMAIN cached (SOA minimum TTL)
→ New subdomain won't resolve until cache expires
Atténuation : Réduire SOA minimum TTL avant d'ajouter de nouveaux registres
Dépannage des problèmes de propagation
Le changement ne se propage pas
Vérification 1 : Vérifier le serveur de noms faisant autoritédig @ns1.example.com example.com
# Should show new value
Vérification 2 : Vérifier le TTL
dig example.com | grep -i ttl
Vérification 3 : Vérifier SOA pour le cache négatif
dig example.com SOA
# Look at minimum TTL field
Vérification 4 : Vider le cache local
Effacer navigateur, système d'exploitation et caches d'application
Propagation partielle
Symptôme : Certains utilisateurs voient les nouveaux registres, d'autres voient l'ancien Cause : Les résolveurs différents ont mis en cache à différents moments Solution : Attendre la durée TTL maximale, puis vider les caches clientsPropagation bloquée
Symptôme : Des jours plus tard, certains résolveurs servent toujours les anciens registres Cause : Le résolveur FAI ignore TTL ou est mal configuré Solution :1. Vérifier que le serveur de noms faisant autorité est correct
2. Contacter le FAI s'il persiste
3. Les utilisateurs peuvent passer à DNS public (8.8.8.8, 1.1.1.1)
Propagation DNS vs TTL du cache
| Concept | C'est quoi | Durée |
|---|---|---|
| TTL | Combien de temps un registre peut être mis en cache | Défini par le propriétaire du domaine |
| Propagation | Temps pour l'expiration de tous les caches | Environ 2x TTL |
| TTL du serveur de noms | Combien de temps les registres NS sont mis en cache | Souvent 24-48 heures (registre) |
| Cache négatif | Combien de temps NXDOMAIN est mis en cache | TTL minimum SOA |
Meilleures pratiques
1. Réduire le TTL avant les changements : Réduire le TTL 24-48 heures avant les mises à jour DNS
2. Utiliser les TTL appropriés : Équilibrer les performances (TTL élevé) vs flexibilité (TTL bas)
3. Surveiller globalement : Vérifier DNS à partir de plusieurs régions géographiques
4. Maintenir les anciens services : Maintenir les serveurs précédents jusqu'à la fin de la propagation
5. Documenter les changements : Suivre les changements et quand pour le dépannage
6. Tester complètement : Vérifier que les nouveaux registres DNS fonctionnent avant de changer
7. Communiquer avec les utilisateurs : Avertir des brèves interruptions possibles
8. Utiliser DNS géré : Les fournisseurs avec réseaux anycast minimisent le temps de propagation
9. Automatiser la surveillance : Configurer les alertes pour les changements DNS et l'état de propagation
10. Avoir un plan d'annulation : Savoir comment annuler les changements en cas de problème
Liste de vérification de propagation
☐ Lower TTL 24-48 hours before change
☐ Wait for old TTL to expire
☐ Make DNS change
☐ Verify on authoritative nameservers
☐ Check multiple public resolvers
☐ Test from multiple geographic locations
☐ Monitor for 2x TTL duration
☐ Verify no errors reported
☐ Restore higher TTL if desired
☐ Document change completion
La propagation DNS est une conséquence naturelle de la mise en cache DNS. Comprendre le comportement TTL et planifier les changements en conséquence garantit des mises à jour fluides et prévisibles avec une interruption minimale.