🌐 Reti e infrastrutture

Come funziona il DNS: risoluzione, cache e TTL spiegati

Il DNS passo per passo: resolver ricorsivi, server radice, TLD e autoritativi, cache e TTL. Perché le modifiche tardano e come diagnosticare gli errori.

Il DNS (Domain Name System) è il servizio che traduce nomi come esempio.it in indirizzi IP. Lo usi centinaia di volte al giorno senza accorgertene: ogni pagina, ogni app, ogni email passa da una o più interrogazioni DNS. Quando il DNS non funziona, sembra che "Internet sia caduto", anche se la connessione è perfettamente attiva.

Una base di dati distribuita e gerarchica

Il DNS non è un elenco unico conservato in un solo luogo. È una struttura ad albero, letta da destra verso sinistra:

  • in cima c'è la radice, rappresentata da un punto finale implicito (esempio.it.);
  • sotto ci sono i domini di primo livello (TLD), come .it, .com, .org;
  • poi i domini registrati, come esempio.it;
  • infine eventuali sottodomini, come www.esempio.it o posta.esempio.it.

Ogni livello delega al successivo l'autorità su una porzione dell'albero. Il gestore del .it sa quali server sono responsabili di esempio.it, ma non conosce gli indirizzi dei suoi sottodomini: quelli li sa solo il server autoritativo del dominio.

I protagonisti della risoluzione

Componente Cosa fa
Stub resolver La parte del sistema operativo che pone la domanda
Resolver ricorsivo Il server che cerca la risposta per conto tuo (del provider, del router o pubblico)
Server radice Indica quali server gestiscono ciascun TLD
Server del TLD Indica quali server sono autoritativi per un dominio
Server autoritativo Conserva i record del dominio e dà la risposta definitiva

Il percorso di una richiesta

Supponiamo che tu voglia aprire www.esempio.it e che nessuno abbia la risposta in memoria:

  1. Il computer chiede al resolver configurato (spesso il router, che a sua volta inoltra al provider).
  2. Il resolver chiede a un server radice: "chi gestisce .it?". La radice risponde con l'elenco dei server del .it.
  3. Il resolver chiede a un server del .it: "chi gestisce esempio.it?". Riceve i nomi dei server autoritativi del dominio.
  4. Il resolver chiede al server autoritativo l'indirizzo di www.esempio.it e ottiene la risposta.
  5. Il resolver la restituisce al computer e la conserva in cache.

Tutto questo avviene in genere in poche decine di millisecondi. Le richieste successive sono ancora più rapide, perché le risposte intermedie e finali restano in memoria.

La cache e il TTL

Ogni record DNS ha un TTL (Time To Live), espresso in secondi, che indica per quanto tempo un resolver può conservarlo in cache prima di richiederlo di nuovo. Un TTL di 3600 significa un'ora.

La cache esiste a più livelli: nel browser, nel sistema operativo, nel router, nel resolver del provider. È ciò che rende il DNS veloce, ma è anche il motivo per cui le modifiche non sono istantanee.

Quando cambi l'indirizzo IP di un sito, chi aveva il vecchio record in cache continua a usarlo fino alla scadenza del TTL. La famosa "propagazione DNS" non è un processo attivo: è semplicemente l'attesa che le cache scadano.

Un consiglio pratico per i traslochi

Se devi spostare un sito su un nuovo server:

  1. alcuni giorni prima, abbassa il TTL del record interessato, per esempio a 300 secondi;
  2. attendi che trascorra almeno il vecchio TTL, così le cache hanno preso il nuovo valore breve;
  3. cambia l'indirizzo: entro pochi minuti quasi tutti vedranno il nuovo server;
  4. a migrazione conclusa, riporta il TTL a un valore più alto.

Anche le risposte negative ("questo nome non esiste") vengono messe in cache, per un tempo indicato nel record SOA della zona. Se interroghi un sottodominio prima di crearlo, potresti dover attendere prima di vederlo funzionare.

Quale resolver usare

Il resolver vede l'elenco dei siti che visiti e ne determina in parte la velocità. Le opzioni tipiche sono quello del provider, uno pubblico o uno gestito in proprio sulla rete locale. I resolver moderni supportano anche protocolli cifrati, come DNS over HTTPS e DNS over TLS, che impediscono a chi si trova sulla rete di leggere o alterare le richieste lungo il tragitto fino al resolver.

Diagnosticare i problemi DNS

Alcuni sintomi tipici e le prime verifiche:

  • Il sito non si apre, ma l'indirizzo IP sì: il problema è il DNS, non la connessione.
  • Il sito si apre da un dispositivo e non da un altro: probabilmente cache diverse o resolver diversi.
  • Dopo una modifica vedi ancora il vecchio sito: controlla il TTL e svuota la cache locale.

Gli strumenti più utili sono nslookup, disponibile su tutti i sistemi, e dig su Linux e macOS. Con dig www.esempio.it vedi la risposta e il TTL residuo; con dig @server www.esempio.it interroghi un server specifico, per esempio direttamente quello autoritativo, aggirando le cache.

In sintesi

  • Il DNS è una base di dati gerarchica e distribuita: radice, TLD, domini e sottodomini.
  • Il resolver ricorsivo fa il lavoro di ricerca e conserva le risposte in cache.
  • Il TTL stabilisce quanto dura la cache: la "propagazione" è solo l'attesa della sua scadenza.
  • Prima di cambiare un record importante, abbassa il TTL con qualche giorno di anticipo.
  • Con dig e nslookup puoi interrogare server specifici e capire dove nasce un problema.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche