Servidor DNS con BIND9: Configuración de Zona Inversa
1. Qué es una zona inversa? #
Hasta ahora hicimos:
web.lab.local → 192.168.1.50
Eso es resolución directa (registro A).
La zona inversa permite lo contrario:
192.168.1.50 → web.lab.local
Se usa para:
- Logs profesionales
- Servidores de correo (MX)
- Seguridad
- Auditorías
- Herramientas como
ping,traceroute,ssh(a veces)
2. Cómo funciona técnicamente? #
DNS no guarda IPs como normales.
Las invierte y las mete en el dominio especial:
in-addr.arpa
Ejemplo:
IP:
192.168.1.50
Se convierte en:
50.1.168.192.in-addr.arpa
Pero como trabajamos por red /24:
Red:
192.168.1.0/24
La zona será:
1.168.192.in-addr.arpa
3. PASO 1 - Confirmar tu red #
Ejecuta:
1ip a
Si tienes algo como:
inet 192.168.1.50/24
Entonces tu red es:
192.168.1.0/24
Y tu zona inversa será:
1.168.192.in-addr.arpa
4. PASO 2 - Declarar la zona inversa #
Edita:
1sudo nano /etc/bind/named.conf.local
Añade debajo de tu zona directa:
1zone "1.168.192.in-addr.arpa" { 2 type master; 3 file "/etc/bind/db.192.168.1"; 4};
⚠️ Ojo: Si tu red fuera 192.168.0.x sería:
0.168.192.in-addr.arpa
5. PASO 3 - Crear archivo de zona inversa #
1sudo nano /etc/bind/db.192.168.1
Contenido ejemplo (ajusta IP si es distinta):
1$TTL 300 2@ IN SOA ns1.lab.local. admin.lab.local. ( 3 2026021101 4 3600 5 1800 6 604800 7 300 ) 8 9@ IN NS ns1.lab.local. 10 1150 IN PTR web.lab.local.
6. Explicación línea por línea #
7. 7. 50 IN PTR web.lab.local. #
Significa:
192.168.1.50 → web.lab.local
Porque:
- La zona ya representa
192.168.1 - Solo ponemos el último octeto (50)
8. Validar antes de reiniciar #
Muy importante:
1sudo named-checkconf 2sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192.168.1
Si no hay errores:
1sudo systemctl restart bind9
9. Probar desde tu servidor #
1dig -x 192.168.1.50 @127.0.0.1
Debería aparecer:
ANSWER SECTION:
50.1.168.192.in-addr.arpa. 300 IN PTR web.lab.local.
También puedes probar:
1nslookup 192.168.1.50 127.0.0.1
10. Probar desde otro equipo (Windows) #
1nslookup 192.168.1.50 192.168.1.50
Si tu DNS está configurado como principal en el cliente, basta con:
1nslookup 192.168.1.50
11. Mejora profesional (muy recomendable) #
Si tu servidor también es:
- api.lab.local
- db.lab.local
Y apuntan a la misma IP, puedes elegir cuál será el PTR oficial.
⚠️ Buenas prácticas: Solo debería haber un PTR principal por IP.
Normalmente se usa el nombre principal del servidor:
server.lab.local
Y los demás son alias (CNAME).
12. Arquitectura profesional recomendada #
En vez de:
web → 192.168.1.50
api → 192.168.1.50
db → 192.168.1.50
Mejor:
server.lab.local → 192.168.1.50
web → CNAME server.lab.local
api → CNAME server.lab.local
db → CNAME server.lab.local
Y el PTR:
50 IN PTR server.lab.local.
Mucho más limpio.
13. Qué acabas de montar? #
Ahora tu servidor DNS:
✔ Resuelve nombres → IP ✔ Resuelve IP → nombre ✔ Está configurado como infraestructura real
14. Qué falta por implementar? #
- 🔥 Integrar DNS con DHCP
- 🔥 Simular infraestructura de empresa (empresa.local)
- 🔥 Montar subdominios internos
- 🔥 Hacer split DNS
- 🔥 Montar DNS secundario
Resumen del tema
Conceptos clave #
- Resolución DNS Inversa (Reverse Lookup): mecanismo que traduce una dirección IP en un nombre de dominio FQDN mediante registros PTR (Pointer Record).
- Dominio Especial
in-addr.arpa: inversión de octetos de la subred para una red/24(para192.168.1.0/24la zona es1.168.192.in-addr.arpa). - Declaración de Zona Inversa en BIND9: definición en
named.conf.localy archivo de zona con registros SOA, NS y entradas PTR (ej.50 IN PTR web.lab.local.). - Diagnóstico con
digynslookup: comprobación de punteros mediantedig -x IP @127.0.0.1onslookup IP. - Buenas Prácticas: mantener un único registro PTR canónico por dirección IP que apunte al nombre de host principal del servidor.
Qué debes recordar #
La zona inversa de BIND9 utiliza el dominio in-addr.arpa y registros PTR para mapear direcciones IP a nombres FQDN comprobándose con dig -x.