Módulo 6 · 6.1
TTL y caché
Módulo 6: Tiempo, caché y transferencia de dominios · Tiempo de lectura: 7 minutos
Objetivo de la lección: Después de esta lección podrá explicar qué es el TTL de un registro, cómo lo usan las cachés y qué TTL elegir en cada situación.
Conceptos clave: TTL (Time To Live), caché, caché del resolver, caché de su ordenador y navegador, cuenta atrás del TTL, valores de TTL habituales (300, 3600, 86400)
Por qué el DNS recuerda
En la lección 1.4 vio cómo un resolver busca una respuesta: primero en un servidor raíz, luego en el servidor del TLD y por último en el servidor de nombres autoritativo del dominio. Si eso tuviera que repetirse cada vez que alguien hace clic en un sitio web, internet sería mucho más lento y los servidores de nombres sucumbirían ante la cantidad de consultas.
Por eso los resolvers recuerdan cada respuesta durante un tiempo. Esa memoria se llama la caché. Si otra persona consulta el mismo nombre, el resolver responde de inmediato desde su caché, sin hacer todo el recorrido.
La pregunta entonces es: ¿durante cuánto tiempo puede el resolver recordar una respuesta? Eso lo determina el titular del dominio mediante el TTL de cada registro.
Qué es el TTL
TTL significa Time To Live: el tiempo que un registro puede permanecer en una caché, en segundos. Cada registro tiene su propio TTL. En una zona se ve así:
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"El número después del nombre es el TTL. Aquí los registros A y MX pueden recordarse durante una hora (3600 segundos) y el registro DMARC durante cuatro horas (14400 segundos).
Valores habituales:
| TTL | Es | ¿Cuándo se usa? |
|---|---|---|
| 300 | 5 minutos | Justo antes y durante una transferencia, o si cambia con frecuencia |
| 3600 | 1 hora | Un buen valor estándar para la mayoría de los registros |
| 14400 | 4 horas | Registros que cambian pocas veces |
| 86400 | 1 día | Registros que casi nunca cambian, como los registros NS |
El TTL es un número entre 0 y 2.147.483.647 segundos (2^31 - 1, según se indica en el RFC 2181). En la práctica, rara vez se encuentra algo por encima de un día o dos. Muchos resolvers también aplican un máximo propio, a menudo un día o una semana.
La cuenta atrás
El TTL no es un reloj fijo para todo el mundo. Cada resolver empieza a contar en el momento en que obtiene el registro.
Un ejemplo. El registro A de example.com tiene TTL 3600.
- A las 10:00 el resolver del proveedor A consulta el registro. Recibe
192.0.2.10y puede recordarlo hasta las 11:00. - A las 10:40 el resolver del proveedor B lo consulta. Lo recuerda hasta las 11:40.
- A las 10:45 usted modifica el registro a
198.51.100.10. - Los usuarios del proveedor A ven la nueva dirección a partir de las 11:00, los del proveedor B no hasta las 11:40.
Si consulta el registro en un resolver que ya lo tiene en su caché, verá en la salida un TTL que va disminuyendo. En el servidor de nombres autoritativo siempre verá el valor completo:
; en el servidor de nombres autoritativo
example.com. 3600 IN A 192.0.2.10
; en un resolver, 25 minutos después
example.com. 2100 IN A 192.0.2.10Es útil saberlo: si en su resolver aún aparece 2100 segundos, significa que seguirá dando la respuesta antigua durante 35 minutos más.
¿Quién recuerda, en total?
No solo el resolver de su proveedor de internet tiene una caché. Hay más capas:
- El resolver de su proveedor, de la red de su empresa, o un resolver público (por ejemplo 1.1.1.1, 8.8.8.8 o 9.9.9.9).
- Su router en casa o en la oficina, que a menudo funciona también como un pequeño resolver.
- El sistema operativo de su ordenador o teléfono.
- Su navegador, que a veces también guarda las respuestas DNS durante un tiempo.
En principio, cada capa respeta el TTL, pero no todas lo hacen con exactitud. Por eso en su portátil puede tardar un poco más que en el de un compañero. Cómo vaciar esas cachés lo verá en la lección 6.2.
Elegir el TTL adecuado
Un TTL corto parece práctico: los cambios se ven rápidamente en todas partes. Pero tiene un inconveniente. Los resolvers deben volver a consultar el registro con mucha más frecuencia. Eso hace que la primera carga de su sitio sea una fracción más lenta, y si sus servidores de nombres no están disponibles durante un momento, su dominio se vuelve inaccesible antes. Con un TTL de una hora, los resolvers pueden salvar una interrupción breve del servidor de nombres gracias a su caché.
Algunas reglas prácticas:
- Estándar: 3600 segundos. Es un buen equilibrio.
- Para un cambio planificado: temporalmente 300. Reduzca el TTL al menos un TTL antiguo antes del cambio. Si estaba en 3600, hágalo al menos una hora antes, mejor aún un día antes. Si estaba en 86400, hágalo al menos un día antes. Después del cambio, vuelva a ponerlo como estaba. Cómo abordar esto en una transferencia lo verá en la lección 6.3.
- Por debajo de 60 segundos tiene poco sentido. Algunos resolvers ignoran los TTL muy cortos y aplican un mínimo propio.
- Reducir un TTL solo funciona una vez que el TTL antiguo ha expirado. Si reduce el TTL de 86400 a 300 y a continuación cambia la dirección de inmediato, los resolvers que acababan de obtener el registro conservarán el valor antiguo durante todo un día más.
Ese último punto es el error más común con los TTL. El nuevo TTL, más corto, primero debe llegar a todas las cachés.
En la práctica: así se ve en un panel
En el panel de ejemplo DirectAdmin, el TTL aparece como una columna aparte en Administración de DNS. Se modifica el TTL de un registro con el lápiz situado junto a ese registro. Con el botón ANULAR VALOR TTL se establece un único TTL para todos los registros del dominio a la vez. En Mi WebOké verá el TTL en la lista de registros de la pestaña DNS y lo elegirá en la ventana en la que añade o edita un registro.
Otros paneles funcionan de forma parecida: en cPanel, Plesk, Cloudflare y la mayoría de los registradores el campo también se llama TTL. A veces elige de una lista (por ejemplo, "5 minutos", "1 hora", "Automático") en lugar de escribir un número en segundos. En Cloudflare, "Automático" significa 300 segundos para los registros sin proxy.
Resumen
- El TTL determina durante cuántos segundos puede permanecer una respuesta DNS en una caché.
- Cada resolver cuenta desde el momento en que obtuvo el registro; por eso no todo el mundo ve un cambio al mismo tiempo.
- En el servidor de nombres autoritativo verá el TTL completo, en un resolver un valor que va disminuyendo.
- 3600 es un buen valor estándar; redúzcalo temporalmente a 300 antes de un cambio planificado, y hágalo al menos un TTL antiguo de antelación.
Cuestionario
Ejercicio
Ejercicio Z6.1: TTL en el origen y en el resolver. Con una herramienta DNS en línea o con dig, busque el TTL del registro A de sidn.nl, directamente en uno de los servidores de nombres del propio sidn.nl (por ejemplo ns1.sidn.nl). Anote el TTL en segundos. A continuación consulte el mismo registro en un resolver público y anote también ese TTL. Explique en una frase por qué los dos números pueden diferir.
dig A sidn.nl @ns1.sidn.nl
dig A sidn.nl @9.9.9.9Ejercicio O6.1: Configúrelo usted mismo en su zona de práctica. En su zona de práctica ya existe un registro A <code>.dnspractice.euttl-test. que apunta a <code>.dnspractice.eu192.0.2.61, con un TTL de 300 segundos. Reduzca el TTL a 60 segundos, como haría antes de una transferencia, y deje la dirección sin cambios. Después, compruebe con dig en el servidor de nombres de la zona de práctica si aparece el nuevo TTL. Entregue cuando el TTL sea 60.
La zona de práctica usa TTL cortos (entre 30 y 300 segundos), para que no tenga que esperar; en su dominio real usaría, por ejemplo, 3600 como valor estándar y 300 justo antes de un cambio.
Ejercicio O6.1
Realizará este ejercicio en su propia zona de práctica: una zona DNS real en los servidores de nombres de WebOké, solo para usted. Regístrese con su dirección de correo electrónico. Recibirá un enlace de acceso por correo y volverá después a esta lección. Solo usamos su dirección para el curso.
Para seguir leyendo
Los pasos de estos artículos se refieren a los paneles de WebOké; en otros paneles el funcionamiento es parecido.
- Manual de DirectAdmin 5.11: ¿Cuándo surte efecto un cambio? Tiempo de espera y TTL
- Manual de DirectAdmin 5.2: Abrir la Administración de DNS y leer los registros
- ¿Cuánto tarda un cambio de nameserver o DNS, y qué hacer si no lo ve?
- Manual de WebOké 5.4: Gestionar el DNS: añadir, modificar y eliminar registros
