DNS TTL (Time to Live) is a record setting that controls how long resolvers cache DNS responses in seconds before discarding them, with each resource record carrying its own TTL value set by the authoritative zone administrator. TTL represents a fundamental trade-off between performance and agility: longer values reduce query load and latency for users at scale but delay change propagation, while shorter values enable faster updates but increase server load and reduce resilience during outages. Common operational challenges include insufficient planning for cached TTL during migrations, premature TTL reduction, and resolver-level TTL overrides that can cause unexpected behavior diverging from zone configuration.
So funktioniert die DNS-TTL
Jeder DNS-Ressourceneintrag enthält einen TTL-Wert in Sekunden, der vom Administrator der autoritativen Zone festgelegt wird. Resolver verwenden diesen Wert, um zu entscheiden, wie lange eine gespeicherte Antwort gültig bleibt.
- Autoritative Antwort: Ein rekursiver Resolver fragt den autoritativen Server ab, der den Eintrag zusammen mit seiner konfigurierten TTL zurückgibt, beispielsweise 3600 Sekunden.
- Cache-Speicherung: Der Resolver speichert den Eintrag und beginnt, die TTL vom ursprünglichen Wert herunterzuzählen.
- Cache-Treffer: Solange die TTL über Null liegt, beantwortet der Resolver passende Client-Anfragen aus seinem Cache. Die TTL in jeder Antwort gibt die verbleibenden Sekunden an, nicht den ursprünglichen Wert.
- Ablauf: Wenn die TTL den Wert Null erreicht, entfernt der Resolver den Eintrag aus dem Cache.
- Aktualisierung: Bei der nächsten passenden Anfrage fragt der Resolver erneut beim autoritativen Server nach, wodurch die volle TTL wiederhergestellt wird.
Caches auf verschiedenen Ebenen, wie z. B. im Betriebssystem, im Browser und in weiterleitenden Resolvern, wenden jeweils ihren eigenen Countdown an, sodass es länger als eine TTL dauern kann, bis eine Änderung überall sichtbar wird. Auch negative Antworten, wie z. B. nicht existierende Namen, werden zwischengespeichert, wobei ihre Lebensdauer durch den SOA-Eintrag gemäß RFC 2308 geregelt wird. Einige Resolver wenden Mindest- oder Höchstgrenzen an, die die veröffentlichte TTL außer Kraft setzen.
Häufige Probleme mit der DNS-TTL
Ein Eintrag wurde geändert, doch einige Clients greifen weiterhin auf die alte Adresse zu, bis die zwischengespeicherten Kopien ablaufen. Die Ursache ist in der Regel eine lange TTL, die zum Zeitpunkt der Änderung beibehalten wurde, und die Verzögerung kann so lange andauern wie die alte TTL.
Ein Administrator verkürzt die TTL am Tag einer Migration und erwartet eine sofortige Wirkung. Resolver, die den Eintrag mit dem alten Wert zwischengespeichert haben, behalten ihn jedoch noch bis zum Ablauf der alten TTL bei; daher muss die Verkürzung mindestens eine alte TTL-Periode vor der Änderung erfolgen.
Sehr niedrige Werte, wie beispielsweise wenige Sekunden, erhöhen das Abfragevolumen an autoritative Server und verlängern die Latenz bei der Suche. Während eines Ausfalls eines autoritativen Servers können Resolver nur auf wenige zwischengespeicherte Daten zurückgreifen, sodass die Störung die Nutzer schnell erreicht.
Einträge derselben Gruppe, wie beispielsweise mehrere A-Einträge für einen Namen, sollten dieselbe TTL haben. Abweichende Werte können dazu führen, dass sich Resolver unvorhersehbar verhalten und die Fehlerbehebung erschweren, da die Antworten voneinander abweichen, wenn die Caches zu unterschiedlichen Zeitpunkten ablaufen.
Einige cachingfähige Resolver wenden Mindest- oder Höchstgrenzen für die TTL an, sodass das beobachtete Verhalten von der Zonenkonfiguration abweicht. Techniker stellen fest, dass alte Daten über die veröffentlichte TTL hinaus bestehen bleiben oder dass ein Eintrag früher als erwartet aktualisiert wird, und müssen daher sowohl die Resolver-Einstellungen als auch die Zone überprüfen.