¿Qué es la propagación DNS?
La propagación DNS es el período durante el cual un cambio publicado por un servidor de nombres autorizado se vuelve visible a través de otros servidores autorizados, resolutores recursivos y cachés locales. El servidor de nombres que publica el cambio puede servir el nuevo registro una vez que lo ha publicado, mientras que otros servidores autorizados aún pueden estar actualizándose y los resolutores recursivos pueden devolver una respuesta antigua almacenada en caché. Los valores TTL orientan la duración del almacenamiento en caché, pero el comportamiento de los resolutores puede variar, por lo que las respuestas obsoletas a veces pueden persistir más allá del TTL nominal.
Entendiendo "Propagación"
El término "propagación" es algo engañoso: los cambios DNS no se "propagan" o distribuyen activamente. En su lugar:
1. Actualizas registros en tu servidor de nombres autorizado
2. Las copias en caché expiran basándose en TTL (Time To Live)
3. Las nuevas consultas obtienen registros actualizados de servidores autorizados
4. Las copias antiguas en caché continúan sirviendo hasta que expira el TTL
Es más preciso decir "expiración de caché DNS" que "propagación", pero el término propagación se usa ampliamente.
Cómo funcionan los cambios DNS
El proceso de actualización
Step 1: Update DNS records
example.com A record: 203.0.113.50 → 203.0.113.51
Step 2: Authoritative nameserver immediately serves new record
Step 3: Existing cached copies remain valid until TTL expires
Step 4: New queries after TTL expiration receive updated record
Step 5: All caches eventually expire and refresh
→ "Propagation complete"
Ejemplo de línea de tiempo
Time: 10:00 - DNS updated (TTL: 300s / 5 minutes)
Resolver A (cached at 09:58):
09:58 - Cached old IP, expires 10:03
10:03 - Cache expires, queries again, gets new IP
Resolver B (cached at 10:01):
10:01 - Cached old IP, expires 10:06
10:06 - Cache expires, queries again, gets new IP
Resolver C (queries at 10:05):
10:05 - No cache, queries immediately, gets new IP
All resolvers have new IP by: 10:06
Propagation time: 6 minutes (worst case based on TTL)
Factores que afectan el tiempo de propagación
TTL (Time To Live): tiempo de vida
El factor más importante:
| Valor TTL | Tiempo de propagación | Caso de uso |
|---|---|---|
| 60s | 1-2 minutos | Migraciones activas, balanceo de carga |
| 300s (5 min) | 5-10 minutos | Cambios de producción, default razonable |
| 3600s (1 hora) | 1-2 horas | Infraestructura estable |
| 86400s (24 horas) | 24-48 horas | Registros raramente cambiados |
Cambios de servidor de nombres
Cambiar servidores de nombres tarda más que otros cambios DNS:
Registry Level: 24-48 hours (TLD nameserver cache)
Resolver Level: Based on NS record TTL
Total Time: Up to 48 hours worst case
Comportamiento de ISP y resolver
No todos los resolutores DNS respetan los valores TTL:
Resolutores bien comportados: Google (8.8.8.8), Cloudflare (1.1.1.1), OpenDNS- Respetan estrictamente el TTL
- Propagación rápida
- Pueden ignorar TTLs bajos
- Almacenan en caché más tiempo que lo especificado
- Pueden retrasar la propagación por horas
Distribución geográfica
Diferentes regiones se actualizan en diferentes momentos basándose en caché del resolver local:
North America: 10:05 - Updated
Europe: 10:08 - Updated
Asia: 10:12 - Updated
Almacenamiento en caché del lado del cliente
Incluso después de que los servidores DNS se actualicen, las cachés locales pueden retener valores antiguos:
- Caché del navegador: 60 segundos típicamente
- Caché del SO: Minutos a horas
- Caché de aplicación: Varía según la aplicación
Comprobar propagación DNS
Verificadores de propagación en línea
whatsmydns.net: Muestra resolución DNS desde 20+ ubicaciones en todo el mundo dnschecker.org: Verifica registros A, AAAA, CNAME, MX, TXT globalmente DomScan Health Check:curl "https://domscan.net/v1/health?domain=example.com"
# Shows current DNS configuration
Comprobaciones de línea de comandos
Comprobar múltiples resolutores:# Google DNS
dig @8.8.8.8 example.com
# Cloudflare DNS
dig @1.1.1.1 example.com
# Your ISP (no @ server specified)
dig example.com
# Compare results
Consultar servidor de nombres autorizado directamente:
# Find nameservers
dig example.com NS
# Query authoritative NS directly
dig @ns1.example.com example.com
Esto muestra la "verdad" inmediatamente, sin caché involucrada.
Comprobar desde múltiples ubicaciones
# Using curl with DNS over HTTPS
curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=example.com&type=A'
Minimizar tiempo de propagación
Antes de realizar cambios
Paso 1: Reducir TTL (24-48 horas antes del cambio)Old: example.com. 3600 IN A 203.0.113.50
New: example.com. 300 IN A 203.0.113.50
^^^
Reduced to 5 minutes
Paso 2: Esperar a que expire el TTL anterior
Esperar la duración completa del TTL anterior (3600s = 1 hora)
Paso 3: Realizar cambio DNSexample.com. 300 IN A 203.0.113.51
Paso 4: Monitorizar propagación
Comprobar resolutores globalmente
Paso 5: Restaurar TTL (después de confirmar éxito)example.com. 3600 IN A 203.0.113.51
Durante cambios
Usar DNS anycast: Proveedores como Cloudflare utilizan redes anycast que se actualizan casi instantáneamente en toda su red global Monitorizar continuamente: Rastrear la propagación en regiones clave y resolutores Plan de reversión: Mantener la infraestructura antigua en funcionamiento hasta que la propagación sea completaEscenarios comunes de propagación
Cambiar registro A
Tiempo esperado: 5-30 minutos (basado en TTL)# Before
example.com → 203.0.113.50
# After
example.com → 203.0.113.51
# Propagation: 1x TTL duration
Cambiar registro MX
Tiempo esperado: 5-30 minutos (basado en TTL) Riesgo: El correo puede entregarse al servidor antiguo durante la propagación Mitigación: Mantener servidor de correo antiguo activo durante 24-48 horasCambiar servidores de nombres
Tiempo esperado: 24-48 horasWhy so long?
- TLD registry caches NS records
- Registry TTL often 24-48 hours
- No control over registry cache
Mejor práctica: Configurar todos los registros en nuevos servidores de nombres antes de cambiar
Agregar nuevo subdominio
Tiempo esperado: Instantáneo a 1 hora Trampa: Almacenamiento en caché negativoIf subdomain was queried and didn't exist:
→ NXDOMAIN cached (SOA minimum TTL)
→ New subdomain won't resolve until cache expires
Mitigación: Reducir TTL mínimo de SOA antes de agregar nuevos registros
Solucionar problemas de propagación
Cambio no se está propagando
Comprobación 1: Verificar servidor de nombres autorizadodig @ns1.example.com example.com
# Should show new value
Comprobación 2: Verificar TTL
dig example.com | grep -i ttl
Comprobación 3: Comprobar SOA para caché negativo
dig example.com SOA
# Look at minimum TTL field
Comprobación 4: Vaciar caché local
Limpiar cachés de navegador, SO y aplicación
Propagación parcial
Síntoma: Algunos usuarios ven nuevos registros, otros ven antiguos Causa: Diferentes resolutores almacenados en caché en diferentes momentos Solución: Esperar duración máxima de TTL y luego vaciar cachés del clientePropagación atascada
Síntoma: Días después, algunos resolutores todavía sirven registros antiguos Causa: El resolver del ISP ignora el TTL o está mal configurado Solución:1. Verificar que el servidor de nombres autorizado sea correcto
2. Contactar al ISP si persiste
3. Los usuarios pueden cambiar a DNS público (8.8.8.8, 1.1.1.1)
Propagación DNS vs TTL de caché
| Concepto | Qué es | Duración |
|---|---|---|
| TTL | Cuánto tiempo un registro puede almacenarse en caché | Establecido por propietario de dominio |
| Propagación | Tiempo para que todas las cachés expiren | Aproximadamente 2x TTL |
| TTL del servidor de nombres | Cuánto tiempo se almacenan en caché los registros NS | A menudo 24-48 horas (registro) |
| Caché negativo | Cuánto tiempo se almacena NXDOMAIN en caché | TTL mínimo SOA |
Mejores prácticas
1. Reducir TTL antes de cambios: Reducir TTL 24-48 horas antes de actualizar DNS
2. Usar TTLs apropiados: Balance entre rendimiento (TTL alto) vs flexibilidad (TTL bajo)
3. Monitorizar globalmente: Comprobar DNS desde múltiples regiones geográficas
4. Mantener servicios antiguos ejecutándose: Mantener servidores anteriores hasta que la propagación sea completa
5. Documentar cambios: Rastrear qué cambió y cuándo para solucionar problemas
6. Probar minuciosamente: Verificar que los nuevos registros DNS funcionen antes de cambiar
7. Comunicar con usuarios: Advertir de posibles interrupciones breves
8. Usar DNS gestionado: Los proveedores con redes anycast minimizan el tiempo de propagación
9. Automatizar monitoreo: Configurar alertas para cambios DNS y estado de propagación
10. Plan de reversión: Saber cómo revertir cambios en caso de problemas
Lista de verificación de propagación
☐ Lower TTL 24-48 hours before change
☐ Wait for old TTL to expire
☐ Make DNS change
☐ Verify on authoritative nameservers
☐ Check multiple public resolvers
☐ Test from multiple geographic locations
☐ Monitor for 2x TTL duration
☐ Verify no errors reported
☐ Restore higher TTL if desired
☐ Document change completion
La propagación DNS es una consecuencia natural del almacenamiento en caché DNS: comprender el comportamiento del TTL y planificar cambios en consecuencia garantiza actualizaciones suaves y predecibles con mínimas interrupciones.