TTL — Time To Live
Πόση ώρα μπορεί να κρατήσει cached ένα DNS record ένας resolver, σε δευτερόλεπτα.
Τι είναι το TTL
Το TTL (Time To Live) είναι ένας αριθμός σε δευτερόλεπτα που δηλώνει πόση ώρα επιτρέπεται σε έναν DNS resolver να κρατήσει cached μια απάντηση. Όταν λήξει το TTL, ο resolver «ξεχνά» την τιμή και την ξανα-ζητά από τον authoritative nameserver.
Παράδειγμα
example.com. 3600 IN A 93.184.216.34
Εδώ το TTL είναι 3600 δευτερόλεπτα — μία ώρα. Όποιος resolver λάβει αυτή την απάντηση
θα τη χρησιμοποιεί για 1 ώρα πριν τη ξαναρωτήσει.
Trade-off: χαμηλό vs υψηλό TTL
| Χαμηλό (60–300s) | Υψηλό (3600–86400s) | |
|---|---|---|
| Propagation αλλαγών | ✅ Γρήγορη | ❌ Αργή |
| DNS load στους NS σου | ❌ Υψηλό | ✅ Χαμηλό |
| Latency για χρήστες | ❌ Πιο συχνά queries | ✅ Cached |
| Failover speed | ✅ Γρήγορο | ❌ Αργό |
Καλές πρακτικές
- Σταθερά records (A του apex, NS, MX): TTL
3600ή86400. - Records που αλλάζουν συχνά (load balancers, geo-routing):
60–300. - Πριν από scheduled migration: κατέβασε το TTL σε
300μερικές ώρες/μέρες πριν, ώστε όταν κάνεις την αλλαγή να γίνει σχεδόν instant. - Μετά τη migration: ξαναβάλε υψηλότερο TTL για να μειώσεις τη DNS κίνηση.
Negative caching (αρνητικό TTL)
Όχι μόνο οι θετικές απαντήσεις cache-άρονται, αλλά και οι αρνητικές (NXDOMAIN: «το όνομα
δεν υπάρχει»). Το TTL για αρνητικά καθορίζεται από το SOA record (παράμετρος
MINIMUM). Αν δημιουργείς νέο subdomain και κάποιος έχει cached το NXDOMAIN, θα
πρέπει να περιμένει το SOA TTL για να το «δει».