Controllo della propagazione DNS

Hai modificato un record e qualcuno riceve ancora la vecchia risposta. Questo controllo chiede al tuo name server qual è il valore vero adesso, poi chiede a 24 resolver pubblici cosa credono in questo momento.

Per esempio: github.com (MX), gnu.org (A)

Non viene spinto niente da nessuna parte

«Propagazione» fa pensare che la tua modifica viaggi verso l’esterno dal tuo provider DNS fino a coprire tutto internet. Il DNS non funziona così. I tuoi name server tengono il record e aspettano che qualcuno lo chieda. Non mandano niente a nessuno.

Le macchine che cercano i nomi per conto delle persone si chiamano resolver. Il tuo provider internet ne gestisce uno, e così Google (8.8.8.8) e Cloudflare (1.1.1.1). La prima volta che a un resolver viene chiesto www.example.com, prende la risposta dal tuo name server e ne tiene una copia. Ogni record porta un numero, il TTL (time to live), che dice per quanti secondi la copia può essere riutilizzata. Il resolver non chiederà di nuovo finché quel contatore non arriva a zero.

Quindi dopo una modifica ogni resolver passa al nuovo valore secondo i propri tempi, quando la sua copia di quello vecchio scade. Un resolver che non aveva nessuna copia vede subito il nuovo valore.

Cosa confronta questo controllo

  1. Trova i name server autoritativi per il nome e ne interroga uno direttamente, senza cache in mezzo. Quella risposta è il riferimento, mostrato con il suo TTL completo.
  2. Manda la stessa domanda, nello stesso momento, a 24 resolver pubblici: 17 gestiti da provider in un luogo noto (Stati Uniti, Brasile, Spagna, Germania, Russia, India, Cina, Corea del Sud, Australia, Zimbabwe e altri) e 7 reti mondiali come Google, Cloudflare, Quad9 e OpenDNS.
  3. Confronta ogni risposta completa con il riferimento. Se un nome ha più valori, deve corrispondere l’intero insieme.

Scegli tu il tipo di record: A, AAAA, CNAME, MX, NS, TXT o CAA. Un nome inserito con www. viene controllato così com’è scritto, perché www è un record a sé.

Leggere la mappa e la tabella

Aggiornato
Il resolver restituisce gli stessi valori del tuo name server.
Diverso
Restituisce qualcos’altro, di solito il valore precedente. La colonna TTL mostra quanti secondi restano alla sua copia, ed è quanto dovrai aspettare per quel resolver.
Nessuna risposta
Il resolver è andato in timeout o ha rifiutato. Questo non dice niente sul tuo record.

Se i resolver restituiscono tre o più insiemi di valori distinti, il controllo smette di interpretare le differenze come ritardo. Un dominio servito da una rete di distribuzione dei contenuti, o che usa l’instradamento geografico, distribuisce di proposito indirizzi diversi a seconda della regione. Siti grandi come wikipedia.org o netflix.com appaiono sempre così.

«Non esiste (NXDOMAIN)» per un record che hai appena creato è anche questa una risposta in cache. I resolver ricordano che un nome mancava per il tempo indicato dal record SOA della zona, spesso tra 5 minuti e 1 ora.

Pianificare una modifica perché l’attesa sia breve

Non puoi svuotare le cache degli altri. Quello che puoi fare è decidere in anticipo quanto durano.

  1. Almeno un TTL intero prima del cambio, abbassa il TTL del record a 300. Se era 86400, fallo il giorno prima.
  2. Fai la modifica. Ora ogni resolver si adegua entro cinque minuti.
  3. Tieni acceso il vecchio server durante quella finestra, così nessuno finisce su un indirizzo morto.
  4. Quando tutto funziona, riporta il TTL a 3600 o più. TTL brevi significano più richieste e prime visite un po’ più lente.

Cambiare i name server stessi è più lento. L’elenco dei name server è tenuto dal registro della tua estensione, con un TTL che non controlli: 48 ore per .com. Tieni attiva la zona presso il vecchio provider DNS per due giorni dopo il passaggio.

Le reti mondiali rispondono dal loro sito più vicino al nostro server, quindi il risultato per Google o Cloudflare descrive una delle loro sedi, non tutte. Anche il tuo computer, il browser e il router tengono delle cache, e questo controllo non può vederle.

Domande frequenti

Quanto ci mette la propagazione DNS?

Al massimo il TTL che il record aveva prima della modifica. Sono 5 minuti per un TTL di 300 e un giorno per 86400. Le «24-48 ore» che si leggono spesso sono un limite superiore prudente, e valgono davvero solo per un cambio di name server.

Posso accelerare la propagazione DNS?

Non a cose fatte, tranne su due reti che hanno un modulo pubblico per svuotare la cache di un nome: Google Public DNS («Flush Cache») e Cloudflare 1.1.1.1 («Purge Cache»). Per tutti gli altri, abbassa il TTL prima della prossima modifica.

Tutti i resolver sono aggiornati, perché vedo ancora il vecchio sito?

Il tuo dispositivo ha una sua cache. Esegui ipconfig /flushdns su Windows o sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder su macOS, poi riavvia il browser. Anche un router di casa può tenersi la vecchia risposta, e riavviarlo la cancella.

Perché i resolver mostrano indirizzi IP diversi per lo stesso dominio?

O alcuni hanno ancora il valore precedente, o il dominio risponde in modo diverso per regione tramite una CDN o l’instradamento geografico. Il controllo distingue i due casi contando le risposte distinte.

Quale TTL usare per i record DNS?

3600 (un’ora) va bene per la maggior parte dei record. Scendi a 300 nei giorni intorno a una migrazione, e sali a 86400 per i record che non cambiano mai, come gli MX presso un grande provider di posta.