Registros PTR y Zonas Inversas
Los registros PTR (Pointer) permiten la resolución inversa de direcciones IP a nombres de dominio. Son cruciales para la reputación de email, seguridad y diagnóstico de red.
Conceptos Básicos
¿Qué es una Búsqueda Inversa?
La resolución inversa traduce una dirección IP en un nombre de dominio:
- Forward DNS:
www.example.com→192.168.1.1 - Reverse DNS:
192.168.1.1→www.example.com
Registros PTR
- Tipo: PTR
- Propósito: Apuntar a un nombre de dominio
- Sintaxis:
dirección_IP.in-addr.arpa. IN PTR nombre_dominio.
Estructura de Zonas Inversas
Zona in-addr.arpa
Para IPv4, las zonas inversas están bajo in-addr.arpa:
- Estructura: Reversa de la IP +
.in-addr.arpa - Ejemplo:
192.168.1.1→1.1.168.192.in-addr.arpa
Delegación de Zonas
Las zonas inversas se delegan por octetos:
- /8: Delegado a RIRs (ARIN, RIPE, etc.)
- /16: ISP o organización grande
- /24: Subred típica
Archivo de Zona Inversa
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023120101 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
; Registros PTR
1 IN PTR host1.example.com.
2 IN PTR host2.example.com.
10 IN PTR mail.example.com.
Configuración en Diferentes Servidores
BIND9
Archivo de zona
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.168.1";
};
Contenido de zona inversa
$ORIGIN 1.168.192.in-addr.arpa.
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023120101 ; Serial
3H ; Refresh
1H ; Retry
1W ; Expire
1D ; Minimum
)
IN NS ns1.example.com.
IN NS ns2.example.com.
1 IN PTR www.example.com.
2 IN PTR mail.example.com.
100 IN PTR dhcp-100.example.com.
Windows DNS Server
- Crear zona inversa: DNS Manager → New Zone → Reverse Lookup Zone
- Tipo: Primary zone
- Red: 192.168.1.0/24
- Añadir registros PTR: Right-click → New Pointer (PTR)
PowerDNS
-- Insertar zona inversa
INSERT INTO domains (name, type) VALUES ('1.168.192.in-addr.arpa', 'MASTER');
-- Insertar registros PTR
INSERT INTO records (domain_id, name, type, content, ttl)
VALUES (
(SELECT id FROM domains WHERE name='1.168.192.in-addr.arpa'),
'1.1.168.192.in-addr.arpa',
'PTR',
'www.example.com',
86400
);
IPv6 Reverse DNS
Zona ip6.arpa
Para IPv6, se usa ip6.arpa en lugar de in-addr.arpa.
Estructura
- Dirección IPv6:
2001:db8:85a3::8a2e:370:7334 - Reverse:
4.3.3.7.0.7.3.0.e.2.a.8.0.0.0.0.0.0.0.0.3.a.5.8.8.b.d.0.1.0.0.2.ip6.arpa
Simplificación
Se expande la dirección a sus 32 dígitos hexadecimales y se invierten nibble a nibble (4 bits); los ceros comprimidos con :: también cuentan:
2001:db8:85a3::8a2e:370:7334
↓
4.3.3.7.0.7.3.0.e.2.a.8.0.0.0.0.0.0.0.0.3.a.5.8.8.b.d.0.1.0.0.2.ip6.arpa
Configuración IPv6 Reverse
$ORIGIN 3.a.5.8.8.b.d.0.1.0.0.2.ip6.arpa.
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023120101
3H
1H
1W
1D
)
IN NS ns1.example.com.
4.3.3.7.0.7.3.0.e.2.a.8.0.0.0.0.0.0.0.0 IN PTR www.example.com.
Importancia para la Reputación
Email Delivery
Los servidores de email verifican PTR para combatir spam:
# Verificar PTR
dig -x 192.168.1.1
# Verificar SPF
dig TXT example.com
# Verificar DKIM
dig TXT dkim._domainkey.example.com
Filtros Antispam
- Hotmail/Outlook: Requiere PTR válido
- Gmail: Usa PTR como factor de reputación
- Spamhaus: Lista IPs sin PTR válido
Mejores Prácticas
- PTR debe resolver:
host IPdebe devolver nombre válido - Consistencia: PTR debe coincidir con A/AAAA records
- Unicidad: Una IP debe tener solo un PTR
- Dominio propio: Usar subdominio propio (mail.example.com)
Diagnóstico y Troubleshooting
Herramientas de Verificación
Comando host
host 192.168.1.1
# Debe devolver: 192.168.1.1.in-addr.arpa domain name pointer mail.example.com
Dig
# Consulta PTR
dig PTR 1.1.168.192.in-addr.arpa
# Consulta inversa simplificada
dig -x 192.168.1.1
Nslookup
nslookup
> set type=PTR
> 1.1.168.192.in-addr.arpa
Problemas Comunes
1. PTR no configurado
;; ANSWER SECTION:
;; No answer
2. Delegación incorrecta
;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 86400 IN NS ns1.isp.com.
3. TTL inconsistente
PTR con TTL diferente al A record puede causar problemas de caché.
Scripts de Monitoreo
#!/bin/bash
# Verificar PTR para rango de IPs
for i in {1..254}; do
ip="192.168.1.$i"
ptr=$(dig -x $ip +short)
if [ -z "$ptr" ]; then
echo "WARNING: No PTR for $ip"
else
echo "OK: $ip -> $ptr"
fi
done
Casos de Uso Avanzados
Load Balancing
PTR para IPs de balanceadores:
10 IN PTR lb1.example.com.
10 IN PTR lb2.example.com. ; No recomendado - solo un PTR por IP
CDN y Hosting Compartido
- Problema: Múltiples dominios en misma IP
- Solución: PTR genérico o subdominios
VPN y Remote Access
PTR para IPs asignadas dinámicamente:
100 IN PTR vpn-user-001.example.com.
101 IN PTR vpn-user-002.example.com.
Seguridad
Consideraciones
- Información leakage: PTR puede revelar estructura interna
- Spoofing: Ataques de DNS spoofing afectan PTR
- Cache poisoning: Ataques a servidores DNS
Mejores Prácticas de Seguridad
- DNSSEC: Firmar zonas inversas
- Split DNS: Zonas internas vs externas diferentes
- Rate limiting: Limitar consultas inversas
- Monitoreo: Alertas de cambios en PTR
Referencias
- RFC 1035: Domain Names – Implementation and Specification
- RFC 2317: Classless IN-ADDR.ARPA delegation
- RFC 3596: DNS Extensions to Support IP Version 6
- RFC 5855: Nameservers for IPv4 and IPv6 Reverse Zones
- BIND 9: manual de referencia
