Caché DNS

Protocolos y Estándares
Almacenamiento temporal de resultados de consultas DNS por resolutores o clientes para acelerar búsquedas repetidas.
← Volver al Glosario

¿Qué es una Caché DNS?

El almacenamiento en caché DNS es el almacenamiento temporal de resultados de consultas DNS por resolutores, sistemas operativos, navegadores y aplicaciones. Cuando se realiza una búsqueda DNS, el resultado se almacena en caché durante un período definido por el TTL (Time To Live) del registro, lo que permite que las solicitudes posteriores del mismo dominio se respondan instantáneamente sin consultar servidores autorizados.

Por qué importa el almacenamiento en caché DNS

Sin almacenamiento en caché, cada solicitud web requeriría una búsqueda DNS completa, agregando latencia y generando un tráfico DNS masivo. El almacenamiento en caché DNS proporciona:

Cómo funciona el almacenamiento en caché DNS

La jerarquía de almacenamiento en caché

El almacenamiento en caché DNS ocurre en múltiples niveles:

Navegador Cache (segundos a minutos)

OS Cache (segundos a minutos)

Local Resolver Cache (minutos a horas)

ISP Resolver Cache (minutos a horas)

Authoritative Name Server (fuente de verdad)

Proceso de búsqueda en caché

1. El usuario solicita example.com

2. El navegador comprueba su caché

3. Si no está, el OS comprueba su caché

4. Si no está, el resolver comprueba su caché

5. Si no está, consulta recursiva a servidores autorizados

6. El resultado se almacena en caché en cada nivel según el TTL

7. La respuesta se devuelve al usuario

Expiración basada en TTL

Cada registro DNS incluye un valor TTL:

example.com.    300    IN    A    203.0.113.50

^^^

TTL en segundos (5 minutos)

Las cachés almacenan este registro durante 300 segundos y luego lo descartan. La siguiente consulta activa una búsqueda nueva.

Capas de caché DNS

Caché del navegador

Los navegadores modernos almacenan resultados DNS de forma independiente:

Chrome: Utiliza su propia caché DNS (chrome://net-internals/#dns) Firefox: Mantiene caché interna (about:networking#dns) Safari: Utiliza el resolver del sistema

TTL típico de caché del navegador: 60 segundos (independientemente del TTL de DNS)

Caché del sistema operativo

Windows: El servicio DNS Client almacena resultados en caché
# Ver caché

ipconfig /displaydns

# Vaciar caché

ipconfig /flushdns

macOS: mDNSResponder maneja el almacenamiento en caché
# Vaciar caché (macOS 10.15+)

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Linux: Varía según el sistema, a menudo systemd-resolved
# Vaciar caché de systemd-resolved

sudo systemd-resolve --flush-caches

# Comprobar estadísticas

sudo systemd-resolve --statistics

Caché del resolver

Los resolutores DNS recursivos (ISP DNS, 8.8.8.8, 1.1.1.1) mantienen cachés grandes que sirven a millones de usuarios:

ResolverEstrategia de caché
Google (8.8.8.8)Respeta TTL, caché global
Cloudflare (1.1.1.1)Respeta TTL, distribuido
Resolutores de ISPPueden ignorar TTLs bajos

Ejemplos de comportamiento de caché

Operación normal

Consulta 1: example.com

→ Búsqueda completa: 50ms

→ Almacenada en caché durante 300s (TTL)

Consulta 2: example.com (1 minuto después)

→ Acierto de caché: 1ms

Consulta 3: example.com (10 minutos después)

→ Caché expirada, búsqueda completa: 50ms

→ Re-almacenada en caché durante 300s

Actualización de registro DNS

Original: example.com → 203.0.113.50 (TTL: 300s)

Hora: 10:00 - DNS actualizado a 203.0.113.51

Cliente consulta a las 10:02

→ Todavía en caché: 203.0.113.50 (expira 10:05)

Cliente consulta a las 10:06

→ Caché expirada, nueva búsqueda: 203.0.113.51

→ Almacenada en caché hasta 10:11

Estrategia de TTL y almacenamiento en caché

Elegir valores TTL

Caso de usoTTL recomendadoRazonamiento
Infraestructura estática3600-86400s (1-24 horas)Rara vez cambia, reduce carga DNS
Sitio web de producción300-1800s (5-30 minutos)Balance entre rendimiento y flexibilidad
Migración activa60-300s (1-5 minutos)Propagación más rápida durante cambios
Balanceo de carga60-120sConmutación rápida cuando cambian servidores

Reducción de TTL previa a la migración

Mejor práctica cuando se planean cambios DNS:

Día -7: example.com TTL 3600s (1 hora)

Día -2: Reducir a 300s (5 minutos)

Día 0: Realizar cambio DNS

→ Retención máxima de caché de 5 minutos

Día +1: Restaurar TTL a 3600s

Envenenamiento de caché y seguridad

Ataque de envenenamiento de caché DNS

Los atacantes intentan inyectar registros DNS falsos en las cachés:

1. El atacante inunda el resolver con respuestas falsas

2. Si uno coincide con una consulta pendiente, se almacena en caché

3. Los usuarios reciben una IP maliciosa para un dominio legítimo

4. El envenenamiento en caché se sirve a muchos usuarios

Mitigaciones de seguridad

DNSSEC: Registros firmados criptográficamente previenen el envenenamiento
example.com.    IN    A      203.0.113.50

IN RRSIG A 8 2 300 ...

Aleatorización de puerto de origen: Hace que las respuestas sean más difíciles de falsificar Codificación 0x20: Mayúsculas aleatorias en consultas ayuda en la validación Seguridad del resolver: Utiliza resolutores acreditados (Cloudflare, Google, Quad9)

Comprobar caché DNS

Ver contenidos de caché

Windows:
ipconfig /displaydns | more
macOS (información limitada):
sudo killall -INFO mDNSResponder

# Ver Console.app para registros

Linux (systemd-resolved):
sudo systemd-resolve --statistics

Probar comportamiento de caché

# Primera consulta (fallo de caché)

time dig example.com

# Repetición inmediata (acierto de caché)

time dig example.com

# Comparar tiempos

Problemas relacionados con caché

Caché obsoleta después del cambio DNS

Problema: Los registros DNS actualizados no se reflejan para los usuarios Solución:

1. Esperar a que expire el TTL

2. Reducir el TTL antes de cambios futuros

3. Pedir a los usuarios que vacíen la caché local

Almacenamiento en caché demasiado agresivo

Algunos ISP ignoran TTL y almacenan en caché más tiempo:

Problema: Los cambios tardan horas/días en propagarse Solución:

Almacenamiento en caché negativo

Las búsquedas fallidas (NXDOMAIN) también se almacenan en caché:

Consulta: newsubdomain.example.com

Respuesta: NXDOMAIN (no existe)

Almacenada en caché: 3600s (TTL mínimo SOA)

Resultado: El nuevo subdominio no se resolverá durante 1 hora

Solución: Reducir TTL mínimo de SOA antes de agregar nuevos registros

Vaciar caché DNS

Cuándo vaciar

Cómo vaciar

Windows:
ipconfig /flushdns
macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux (systemd-resolved):
sudo systemd-resolve --flush-caches
Chrome:
Navegar a: chrome://net-internals/#dns

Hacer clic en: "Clear host cache"

Firefox:
Alternar network.dnsCacheExpiration en about:config

O reiniciar navegador

Mejores prácticas

1. Establecer TTLs apropiados: Balance entre rendimiento y velocidad de cambio

2. Reducir TTL antes de cambios: Reducir TTL 24-48 horas antes de actualizar DNS

3. Monitorizar propagación: Usar herramientas para verificar resolución DNS global

4. Documentar comportamiento de caché: Comprender las capas de almacenamiento en caché de la infraestructura

5. Usar DNSSEC: Proteger contra envenenamiento de caché

6. Probar minuciosamente: Verificar que los cambios DNS funcionan según lo esperado antes de dar por finalizado

7. Educar a los usuarios: Proporcionar instrucciones claras para vaciar caché cuando sea necesario

Conceptos avanzados de almacenamiento en caché

Prefetching

Los navegadores y resolutores pueden hacer prefetch de DNS para enlaces en una página:

<!-- Sugerencia al navegador -->

<link rel="dns-prefetch" href="//cdn.example.com">

Cache Warming

Los balanceadores de carga y CDN pueden rellenar cachés previamente para registros críticos.

Anycast y almacenamiento en caché

DNS anycast encamina consultas al servidor más cercano, creando cachés distribuidas geográficamente para un rendimiento óptimo.

El almacenamiento en caché DNS es fundamental para el rendimiento de internet: comprender y configurar adecuadamente los TTLs garantiza que los cambios DNS se propaguen eficientemente mientras se mantienen tiempos de resolución rápidos.

Pon Este Conocimiento en Práctica

Usa la API de DomScan para comprobar disponibilidad de dominios, estado y mucho más.