Hola a tod@s,
En este post, vamos a ver, cómo configurar servidores DNS internos con bind9, para ello, vamos a desplegar dos máquinas con Ubuntu Server 24.04 LTS, una será el servidor DNS primario y la otra el servidor DNS secundario.
- Esta máquina será nuestro servidor DNS primario, y tendrá esta configuración IP:
- Esta máquina será nuestro servidor DNS secundario, y tendrá esta configuración IP:
- En las dos máquinas debemos de instalar bind9 ejecutando apt-get install bind9:
- Lo primero que vamos a realizar sobre el servidor primario DNSBIND1, será crear una zona primaria de resolución directa «ragasys.net» cuyo archivo de zona se llamará «db.ragasys.net» y se almacenará en «/var/lib/bind»:
nano /etc/bind/named.conf.local
zone «ragasys.net» {
type master;
file «/var/lib/bind/db.ragasys.net»;
};
- Ahora, nos vamos a crear una zona primaria de resolución inversa, para que resuelva direcciones IP pertenecientes a la dirección de red 192.168.5.0/24, el nombre del archivo de zona será db.192.168.5.rev y se almacenará en «/var/lib/bind»:
nano /etc/bind/named.conf.local
zone «5.168.192.in-addr.arpa» {
type master;
file «/var/lib/bind/db.192.168.5.rev»;
};
- Ahora, en nuestro servidor secundario DNSBIND2, vamos a crear una zona secundaria de resolución directa «ragasys.net» cuyo archivo de zona se llamará «db.slave.ragasys.net» y se almacenará en «/var/lib/bind», en esta zona debemos de indicar cual es el servidor DNS primario:
nano /etc/bind/named.conf.local
zone «ragasys.net» {
type slave;
file «/var/lib/bind/db.slave.ragasys.net»;
masters { 192.168.5.21; };
};
- Nos creamos también, una zona secundaria de resolución inversa, para que resuelva direcciones IP pertenecientes a la dirección de red 192.168.5.0/24, el nombre del archivo de zona será db.slave.192.168.5.rev y se almacenará en «/var/lib/bind»:
nano /etc/bind/named.conf.local
zone «5.168.192.in-addr.arpa» {
type slave;
file «/var/lib/bind/db.slave.192.168.5.rev»;
masters { 192.168.5.21; };
};
- Lo siguiente será configurar, la transferencia de zona en el servidor primario DNSBIND1, para que las zonas primarias se transfieran a las zonas secundarias, para ello, volvemos editar, nano /etc/bind/named.conf.local y añadimos el servidor secundario al que tiene que transferir la zona, tanto para la zona directa como para la inversa, allow-transfer { 192.168.5.22; }; :
- Con esta ya tendríamos configuradas las zonas de resolución directa e inversa, en el servidor primario y en el secundario.
- Para continuar, vamos a crear los registros de las zonas, para indicar que DNSBIND1 y DNSBIND2 son servidores DNS en la zona «ragasys.net» y que el servidor autoritativo o con autoridad sobre la zona es DNSBIND1.
- Zona primaria para la resolución directa:
nano /var/lib/bind/db.ragasys.net
$ttl 604800
ragasys.net. IN SOA dnsbind1.ragasys.net. it.ragasys.net (
2024112800 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS dnsbind1.ragasys.net.
@ IN NS dnsbind2.ragasys.net.
- Zona primaria para la resolución inversa:
nano /var/lib/bind/db.192.168.5.rev
$ttl 604800
5.168.192.in-addr.arpa. IN SOA dnsbind1.ragasys.net. it.ragasys.net (
2024112800 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
5.168.192.in-addr.arpa. IN NS dnsbind1.ragasys.net.
5.168.192.in-addr.arpa. IN NS dnsbind2.ragasys.net.
- Para que las zonas primarias (directa e inversa) se transfieran sobre las secundarias, debemos de crear los registros tipo A y PTR para los dos servidores DNS:
- Hacemos un systemctl restart bind9 y un systemctl status bind9, a ambos servidores, y como podemos ver ya se están replicando las zonas correctamente, haciendo ls /var/lib/bind en el servidor secundario podemos ver como se han creado los ficheros para las zonas secundarias:
- Ahora, vamos a configurar en el archivo de configuración de opciones globales de bind, /etc/bind/named.conf.options, para indicar que el servidor DNS va a usar como reenviadores los servidores DNS con estas direcciones IP, así tendremos resoluciones de nombres externos, realizamos esta configuración en el servidor primario y secundario:
nano /etc/bind/named.conf.options
options {
forwarders { 8.8.8.8; 8.8.4.4; 1.1.1.1; 9.9.9.9; };
};
- Comprobamos lo que llevamos hecho hasta ahora con nslookup, como podemos ver, nos resuelve bien:
- A partir de ahora, ya podemos empezar a crear, todo tipo de registros (A, CNAME, MX, PTR …) en nuestro servidor primario, y automáticamente se replicará en el secundario, como ejemplo hemos creado estos registros:
Saludos y espero que os sea de ayuda 😉