Questo articolo nasce con lo scopo di fornire informazioni utili per gestire al meglio le modifiche ai DNS ottimizzando i tempi di propagazione, verranno descritti principalmente gli aspetti del sistema DNS che influenzano gli aggiornamenti e la visibilità dei domini.
1. TTL di un record DNS
1.1 TTL di un record DNS
Il TTL (Time To Live) indica per quanto tempo un valore di un record DNS deve essere considerato valido, durante l'accesso a un host remoto, l'indirizzo IP associato verrà memorizzato nella cache del server DNS del proprio ISP per un tempo pari al TTL.
Semplificando i dettagli della procedura, durante il primo accesso a un determinato host remoto (es. "www.dominio.ext" possiamo individuare queste fasi principali:
1) Il computer client richiederà ai DNS del proprio ISP l'indirizzo IP corrispondente a "www.dominio.ext"
2) il server DNS del proprio ISP richiederà al server autoritativo di "dominio.ext" l'indirizzo IP di "www.dominio.ext", restituirà l'IP al computer client e ne terrà una copia in una cache locale per la durata del TTL
3) Le richieste successive del computer client verso il DNS del proprio ISP riceveranno come risposta il valore presente in cache
4) scaduto il TTL il DNS del proprio ISP cancellerà il valore dalla cache e quindi per la successiva richiesta si ripartirà dalla fase 1.
Di conseguenza aggiornando un record DNS, le modifiche saranno visibili su un determinato DNS solo dopo la cancellazione del relativo valore dalla cache, quindi dopo un tempo massimo pari al TTL.
1.2 TTL predefinito e permanenza di un risultato negativo
Per i record non esistenti la procedura è la stessa, cioè effettuando una richiesta verso un server DNS per un record non esistente, verrà mantenuto in cache l'errore per un tempo pari al TTL minimo specificato nelle impostazioni del server DNS.
Ad esempio per permettere di effetture modifiche rapide a un dominio sarebbe utile avere un TTL minimo basso (es. 1-6 ore) per ridurre il tempo di permanenza di un risultato negativo.
2. Ottimizzazione del TTL per una migliore gestione dei record
I tempi di propagazione dipendono direttamente dal TTL, salvo impostazioni particolari dei server DNS del proprio provider, quindi la scelta del TTL avrà effetto sui tempi di propagazione.
- Con un TTL alto aumenteranno quindi i tempi di propagazione delle modifiche, ma diminuirà il numero di query verso i DNS autoritativi del dominio grazie all'uso della cache
- Con un TTL basso invece si ridurranno i tempi di propagazione ma aumenterà notevolmente il numero di query verso i DNS autoritativi del dominio.
E' quindi necessario stabilire per quanto tempo ci si aspetta di lasciare il record DNS invariato, in modo da ottimizzare il TTL, ad esempio:
- Se ci si aspetta di non cambiare l'indirizzo al proprio server per un lungo periodo di tempo sarà conveniente utilizzare un TTL di almeno un'ora, ed arrivare anche a 12-24 ore.
- Se si stanno facendo dei test converrà impostare un TTL basso, anche di pochi minuti in modo da vedere rapidamente le modifiche.
Una scelta ottimale, sarebbe ad esempio:
- Impostare un TTL basso, anche di pochi minuti, durante la configurazione i test
- Dopo aver verificato la configurazione alzare il TTL a un valore di 12-24 ore, è consigliabile non superare le 24 ore.
Nel caso fosse necessario cambiare IP sarà comunque possibile ottimizzare i tempi di propagazione anche con un TTL alto, ad esempio se abbiamo un TTL di 24 ore, potremo dire che il tempo di propagazione stimato sia 24 ore. Per ottimizzare i tempi di propagazione potremo abbassare il TTL del record ( ad es. impostando 1 ora ) 24 ore prima di effettuare il cambio di IP, in questo modo al momento del cambio di IP saranno scaduti i risultati in cache e il tempo di propagazione sarà ridotto drasticamente. Dopo aver testato la nuova configurazione sarà possibile alzare nuovamente il TTL.
3. Configurazione del TTL in base all'affidabilità dell'infrastruttura del servizio DNS del dominio
Durante l'impostazione del TTL è necessaro tenere in considerazione l'affidabilità del servizio DNS in uso, infatti in caso di guasti ai server DNS autoritativi, un TTL alto potrebbe permettere ai client che hanno ancora l'indirizzo in cache (ad es. i visitatori attualmente connessi a un sito) di accedere al sito.
Ad esempio se si sta utilizzando un solo server DNS con 2 IP, oppure 2 server DNS connessi alla stessa rete, sarebbe preferibile non utilizzare un'impostazione con TTL molto basso (minore di 1 ora), infatti un guasto o un momentaneo rallentamento della rete su cui si trovano i server DNS potrebbe creare problemi a chi sta utilizzando il sito web.
Se invece si utilizzano più server DNS, su macchine differenti e connessi a reti differenti, il rischio di un guasto sarà notevolmente minore, per rendere irraggiungibile il dominio dovrebbero infatti restare isolati contemporaneamente tutti i server DNS.