DNS TTL (Time to Live) is a record setting that controls how long resolvers cache DNS responses in seconds before they must query the authoritative server again, with each resource record carrying its own configurable TTL value set by zone administrators. The metric represents a fundamental trade-off between performance and agility—longer TTLs reduce query volume and lookup latency at scale but delay propagation of changes, while shorter TTLs accelerate updates but increase authoritative server load and reduce resilience during outages. Common operational challenges include stale cached answers when TTL values are not reduced before planned changes, resolver-level overrides that diverge from published settings, and inconsistent TTLs across related records that cause unpredictable behavior and complicate troubleshooting.
Cómo funciona el TTL del DNS
Cada registro de recurso DNS lleva un valor TTL en segundos, establecido por el administrador de la zona autoritativa. Los resolutores utilizan ese valor para decidir cuánto tiempo permanece válida una respuesta almacenada.
- Respuesta autoritativa: un resolutor recursivo consulta al servidor autoritativo, que devuelve el registro junto con su TTL configurado, por ejemplo, 3600 segundos.
- Almacenamiento en caché: el resolutor almacena el registro y comienza a contar el TTL a la baja a partir de su valor original.
- Aciertos en la caché: mientras el TTL se mantenga por encima de cero, el resolutor responde a las consultas del cliente que coincidan con las que tiene almacenadas en su caché. El TTL que aparece en cada respuesta indica los segundos restantes, no el valor original.
- Caducidad: Cuando el TTL llega a cero, el resolutor elimina el registro de la caché.
- Actualización: la siguiente consulta coincidente hace que el resolutor vuelva a consultar al servidor autoritativo, lo que restablece el TTL completo.
Las cachés de varias capas, como el sistema operativo, el navegador y los resolutores de reenvío, aplican cada una su propio tiempo de cuenta atrás, por lo que un cambio puede tardar más de un TTL en hacerse visible en todas partes. Las respuestas negativas, como los nombres inexistentes, también se almacenan en caché, y su vida útil viene determinada por el registro SOA, tal y como se describe en el RFC 2308. Algunos resolutores aplican límites mínimos o máximos que anulan el TTL publicado.
Problemas habituales con el TTL del DNS
Se modificaun registro, pero algunos clientes siguen accediendo a la dirección antigua hasta que caducan las copias almacenadas en caché. La causa suele ser un TTL prolongado que se mantuvo en vigor en el momento del cambio, y el retraso puede durar tanto como el TTL anterior.
Un administrador reduce el TTL el mismo día de la migración y espera que el efecto sea inmediato. Los resolutores que hayan almacenado en caché el registro con el valor anterior seguirán conservándolo hasta que expire el TTL anterior, por lo que la reducción debe realizarse al menos un periodo de TTL anterior antes del cambio.
Los valores muy bajos, como unos pocos segundos, aumentan el volumen de consultas a los servidores autoritativos y añaden latencia a las búsquedas. Durante una interrupción del servicio autoritativo, los resolutores disponen de pocos datos almacenados en caché a los que recurrir, por lo que el fallo llega rápidamente a los usuarios.
Se espera que los registros del mismo conjunto, como varios registros A para un mismo nombre, compartan un mismo TTL. Los valores que no coincidan pueden provocar que los resolutores se comporten de forma impredecible y dificultar la resolución de problemas, ya que las respuestas divergen a medida que las cachés caducan en momentos diferentes.
Algunos resolutores con almacenamiento en caché aplican límites mínimos o máximos de TTL, por lo que el comportamiento observado difiere de la configuración de la zona. Los ingenieros observan que los datos antiguos persisten más allá del TTL publicado, o que un registro se actualiza antes de lo esperado, y deben comprobar la configuración del resolutor, además de la de la zona.