¿Qué es una Zona DNS?
Una zona DNS es una porción distinta del espacio de nombres DNS que es gestionada por una organización o administrador específico. Una zona contiene registros DNS para uno o más dominios y es servida por servidores de nombres autoritativos. Mientras que un dominio es un nombre en el árbol DNS, una zona es un límite administrativo que define qué servidores de nombres son responsables de responder consultas.
Dominio vs Zona
Entender la distinción es crucial:
Dominio
Un dominio es un nombre en la jerarquía DNS:
example.com (domain)
└── www.example.com (subdomain)
└── blog.example.com (subdomain)
└── api.example.com (subdomain)
Zona
Una zona es control administrativo sobre registros:
Zona Única para Dominio y Subdominios:example.com zone contains:
- example.com
- www.example.com
- blog.example.com
- api.example.com
Managed by: ns1.example.com, ns2.example.com
Zona de Subdominio Delegada:
example.com zone contains:
- example.com
- www.example.com
- Delegation: api.example.com → different nameservers
api.example.com zone (separate) contains:
- api.example.com
- v1.api.example.com
- v2.api.example.com
Managed by: ns1.apihost.com, ns2.apihost.com
Componentes de la Zona
Archivo de Zona
Un archivo de texto que contiene todos los registros DNS para una zona:
; example.com zone file
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
; Nameserver records
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
; A records
@ IN A 203.0.113.50
www IN A 203.0.113.50
blog IN A 203.0.113.51
; MX records
@ IN MX 10 mail.example.com.
mail IN A 203.0.113.52
; CNAME records
ftp IN CNAME www.example.com.
; TXT records
@ IN TXT "v=spf1 include:_spf.google.com ~all"
Registro SOA (Inicio de Autoridad)
Cada zona debe tener exactamente un registro SOA:
example.com. IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
Campos SOA:
| Campo | Propósito | Valor Ejemplo |
|---|---|---|
| NS primario | Servidor de nombres maestro | ns1.example.com |
| Correo Admin | Contacto (@ → .) | admin.example.com ([email protected]) |
| Serial | Número de versión de zona | 2024010101 |
| Refresh | Intervalo de verificación NS secundario | 7200s (2 horas) |
| Retry | Intervalo de reintento si refresh falla | 3600s (1 hora) |
| Expire | NS secundario se rinde después de | 1209600s (14 días) |
| Minimum TTL | Duración de caché negativo | 3600s (1 hora) |
Registros NS (Servidores de Nombres)
Especifican qué servidores son autoritativos para la zona:
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
Estos le dicen al mundo qué servidores consultar para registros en esta zona.
Tipos de Zona
Zona Primaria (Maestro)
La fuente autoritativa donde se editan los registros de zona:
ns1.example.com (primary)
→ Zone file edited here
→ Changes made directly
→ Notifies secondaries of updates
Zona Secundaria (Esclava)
Copias de sólo lectura que se replican desde la primaria:
ns2.example.com (secondary)
→ Retrieves zone data from primary
→ Cannot be edited directly
→ Automatically syncs based on SOA refresh interval
Transferencia de Zona (AXFR):
1. Secondary checks SOA serial number
2. If primary serial is higher → request full zone transfer
3. Primary sends entire zone
4. Secondary updates its copy
Transferencia Incremental (IXFR):
1. Secondary requests only changes since last serial
2. Primary sends diff
3. More efficient for large zones with small changes
Zona Directa
Asigna nombres de dominio a direcciones IP (la más común):
example.com → 203.0.113.50
www.example.com → 203.0.113.50
Zona Inversa
Asigna direcciones IP a nombres de dominio (registros PTR):
50.113.0.203.in-addr.arpa → example.com
Usada para:
- Verificación de servidor de correo
- Registro y seguridad
- Solución de problemas
Delegación de Zona
La delegación crea zonas separadas para subdominios:
Zona Primaria (example.com)
; example.com zone
@ IN A 203.0.113.50
www IN A 203.0.113.50
; Delegate api.example.com to different nameservers
api IN NS ns1.apihost.com.
api IN NS ns2.apihost.com.
; Glue records (if needed)
ns1.api IN A 198.51.100.1
ns2.api IN A 198.51.100.2
Zona Delegada (api.example.com)
Archivo de zona completamente separado en servidores de nombres diferentes:
; api.example.com zone (on ns1.apihost.com)
@ IN A 198.51.100.10
v1 IN A 198.51.100.11
v2 IN A 198.51.100.12
¿Por qué Delegar?
- Organizacional: Equipos diferentes gestionan zonas diferentes
- Técnico: Usar proveedores DNS diferentes (p.ej., API en AWS, sitio web en Cloudflare)
- Rendimiento: Distribuir carga DNS
- Seguridad: Aislar servicios sensibles
Gestión de Zona
Gestión de Número de Serie
Los números de serie rastrean versiones de zona (típicamente formato YYYYMMDDnn):
2024010101 ; January 1, 2024, version 01
2024010102 ; January 1, 2024, version 02
2024010201 ; January 2, 2024, version 01
Regla crítica: El serial debe aumentar con cada cambio, o las secundarias no se actualizarán.
Seguridad de Transferencia de Zona
Problema: Las transferencias de zona exponen todos los registros DNS Solución: Restringir transferencias de zona a secundarias autorizadas Configuración BIND:zone "example.com" {
type master;
file "/var/named/example.com.zone";
allow-transfer { 203.0.113.52; 203.0.113.53; }; // Secondary IPs only
notify yes;
};
TSIG (Firma de Transacción): Autenticar transferencias de zona con claves compartidas:
key "transfer-key" {
algorithm hmac-sha256;
secret "base64-encoded-key";
};
allow-transfer { key transfer-key; };
Verificación de Configuración de Zona
Consultar Registro SOA
dig example.com SOA
; ANSWER SECTION:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. (
2024010101 7200 3600 1209600 3600 )
Consultar Registros NS
dig example.com NS
; ANSWER SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
Solicitar Transferencia de Zona (AXFR)
dig @ns1.example.com example.com AXFR
# If allowed, returns entire zone
# If denied, returns transfer failed
La mayoría de servidores de nombres públicos deniegan AXFR para prevenir divulgación de información.
Configuraciones Comunes de Zona
Sitio Web Simple
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
@ MX 10 mail.example.com
mail A 203.0.113.51
@ TXT "v=spf1 mx -all"
Zona Multiservicio
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
blog CNAME hosting.wordpress.com.
shop CNAME shops.myshopify.com.
cdn CNAME d111111abcdef8.cloudfront.net.
@ MX 10 aspmx.l.google.com.
Subdominios Delegados
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
; Delegate api to AWS Route 53
api NS ns-123.awsdns-01.com.
api NS ns-456.awsdns-02.net.
; Delegate cdn to Cloudflare
cdn NS ns1.cloudflare.com.
cdn NS ns2.cloudflare.com.
Mejores Prácticas de Archivo de Zona
1. Siempre incrementar serial: Después de cada cambio, o las secundarias no se actualizarán
2. Usar seriales basados en fecha: Formato YYYYMMDDnn para claridad
3. Restringir transferencias de zona: Permitir sólo secundarias autorizadas
4. Usar múltiples servidores de nombres: Al menos 2, preferiblemente en redes diferentes
5. Establecer TTL apropiados: Equilibrar beneficios de caché vs velocidad de actualización
6. Probar antes de aplicar: Validar sintaxis de archivo de zona antes de cargar
7. Monitorizar transferencias de zona: Asegurar que secundarias se están sincronizando
8. Documentar delegaciones: Anotar qué zonas se delegan y dónde
9. Hacer copia de seguridad de archivos de zona: Copias de seguridad regulares previenen pérdida de datos
10. Usar control de versiones: Rastrear cambios de archivo de zona a lo largo del tiempo
Características Avanzadas de Zona
DNSSEC (Firma de Zona)
Firmar criptográficamente registros de zona:
example.com. IN A 203.0.113.50
example.com. IN RRSIG A 8 2 3600 (
signature-data-here )
Protege contra envenenamiento de caché y manipulación.
DNS Dinámico (DDNS)
Permitir actualizaciones de zona programáticas:
# Update A record dynamically
nsupdate -k Kupdate.key <<EOF
server ns1.example.com
update delete www.example.com A
update add www.example.com 300 A 203.0.113.51
send
EOF
Útil para:
- Actualizaciones de dirección IP de hogar
- Infraestructura de autoescalado
- Descubrimiento de servicios
Vistas de Zona (DNS Split Horizon)
Servir datos de zona diferentes basados en IP del cliente:
Internal clients: example.com → 10.0.0.50 (internal)
External clients: example.com → 203.0.113.50 (public)
Casos de uso:
- Versiones de sitio web internas vs externas
- Recursos de red privada
- Respuestas basadas en geografía
Solución de Problemas de Zona
Fallos de Transferencia de Zona
Síntoma: Secundarias desfasadas Verificar:# Check if primary allows transfers
dig @ns1.example.com example.com AXFR
# Check secondary logs for errors
tail -f /var/log/named.log
Soluciones:
- Verificar configuración de allow-transfer
- Comprobar conectividad de red entre servidores
- Asegurar que número de serie aumentó
Número de Serie No Incrementado
Síntoma: Los cambios no se propagan a secundarias Solución: Siempre incrementar serial con cada edición de zonaDelegación No Funciona
Síntoma: Subdominio no se resuelve Verificar:# Verify delegation
dig example.com NS
dig api.example.com NS
# Should show different nameservers for delegated subdomain
Soluciones:
- Verificar registros NS en zona primaria
- Comprobar registros de pegamento si servidores de nombres están dentro del subdominio
- Confirmar que zona infantil está configurada
Las zonas DNS son la base de la gestión DNS distribuida—entender estructura de zona, delegación y gestión le permite arquitecturar DNS de manera efectiva para organizaciones de cualquier tamaño.