propagazione DNS e TTL (Time-to-live)

Per comprendere il fenomeno della propagazione dei DNS, è indispensabile spiegare prima COME funzionano i DNS.

Il vostro dominio su DomainRegister.it gestisce i propri DNS attraverso tre diversi server: ns1.drnameservice.com, ns2.drnameservice.com, ns3.drnamesrvice.com

Ciò tuttavia non significa che chiunque visiti il vostro sito dovrà fare riferimento a questi tre server per sapere “dove” andare. anzi, utilizzerà quasi sicuramente server DNS differenti (normalmente quelli del suo provider ADSL).

Quindi un utente che utilizza (per. es.) connettività Tiscali, per andare sul vostro sito farà riferimento a quanto gli indicheranno i server DNS di Tiscali.

I server DNS sono collegati fra di loro, a livello mondiale, e costituiscono una vera e propria rete che continua a scambiarsi ed aggiornarsi i dati.

Se quindi fate una modifica ai DNS, sarà necessario del tempo affinchè questa si propaghi su tutti i server DNS di internet:
Quanto tempo? Dipende… si tratta di un fenomeno progressivo, che pò iniziare alcuni minuti dopo la modifica e concludersi fino a 48h dopo.
Questo tempo è detto TEMPO DI PROPAGAZIONE DNS e, pur non essendo in linea di principio controllabile, è possibile fare qualcosa per tentare di ridurlo al minimo.

Propagazione DNS: Time-To-Live (TTL)

Il “Time-To-Live”, o TTL , è un parametro della configurazione di un DNS che diventa importante nel momento in cui si intenda cambiare la propria configurazione o cambiare il server DNS.
Il TTL è il tempo, espresso in secondi, per il quale un altro server DNS può ritenere valida l’informazione ricevuta.
Ovvero un valore piccolo (ad es. 3600, quindi un’ora) farà si che un altro server DNS, dopo aver ricevuto i dati di configurazione DNS del vostro dominio, li riterrà validi per un’ora; quindi, a qualsiasi richiesta gli arrivi in merito nei 60 minuti successivi risponderà con quella medesima configurazione. Trascorsi 60 minuti, si preoccuperà di aggiornare nuovamente i dati.
Quindi, un basso TTL garantisce – in linea di principio – una maggior velocità di propagazione delle modifiche in internet.

Non bisogna però cedere alla tentazione di usare sempre TTL bassi: questi vanno usati solo ed esclusivamente in occasione di modifiche, mentre per il resto del tempo vanno usati TTL elevati.
Questo per una serie di motivi:

  • un TTL basso comporterà che gli altri server DNS rispondano ad eventuali richieste non con i dati che hanno in cache, ma richiedendo un aggiornamento degli stessi; questo quindi renderà la risposta del vostro sito meno veloce
  • un TTL troppo basso, o mantenuto basso per troppo tempo, può essere ignorato da alcuni server DNS, quindi, anche se avete impostato un TTL di 30 minuti, può darsi che dopo una settimana alcuni server DNS decidano di ignorare questa informazione, ed innalzino (anche sensibilmente9 il valore del TTL; in tal modo, in realtà si ottiene il contrario del risultato sperato.
Come procedere quindi nella modifica dei DNS affinchè questi si propaghino con la massima velocità possibile?
  • Due giorni prima della modifica dei DNS, intervenite abbassando opportunamente il TTL
    Nei due giorni successivi, questa informazione (ovvero “questi DNS sono da verificare ogni 30 minuti”) verrà propagata attraverso internet
  • Effettuate quindi la modifica dei DNS, lasciando il TTL basso
  • Infine, 36 h dopo la modifica dei DNS, intervenite nuovamente solo sui TTL, innalzandoli opportunamente.

Quali sono i valori a cui impostare il TTL?

Le norme (RFC2308) indicano un valore compreso tra 3600 e 86400 (ovvero, tra un’ora e 24h)
Se non vengono effettuate modifiche sui DNS, è preferibile impostare un valore il più alto possibile, che renderà generalmente il nostro sito più “reattivo”: quindi 86400
Se invece dobbiamo eseguire delle modifiche, è meglio abbassare questo valore il più possibile, avendo cura però di restare dentro valori ragionevoli: considerato che un valore troppo basso (come 600) potrebbe anche essere del tutto ignorat da molti server DNS, è conveniente utilizzare un valore di 3600

Come verificare la propagazione dei DNS?
La propagazione dei DNS è un fenomeno progressivo e non lineare, come tale, + molto difficile da prevedere e da monitorare.
Esistono dei tool on line che ci permettono – a grandi linee – di farlo, confrontando i dati riportati su alcuni server DNS in giro per il mondo e confrontandoli con quelli dei “root server”, ovvero dei server DNS autoritativi.
I principali tool utilizzabili per questo scopo sono:
Non tutti i server DNS si aggiornano come dovrebbero!
Purtroppo, i singoli server DNS sono lasciati all’arbitrio del relativo provider.
Capita quindi che, in alcuni casi, siano mal configurati, e che quindi non si aggiornino con la frequenza dovuta.
Un noto provider nazionale, ad esempio, aggiorna alcuni dei propri server DNS solo una volta alla settimana; quindi, indifferentemente come operiate per favorire la propagazione dei DNS, gli utenti che usano quei server DNS di questo provider “scopriranno” la nuova configurazione solo dopo alcuni giorni… (fino a sette, a seconda se avete avuto la fortuna di farlo alla vigilia dell’aggiornamento o il giorno dopo…)