Cos’è il TTL di un record DNS

Ogni record DNS ha un campo TTL, espresso in secondi, che indica per quanto tempo una copia del record può restare in cache. La RFC 1035 del 1987 lo definisce come un intero a 32 bit: un TTL di 3600 significa che il resolver del tuo operatore, o di Google, Cloudflare e Quad9, può riusare la risposta per un’ora senza interrogare di nuovo i server autoritativi del dominio.

Il TTL lo decide chi gestisce la zona DNS, record per record. Il resolver che riceve la risposta fa partire il conto alla rovescia e, a zero, scarta la copia: alla richiesta successiva torna a chiedere ai server autoritativi. Per questo il valore che vedi interrogando un resolver pubblico è spesso più basso di quello impostato nel pannello: è il tempo rimasto prima della scadenza di quella copia, non il TTL originale.

Il valore massimo ammesso è 2.147.483.647 secondi (231−1), come chiarisce la RFC 2181 del 1997. La stessa RFC permette a ogni resolver di applicare un tetto proprio: Unbound, per esempio, di default non tiene in cache nulla per più di 86.400 secondi, un giorno, qualunque sia il TTL ricevuto.

Come preparare il TTL prima di un cambio DNS

  1. Annota il TTL attuale del record da cambiare con il DNS lookup, per esempio 86400 secondi.
  2. Abbassa il TTL del record a 300 secondi nel pannello DNS, senza cambiare ancora il valore.
  3. Aspetta che passi almeno il vecchio TTL: con 86400 secondi, un giorno intero.
  4. Cambia il valore del record (IP, server di posta, CNAME) e controlla la propagazione DNS: entro circa 5 minuti i resolver leggono il nuovo dato.
  5. Quando tutto funziona, riporta il TTL al valore abituale.

TTL e propagazione DNS: perché un cambio non è immediato

La “propagazione DNS” è il tempo necessario perché tutte le cache sparse su Internet scadano e leggano il nuovo valore. Nessuno “spinge” la modifica verso i resolver: quando cambi un record, il server autoritativo risponde subito con il dato nuovo, ma chi ha in cache il vecchio continua a usarlo fino alla scadenza del suo TTL.

Il caso tipico: il record A di www ha TTL 86400 (un giorno) e sposti il sito su un nuovo hosting. Chi ha visitato il sito un’ora prima della modifica ha nel resolver una copia valida ancora per 23 ore e continua ad arrivare al vecchio server. Altri utenti, con il resolver che non aveva il record in cache, vedono subito il nuovo. Nasce così il classico “a me funziona e al cliente no”.

Il tempo massimo di attesa è quindi il TTL che il record aveva prima della modifica, non quello nuovo. Abbassare il TTL nello stesso momento in cui cambi l’IP non serve: le cache stanno ancora contando sul valore vecchio. Lo strumento propagazione DNS interroga resolver in diversi paesi e mostra quali hanno già il valore nuovo.

Ci sono altre cache oltre a quella del resolver: il sistema operativo, il browser e alcune app tengono copie proprie. Su Windows ipconfig /flushdns svuota la cache locale, come spiega la guida per cambiare i DNS.

Quale TTL impostare: valori consigliati

Un TTL alto riduce le interrogazioni ai server autoritativi e rende le risposte più veloci per chi visita il sito, perché la risposta arriva dalla cache. Un TTL basso rende le modifiche rapide ma aumenta le interrogazioni. La tabella riassume le scelte più comuni.

SituazioneTTL tipicoPerché
Record stabili (A, AAAA, MX di un sito che non cambia)3600–86400 s (da 1 ora a 1 giorno)Meno interrogazioni, buona resistenza a brevi guasti dei server DNS
Valore di partenza in molti pannelli3600 s (1 ora)Compromesso tra velocità di modifica e carico
Prima di un cambio di hosting, IP o posta300 s (5 minuti)La modifica diventa visibile in pochi minuti
Failover o bilanciamento basato sul DNS30–60 sServe spostare il traffico in fretta, al prezzo di molte interrogazioni
Record NS e SOA86400 s o piùCambiano raramente, e un valore basso non porta vantaggi

Il minimo dipende dal fornitore. Cloudflare, per esempio, accetta come minimo 60 secondi (30 nei piani Enterprise) e come massimo un giorno. Il valore “Auto” vale 300 secondi ed è fisso sui record che passano dal suo proxy. Nei pannelli degli hosting italiani il TTL a volte non è modificabile: in quel caso devi aspettare che scada il TTL predefinito.

Come abbassare il TTL prima di un cambio

Il modo più semplice per evitare ore di disservizio durante una migrazione è far scadere le copie con il TTL lungo prima di toccare il valore del record.

  1. Uno o due giorni prima: controlla con il DNS lookup i record coinvolti, di solito A e AAAA di dominio e www, MX se cambi posta, e annota TTL e valori attuali.
  2. Abbassa il TTL a 300 secondi sugli stessi record, lasciando invariato il valore.
  3. Attendi almeno quanto il vecchio TTL. Se era 86400, aspetta 24 ore: solo così sei sicuro che nessuna cache conservi la copia lunga.
  4. Fai il cambio e verifica con la propagazione DNS. Tieni attivo il vecchio server per qualche ora, perché alcuni resolver e client non rispettano alla lettera il TTL.
  5. Riporta il TTL al valore abituale, per esempio 3600, quando la migrazione è conclusa.

Se cambi i name server del dominio, e non un singolo record, il TTL che conta è quello dei record NS pubblicati dal registro del dominio, su cui non hai controllo e che può durare anche più di un giorno. Per un trasferimento di dominio segui anche la guida su come trasferire un dominio .it.

Il TTL negativo: quando un record nuovo non si vede

Anche una risposta “questo record non esiste” viene messa in cache. È il negative caching, regolato dalla RFC 2308 del 1998: la durata è il valore più basso tra il campo MINIMUM del record SOA della zona e il TTL del SOA stesso.

Succede spesso con i record di posta. Interroghi _dmarc.example.com prima di crearlo, il resolver memorizza che non esiste, poi lo pubblichi: per tutta la durata del TTL negativo quel resolver continua a rispondere che il record non c’è. Il SOA si legge con il DNS lookup, scegliendo il tipo SOA: l’ultimo numero del record è il MINIMUM. Valori tra 300 e 3600 secondi sono comuni.

Come leggere il TTL di un record

Il TTL compare in ogni risposta DNS, accanto al nome del record. Per leggere il valore impostato, e non quello residuo di una cache, interroga direttamente un server autoritativo del dominio.

  • Con il DNS lookup: scegli il tipo di record e leggi la colonna TTL.
  • Con dig example.com A su Mac e Linux: il TTL è il numero dopo il nome. dig @ns1.example.com example.com A chiede al server autoritativo e mostra il valore pieno.
  • Su Windows: nslookup -debug example.com riporta il TTL nella sezione delle risposte, mentre in PowerShell Resolve-DnsName example.com lo mostra nella colonna TTL.

Domande frequenti

Qual è il TTL migliore per un sito?

Per un sito che non cambia spesso server, 3600 secondi (un’ora) è un valore equilibrato. Valori più alti, fino a 86400, riducono le interrogazioni ma rallentano le modifiche. Abbassalo a 300 solo nei giorni di una migrazione, poi rialzalo.

Quanto tempo ci vuole per la propagazione DNS?

Al massimo quanto il TTL che il record aveva prima della modifica. Con un TTL di un’ora, dopo un’ora tutte le cache che rispettano lo standard hanno il valore nuovo. Il cambio dei name server di un dominio può richiedere più tempo, perché dipende dal TTL dei record NS impostato dal registro.

Un TTL basso rallenta il sito?

Può aggiungere qualche millisecondo alla prima visita, perché il resolver deve chiedere il record più spesso ai server autoritativi. Per un sito normale con TTL di 300 secondi la differenza è minima. Il problema di un TTL molto basso è semmai il numero di interrogazioni, che alcuni fornitori DNS conteggiano.

Perché il TTL che vedo è diverso da quello impostato?

Perché stai interrogando un resolver che ha il record in cache e ti mostra i secondi che restano prima della scadenza. Ripeti l’interrogazione e vedrai il numero scendere. Per il valore impostato interroga uno dei name server autoritativi del dominio.

Posso forzare l’aggiornamento dei DNS?

Non sulle cache degli altri. Puoi svuotare quella del tuo computer, del browser e del router, e alcuni resolver pubblici offrono una pagina per cancellare un record dalla loro cache. Per tutti gli altri utenti devi attendere la scadenza del TTL.

Fonti e riferimenti

Pagina aggiornata il