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:

Browser Cache (seconds to minutes)

OS Cache (seconds to minutes)

Local Resolver Cache (minutes to hours)

ISP Resolver Cache (minutes to hours)

Authoritative Name Server (source of truth)

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 in seconds (5 minutes)

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é
# View cache

ipconfig /displaydns

# Flush cache

ipconfig /flushdns

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

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Linux: Varía según el sistema, a menudo systemd-resolved
# Flush systemd-resolved cache

sudo systemd-resolve --flush-caches

# Check statistics

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

Query 1: example.com

→ Full lookup: 50ms

→ Cached for 300s (TTL)

Query 2: example.com (1 minute later)

→ Cache hit: 1ms

Query 3: example.com (10 minutes later)

→ Cache expired, full lookup: 50ms

→ Re-cached for 300s

Actualización de registro DNS

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

Time: 10:00 - DNS updated to 203.0.113.51

Client queries at 10:02

→ Still cached: 203.0.113.50 (expires 10:05)

Client queries at 10:06

→ Cache expired, new lookup: 203.0.113.51

→ Cached until 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:

Day -7: example.com TTL 3600s (1 hour)

Day -2: Reduce to 300s (5 minutes)

Day 0: Make DNS change

→ Max 5 minute cache retention

Day +1: Restore TTL to 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

# Check Console.app for logs

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

Probar comportamiento de caché

# First query (cache miss)

time dig example.com

# Immediate repeat (cache hit)

time dig example.com

# Compare times

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é:

Query: newsubdomain.example.com

Response: NXDOMAIN (does not exist)

Cached: 3600s (SOA minimum TTL)

Result: New subdomain won't resolve for 1 hour

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:
Navigate to: chrome://net-internals/#dns

Click: "Clear host cache"

Firefox:
Toggle network.dnsCacheExpiration in about:config

Or restart browser

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é

Precarga

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

<!-- Hint to browser -->

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

Cache Warming: precalentamiento de caché

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.