Modulo 6 · 6.1
TTL e cache
Modulo 6: Tempo, cache e trasferimento · Tempo di lettura: 7 minuti
Obiettivo della lezione: Al termine di questa lezione saprà spiegare cos'è il TTL di un record, come le cache lo utilizzano e quale TTL scegliere a seconda della situazione.
Concetti chiave: TTL (Time To Live), cache, cache del resolver, cache del Suo computer e browser, TTL in scadenza, valori TTL tipici (300, 3600, 86400)
Perché il DNS ricorda
Nella lezione 1.4 ha visto come un resolver cerca una risposta: prima presso un root server, poi presso il server TLD e infine presso il nameserver autoritativo del dominio. Se questo dovesse succedere a ogni clic su un sito web, internet sarebbe molto più lento e i nameserver crollerebbero sotto il peso di tutte le richieste.
Per questo motivo i resolver ricordano ogni risposta per un certo periodo. Questa memoria si chiama cache. Se qualcun altro richiede lo stesso nome, il resolver fornisce subito la risposta dalla propria cache, senza dover compiere l'intero percorso.
La domanda diventa quindi: per quanto tempo può il resolver ricordare una risposta? Questo lo decide il proprietario del dominio, tramite il TTL di ogni record.
Cos'è il TTL
TTL sta per Time To Live: il tempo durante il quale un record può rimanere in una cache, espresso in secondi. Ogni record ha un proprio TTL. In una zona si presenta così:
example.com. 3600 IN A 192.0.2.10
www.example.com. 3600 IN A 192.0.2.10
example.com. 3600 IN MX 10 mail.example.com.
_dmarc.example.com. 14400 IN TXT "v=DMARC1; p=quarantine"Il numero dopo il nome è il TTL. Qui i record A e MX possono essere ricordati per un'ora (3600 secondi) e il record DMARC per quattro ore (14400 secondi).
Valori comuni:
| TTL | Corrisponde a | Quando si usa? |
|---|---|---|
| 300 | 5 minuti | Poco prima e durante un trasferimento, oppure se cambia spesso le impostazioni |
| 3600 | 1 ora | Un buon valore standard per la maggior parte dei record |
| 14400 | 4 ore | Record che cambiano raramente |
| 86400 | 1 giorno | Record che quasi non cambiano mai, come i record NS |
Il TTL è un numero compreso tra 0 e 2.147.483.647 secondi (2^31 - 1, così è indicato nella RFC 2181). Nella pratica raramente si incontrano valori superiori a un giorno o due. Molti resolver applicano anche un proprio massimo, spesso un giorno o una settimana.
Il conto alla rovescia
Il TTL non è un orologio fisso valido per tutto il mondo. Ogni resolver inizia a contare solo nel momento in cui recupera il record.
Un esempio. Il record A di example.com ha TTL 3600.
- Alle 10:00 il resolver del provider A richiede il record. Riceve
192.0.2.10e può ricordarlo fino alle 11:00. - Alle 10:40 il resolver del provider B lo richiede. Lo ricorda fino alle 11:40.
- Alle 10:45 Lei modifica il record impostandolo su
198.51.100.10. - Gli utenti del provider A vedono il nuovo indirizzo a partire dalle 11:00, quelli del provider B solo a partire dalle 11:40.
Se richiede il record a un resolver che lo ha già in cache, nell'output vedrà un TTL che diminuisce progressivamente. Presso il nameserver autoritativo vedrà sempre il valore pieno:
; presso il nameserver autoritativo
example.com. 3600 IN A 192.0.2.10
; presso un resolver, 25 minuti dopo
example.com. 2100 IN A 192.0.2.10È utile saperlo: se presso il Suo resolver vede ancora 2100 secondi, significa che fornirà ancora la vecchia risposta per 35 minuti.
Chi ricorda tutto questo?
Non solo il resolver del Suo provider internet ha una cache. Ci sono più livelli:
- Il resolver del Suo provider, della Sua rete aziendale o un resolver pubblico (ad esempio 1.1.1.1, 8.8.8.8 o 9.9.9.9).
- Il Suo router a casa o in ufficio, che spesso funge esso stesso da piccolo resolver.
- Il sistema operativo del Suo computer o telefono.
- Il Suo browser, che a volte conserva per un po' anche le risposte DNS.
Ogni livello in linea di principio rispetta il TTL, ma non tutti lo fanno in modo preciso. Per questo sul Suo computer portatile potrebbe volerci un po' più di tempo rispetto a un Suo collega. Come svuotare queste cache lo trova nella lezione 6.2.
Scegliere il TTL giusto
Un TTL breve sembra comodo: le modifiche diventano rapidamente visibili ovunque. Ma c'è uno svantaggio. I resolver devono allora richiedere il record molto più spesso. Questo rende il primo caricamento del Suo sito leggermente più lento, e se i Suoi nameserver sono temporaneamente irraggiungibili, il Suo dominio diventa più rapidamente non raggiungibile. Con un TTL di un'ora i resolver possono superare un breve disservizio del nameserver grazie alla propria cache.
Alcune regole pratiche:
- Standard: 3600 secondi. È un buon equilibrio.
- Per una modifica pianificata: temporaneamente 300. Abbassi il TTL almeno un vecchio TTL prima della modifica. Se era impostato a 3600, lo faccia almeno un'ora prima, meglio ancora un giorno prima. Se era impostato a 86400, lo faccia almeno un giorno prima. Dopo la modifica, lo riporti al valore originale. Come affrontare questo durante un trasferimento lo trova nella lezione 6.3.
- Un valore inferiore a 60 secondi ha poco senso. Alcuni resolver ignorano TTL molto brevi e applicano un proprio minimo.
- Abbassare un TTL funziona solo dopo che il vecchio TTL è scaduto. Se abbassa il TTL da 86400 a 300 e subito dopo modifica l'indirizzo, i resolver che avevano appena recuperato il record manterranno il vecchio valore ancora per un'intera giornata.
Quest'ultimo punto è l'errore più comune commesso con i TTL. Il nuovo TTL, più breve, deve prima di tutto raggiungere tutte le cache.
Nella pratica: ecco come appare in un pannello
Nel pannello di esempio DirectAdmin il TTL è presente come colonna separata in Amministrazione DNS. Può modificare il TTL di un singolo record con la matita accanto a quel record. Con il pulsante SOSTITUISCI VALORE TTL imposta un unico TTL per tutti i record del dominio contemporaneamente. In Mio WebOké vede il TTL nell'elenco dei record nella scheda DNS e lo sceglie nella finestra in cui aggiunge o modifica un record.
Altri pannelli funzionano in modo simile: in cPanel, Plesk, Cloudflare e nella maggior parte dei registrar il campo si chiama anch'esso TTL. A volte si sceglie da un elenco (ad esempio "5 minuti", "1 ora", "Auto") invece di digitare un numero in secondi. Su Cloudflare "Auto" per i record senza proxy significa 300 secondi.
Riepilogo
- Il TTL determina per quanti secondi una risposta DNS può rimanere in una cache.
- Ogni resolver conta dal momento in cui ha recuperato il record; per questo non tutti vedono una modifica contemporaneamente.
- Presso il nameserver autoritativo vede il TTL pieno, presso un resolver un valore in diminuzione.
- 3600 è un buon valore standard; abbassi temporaneamente a 300 prima di una modifica pianificata, e lo faccia almeno un vecchio TTL in anticipo.
Quiz
Esercizio
Esercizio Z6.1: TTL alla fonte e presso il resolver. Cerchi con uno strumento DNS online o con dig il TTL del record A di sidn.nl (il sito di SIDN, il registro di .nl nei Paesi Bassi), direttamente presso uno dei nameserver di sidn.nl stesso (ad esempio ns1.sidn.nl). Inserisca il TTL in secondi. Successivamente richieda lo stesso record presso un resolver pubblico e inserisca anche quel TTL. Spieghi in una frase perché i due numeri possono differire.
dig A sidn.nl @ns1.sidn.nl
dig A sidn.nl @9.9.9.9Esercizio O6.1: Impostare Lei stesso nella Sua zona di esercitazione. Nella Sua zona di esercitazione è già presente un record A <code>.dnspractice.euttl-test. che punta a <code>.dnspractice.eu192.0.2.61, con un TTL di 300 secondi. Abbassi il TTL a 60 secondi, come farebbe prima di un trasferimento, e lasci l'indirizzo invariato. Verifichi poi con dig presso il nameserver della zona di esercitazione se il nuovo TTL è presente. Consegni quando il TTL è 60.
La zona di esercitazione usa TTL brevi (tra 30 e 300 secondi), in modo che non debba attendere; sul Suo dominio reale usi ad esempio 3600 come standard e 300 poco prima di una modifica.
Esercizio O6.1
Questo esercizio lo svolge nella Sua zona di esercitazione: una vera zona DNS sui nameserver di WebOké, solo per Lei. Si registri con il Suo indirizzo email. Riceverà un link di accesso via email e tornerà poi a questa lezione. Usiamo il Suo indirizzo solo per il corso.
Per saperne di più
I passaggi descritti in questi articoli si riferiscono ai pannelli di WebOké; in altri pannelli il funzionamento è simile.
- Guida DirectAdmin 5.11: Quando diventa effettiva una modifica? Tempo di attesa e TTL
- Guida DirectAdmin 5.2: Aprire Amministrazione DNS e leggere i record
- Quanto tempo richiede una modifica dei nameserver o del DNS, e cosa fare se non la vede?
- Guida WebOké 5.4: Gestione del DNS: aggiungere, modificare ed eliminare record
