Che cos'è la propagazione DNS?
La propagazione DNS è il periodo durante il quale una modifica pubblicata da un nameserver autorevole diventa visibile attraverso altri server autorevoli, resolver ricorsivi e cache locali. Il nameserver che pubblica la modifica può servire il nuovo record non appena l'ha pubblicato, mentre altri server autorevoli potrebbero essere ancora in fase di aggiornamento e i resolver ricorsivi potrebbero restituire una risposta meno recente memorizzata nella cache. I valori TTL guidano la durata della cache, ma il comportamento dei resolver può variare, quindi le risposte obsolete possono talvolta persistere oltre il TTL nominale.
Comprendere la «propagazione»
Il termine «propagazione» è in parte fuorviante: le modifiche DNS non si propagano né si diffondono attivamente. In realtà:
1. Aggiorni i record sul tuo nameserver autorevole
2. Le copie memorizzate nella cache scadono in base al TTL (Time To Live)
3. Le nuove query recuperano i record aggiornati dai server autorevoli
4. Le vecchie copie in cache continuano a essere utilizzate fino alla scadenza del TTL
È più preciso parlare di «scadenza della cache DNS» che di «propagazione», ma il termine propagazione è ormai ampiamente usato.
Come funzionano le modifiche DNS
Il processo di aggiornamento
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"
Esempio di sequenza temporale
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)
Fattori che influenzano il tempo di propagazione
TTL (durata di validità)
Il fattore più importante è il TTL:
| Valore TTL | Tempo di propagazione | Caso d'uso |
|---|---|---|
| 60s | 1-2 minuti | Migrazioni attive, bilanciamento del carico |
| 300s (5 min) | 5-10 minuti | Modifiche in produzione, valore predefinito ragionevole |
| 3600s (1 ora) | 1-2 ore | Infrastrutture stabili |
| 86400s (24 ore) | 24-48 ore | Record modificati raramente |
Modifiche ai nameserver
Cambiare i nameserver richiede più tempo rispetto alle altre modifiche DNS:
Registry Level: 24-48 hours (TLD nameserver cache)
Resolver Level: Based on NS record TTL
Total Time: Up to 48 hours worst case
Comportamento degli ISP e dei resolver
Non tutti i resolver DNS rispettano i valori TTL:
Resolver che rispettano le regole: Google (8.8.8.8), Cloudflare (1.1.1.1), OpenDNS- Rispettano rigorosamente il TTL
- Consentono una propagazione rapida
- Possono ignorare i TTL bassi
- Possono conservare la cache più a lungo del previsto
- Possono ritardare la propagazione di diverse ore
Distribuzione geografica
Regioni diverse si aggiornano in momenti diversi, in base alla cache dei resolver locali:
North America: 10:05 - Updated
Europe: 10:08 - Updated
Asia: 10:12 - Updated
Memorizzazione nella cache lato client
Anche dopo l'aggiornamento dei server DNS, le cache locali possono conservare i vecchi valori:
- Cache del browser: in genere 60 secondi
- Cache del sistema operativo: da pochi minuti a diverse ore
- Cache dell'applicazione: varia in base all'applicazione
Controllare la propagazione DNS
Strumenti online per controllare la propagazione
whatsmydns.net: mostra la risoluzione DNS da oltre 20 località in tutto il mondo. dnschecker.org: controlla globalmente i record A, AAAA, CNAME, MX e TXT. Controllo dello stato DomScan:curl "https://domscan.net/v1/health?domain=example.com"
# Shows current DNS configuration
Controlli dalla riga di comando
Controllare più resolver:# 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
Interrogare direttamente il nameserver autorevole:
# Find nameservers
dig example.com NS
# Query authoritative NS directly
dig @ns1.example.com example.com
Questo mostra immediatamente la «verità» del server autorevole, senza coinvolgere alcuna cache.
Controllare da più località
# Using curl with DNS over HTTPS
curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=example.com&type=A'
Ridurre il tempo di propagazione
Prima di apportare modifiche
Passaggio 1: riduci il TTL (24-48 ore prima della modifica)Old: example.com. 3600 IN A 203.0.113.50
New: example.com. 300 IN A 203.0.113.50
^^^
Reduced to 5 minutes
Passaggio 2: attendi la scadenza del vecchio TTL
Attendi l'intera durata del vecchio TTL (3600s = 1 ora).
Passaggio 3: modifica il DNSexample.com. 300 IN A 203.0.113.51
Passaggio 4: monitora la propagazione
Controlla i resolver a livello globale.
Passaggio 5: ripristina il TTL (dopo aver confermato che tutto funzioni)example.com. 3600 IN A 203.0.113.51
Durante le modifiche
Usa il DNS anycast: provider come Cloudflare utilizzano reti anycast che aggiornano i dati quasi istantaneamente nella propria rete globale. Monitora continuamente: segui la propagazione nelle regioni e nei resolver principali. Predisponi un piano di rollback: mantieni in funzione la vecchia infrastruttura finché la propagazione non è completa.Scenari comuni di propagazione
Modifica del record A
Tempo previsto: 5-30 minuti, in base al TTL.# Before
example.com → 203.0.113.50
# After
example.com → 203.0.113.51
# Propagation: 1x TTL duration
Modifica del record MX
Tempo previsto: 5-30 minuti, in base al TTL. Rischio: durante la propagazione, le email potrebbero essere consegnate al vecchio server. Mitigazione: mantieni attivo il vecchio server di posta per 24-48 ore.Modifica dei nameserver
Tempo previsto: 24-48 ore.Why so long?
- TLD registry caches NS records
- Registry TTL often 24-48 hours
- No control over registry cache
Buona pratica: configura tutti i record sui nuovi nameserver prima di effettuare il passaggio.
Aggiunta di un nuovo sottodominio
Tempo previsto: da istantaneo a 1 ora. Attenzione: la cache negativa può ritardare la disponibilità.If subdomain was queried and didn't exist:
→ NXDOMAIN cached (SOA minimum TTL)
→ New subdomain won't resolve until cache expires
Mitigazione: riduci il TTL minimo del SOA prima di aggiungere nuovi record.
Risoluzione dei problemi di propagazione
Una modifica non si propaga
Controllo 1: verifica il nameserver autorevoledig @ns1.example.com example.com
# Should show new value
Controllo 2: verifica il TTL
dig example.com | grep -i ttl
Controllo 3: controlla il SOA per la cache negativa
dig example.com SOA
# Look at minimum TTL field
Controllo 4: svuota la cache locale
Cancella le cache del browser, del sistema operativo e delle applicazioni.
Propagazione parziale
Sintomo: alcuni utenti vedono i nuovi record, mentre altri vedono ancora quelli vecchi. Causa: resolver diversi hanno memorizzato i record in momenti diversi. Soluzione: attendi la durata massima del TTL, quindi svuota le cache dei client.Propagazione bloccata
Sintomo: dopo diversi giorni alcuni resolver continuano a fornire i vecchi record. Causa: il resolver dell'ISP ignora il TTL oppure è configurato in modo errato. Soluzione:1. Verifica che il nameserver autorevole sia corretto
2. Contatta l'ISP se il problema persiste
3. Invita gli utenti a passare a un DNS pubblico (8.8.8.8, 1.1.1.1)
Propagazione DNS e TTL della cache
| Concetto | Che cos'è | Durata |
|---|---|---|
| TTL | Per quanto tempo un record può essere memorizzato nella cache | Impostato dal proprietario del dominio |
| Propagazione | Tempo necessario alla scadenza di tutte le cache | Circa 2x TTL |
| TTL dei nameserver | Per quanto tempo i record NS restano nella cache | Spesso 24-48 ore (registro) |
| Cache negativa | Per quanto tempo NXDOMAIN resta nella cache | TTL minimo del SOA |
Buone pratiche
1. Riduci il TTL prima delle modifiche: riduci il TTL 24-48 ore prima degli aggiornamenti DNS
2. Usa TTL appropriati: bilancia le prestazioni (TTL alto) con la flessibilità (TTL basso)
3. Monitora a livello globale: controlla il DNS da più regioni geografiche
4. Mantieni attivi i vecchi servizi: conserva i server precedenti fino al completamento della propagazione
5. Documenta le modifiche: annota cosa è cambiato e quando per facilitare la risoluzione dei problemi
6. Esegui test completi: verifica che i nuovi record DNS funzionino prima del passaggio
7. Informa gli utenti: avvisa di eventuali brevi interruzioni
8. Usa DNS gestito: i provider con reti anycast riducono il tempo di propagazione
9. Automatizza il monitoraggio: configura avvisi per le modifiche DNS e lo stato della propagazione
10. Predisponi un piano di rollback: definisci come annullare le modifiche in caso di problemi
Checklist della propagazione
☐ 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 propagazione DNS è una conseguenza naturale della memorizzazione nella cache. Comprendere il comportamento del TTL e pianificare di conseguenza le modifiche consente aggiornamenti fluidi e prevedibili, con interruzioni minime.