En esta ocasión vamos a ver cómo instalar y configurar el servidor DNS Bind en Ubuntu 24.04 LTS Noble Numbat paso a paso, de modo que podremos resolver nombres en red local, tanto pertenecientes a dominios locales como nombres de Internet.
Contenido
Antes de instalar DNS Bind en Ubuntu 24.04 LTS Noble Numbat
Si quieres completar los pasos de esta guía de instalación y configuración del servidor DNS Bind en Ubuntu 24.04 LT Noble Numbat será necesario contar con los siguientes requisitos mínimos:
- Una máquina Ubuntu 24.04 LTS Noble Numbat actualizada, que actuará como servidor DNS.
- Opcionalmente, una segunda máquina Ubuntu 24.04 LTS para utilizarla como cliente DNS.
- Acceso a línea de comandos con un usuario con privilegios de sudo.
- Conexión a Internet.
En el ejemplo de este tutorial configuraremos un servidor DNS Bind sobre una máquina Ubuntu 24.04 LTS que resolverá los nombres de las máquinas de una red local que utilizará el dominio red.lan, aunque también servirá para resolver nombres de Internet.
La red privada sobre la que trabajamos es la 192.168.1.0/24 y la dirección IP del servidor Ubuntu 24.04 LTS que correrá el servicio DNS Bind es la 192.168.1.188.
En este tutorial no abarcamos cómo configurar los clientes en la red para que usen el nuevo servidor DNS. A grandes rasgos, si la configuración de los adaptadores de red es automática el servidor DHCP de la red debería configurarse para enviar dicho servidor DNS; si la configuración es manual, habrá que especificar el servidor DNS manualmente en la configuración de cada adaptador.
Cómo instalar DNS Bind en Ubuntu 24.04 LTS
Vamos a instalar el servicio DNS Bind en Ubuntu 24.04 LTS Noble Numbat mediante los paquetes procedentes de los repositorios de la distribución, por lo que actualizamos la información de los mismos:
~$ sudo apt update
E instalamos los paquetes necesarios:
~$ sudo apt install -y bind9
Tras la descarga e instalación de este paquete y todas sus dependencias se crea un nuevo servicio en el sistema, el servicio named, que queda en ejecución y activada para su inicio automático. Podemos comprobar el estado de este servicio en cualquier momento con el siguiente comando:
~$ systemctl status named
Configurar el firewall para Bind en Ubuntu 24.04 LTS
Si tienes activado el firewall UFW en Ubuntu 24.04 LTS Noble Numbat será necesario añadir una regla para permitir la conexión al servicio desde red:
~$ sudo ufw allow bind9
Cómo configurar el servidor DNS Bind en Ubuntu 24.04 LTS
Vamos a configurar el servicio DNS Bind en Ubuntu 24.04 LTS Noble Numbat a través de sus archivos de configuración que se organizan bajo la ruta /etc/bind/.
Resolución de nombres de Internet
Con la configuración por defecto el servidor DNS Bind ya puede resolver nombres de Internet. Si queremos que esta resolución se haga a través de otros servidores a los que conecte el nuestro (lo que se denomina forwarding), editamos el archivo named.conf.options:
~$ sudo nano /etc/bind/named.conf.options
Buscamos la sección forwarders:
... // forwarders { // 0.0.0.0; // }; ...
Activamos dicha sección e introducimos los servidores DNS que nos interesen; por ejemplo el de Cloudflare:
... forwarders { 1.1.1.1; }; ...
O los de Google:
... forwarders { 8.8.8.8; 8.8.4.4; }; ...
Guardamos los cambios y comprobamos que la sintaxis del archivo es correcta con el comando named-checkconf:
~$ named-checkconf
Si todo es correcto podemos recargar la configuración del servicio:
~$ sudo systemctl reload named
Hayas o no activado esa opción, ya se puede probar la resolución de nombres de Internet con la herramienta nslookup, tanto desde el propio servidor Ubuntu 24.04 ó, mejor aún, desde otra máquina de la red local.
Si lo hacemos desde el propio servidor:
~$ nslookup gogle.com localhost Server: localhost Address: 127.0.0.1#53 Non-authoritative answer: Name: gogle.com Address: 142.250.200.68 Name: gogle.com Address: 2a00:1450:4003:80d::2004
Y desde una máquina en red, con el mismo misma petición comando pero añadiendo además la dirección IP del servidor DNS que estamos configurando:
~$ nslookup gogle.com 192.168.1.188 Server: 192.168.1.188 Address: 192.168.1.188#53 Non-authoritative answer: Name: gogle.com Address: 142.250.200.68 Name: gogle.com Address: 2a00:1450:4003:80d::2004
Resolución de nombres de la red interna
Para que nuestro servidor DNS Bind pueda resolver nombres de un dominio interno en una red local crearemos un archivo de configuración para dicho dominio.
Vamos a crear un archivo de base datos para el dominio local red.lan:
~$ sudo nano /etc/bind/db.red.lan
El esquema mínimo suele ser el siguiente:
$TTL 1D @ IN SOA ns.red.lan. instalador.red.lan. ( 1 ; serial 604800 ; refresh 86400 ; retry 2419200 ; expiration 604800 ; TTL negative cache ) ; Registros NS (Servidores de nombres) @ IN NS ns.red.lan. ; Registros A ns IN A 192.168.1.188 router IN A 192.168.1.1 nas IN A 192.168.2.2 pi IN A 192.168.1.130 puesto1 IN A 192.168.1.151 puesto2 IN A 192.168.1.152
En el registro SOA (start of authority) se indican el nombre del servidor DNS principal del dominio (en este ejemplo ns.red.lan) y la dirección de correo electrónico del administrador del servicio, donde la @ se sustituye por un punto (es decir, instalador.red.lan equivale a instalador@red.lan).
En este mismo registro, el parámetro que incorpora el comentario serial es el número de versión del archivo. Siempre que vayamos a introducir cambios debemos incrementar manualmente dicho número.
En el registro NS introducimos el servidor DNS del dominio. Si hubiera más servidores (secundarios, terciarios, etc.) deberíamos añadir más registros con los nombres de dichos servidores.
Finalmente, los registros A son los que asocian un nombre con su dirección IP. En lugar de poner el FQDN o nombre completo de cada máquina, podemos poner sólo la parte de la máquina.
Por ejemplo, para ns.red.lan indicamos ns, para puesto1.red.lan indicamos puesto1, etc.
Cuando terminemos de introducir la base de datos del dominio, guardamos y cerramos el archivo.
Comprobamos la sintaxis de este archivo con el comando named-checkzone, que recibe como parámetros el dominio que queremos comprobar y su archivo de base de datos:
~$ named-checkzone red.lan /etc/bind/db.red.lan zone red.lan/IN: loaded serial 1 OK
En caso de error habrá que solucionar el problema para poder continuar.
Para que el archivo de zona sea incluido en la configuración de Bind, debemos editar el archivo named.conf.local:
~$ sudo nano /etc/bind/named.conf.local
Y añadimos al final un bloque zone para el dominio en el que se incluya la base de datos o archivo de zona:
... zone "red.lan" IN { type master; file "/etc/bind/db.red.lan"; };
Guardamos y cerramos este archivo y recargamos la configuración del servicio DNS:
~$ sudo systemctl reload named
Podemos probar la resolución de nombres de la red local, por ejemplo desde una máquina Ubuntu 24.04 LTS que no es el servidor, con el comando nslookup:
~$ nslookup puesto1.red.lan 192.168.1.188 Server: 192.168.1.188 Address: 192.168.1.188#53 Name: puesto1.red.lan Address: 192.168.1.151
Y deberíamos obtener la respuesta esperada.
Resolución inversa
Ahora realizaremos la configuración para que el servidor DNS Bind del servidor Ubuntu 24.04 LTS devuelva el nombre de máquina asociado a una dirección IP.
Para ello creamos el archivo de base de datos de la zona inversa de la red local (en este ejemplo para la red 192.168.1.0/24):
~$ sudo nano /etc/bind/db.1.168.192
El contenido de este archivo sería similar al siguiente:
$TTL 1D @ IN SOA red.lan. root.red.lan. ( 0 ; serial 604800 ; refresh 86400 ; retry 2419200 ; expires 604800 ; TTL negative cache ) @ IN NS ns.red.lan. ; Registros PTR 188 IN PTR ns.red.lan. 1 IN PTR router.red.lan. 2 IN PTR nas.red.lan. 130 IN PTR pi.red.lan. 151 IN PTR puesto1.red.lan. 152 IN PTR puesto2.red.lan.
Podemos ver que los registros SOA y NS son similares a los del archivo de resolución directa de la zona. Lo que varía es que para resolución inversa usamos registros PTR en los que especificamos la parte numérica de la dirección IP que varía y el nombre completo o FQDN de la máquina.
Guardamos los cambios y comprobamos si la sintaxis es correcta:
~$ named-checkzone 1.168.192 /etc/bind/db.1.168.192 zone 1.168.192/IN: loaded serial 0 OK
Si todo está bien editaremos el archivo named.conf.local:
~$ sudo nano /etc/bind/named.conf.local
Y añadimos al final un bloque zone para incluir el archivo de base de datos de resolución inversa que acabamos de crear:
... zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.1.168.192"; };
Guardamos este archivo y comprobamos que la sintaxis esté correcta:
~$ named-checkconf
Ya podemos recargar la configuración del servicio DNS Bind:
~$ sudo systemctl reload named
Ahora probamos la resolución inversa desde un cliente para cualquiera de las direcciones IP que hemos registrado:
~$ nslookup 192.168.1.1 192.168.1.188 1.1.168.192.in-addr.arpa name = router.red.lan.
¡Todo listo!
Por último, cuando ya tenemos funcionando correctamente el servicio DNS Bind en Ubuntu 24.04 LTS es el momento de hacer que el sistema lo use por defecto. Para ello editamos el siguiente archivo:
~$ sudo nano /etc/systemd/resolved.conf
Dentro de la sección [Resolve] observamos dos directivas desactivadas:
... [Resolve] ... #DNS= ... #Domains= ...
Las activamos y les damos los siguientes valores:
... DNS=127.0.0.1 ... Domains=~. ...
Guardamos y cerramos el archivo, y reiniciamos el servicio systemd-resolved:
~$ sudo systemctl restart systemd-resolved
A partir de este momento el sistema usa Bind por defecto para resolver tanto los nombres de Internet:
~$ nslookup ubuntu.com Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: ubuntu.com Address: 185.125.190.20 ...
Como el dominio local (directo e inverso) que hemos configurado:
~$ nslookup router.red.lan Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: router.red.lan Address: 192.168.1.1 ~$ nslookup 192.168.1.1 1.1.168.192.in-addr.arpa name = router.red.lan. Authoritative answers can be found from:
Quedaría configurar el servidor DHCP de la red para que envíe el nuevo servidor DNS a los clientes que se configuran automáticamente y/o configurar las máquinas clientes que tienen direcciones IP estáticas.
Conclusión
Ahora que sabes cómo instalar y configurar el servicio DNS Bind en Ubuntu 24.04 LTS Noble Numbat ya puedes proporcionar servicio de resolución de nombres para tu red local. Funciona perfectamente tanto para nombres de Internet como para los nombres locales de tu red privada.
Si te ha surgido algún problema, duda, sugerencia, quieres notificar algún error, hacer una sugerencia, etc. puedes dejar un comentario. Los comentarios están moderados, para intentar luchar contra el SPAM, pero se revisan prácticamente a diario.
¡Apoya comoinstalar.me!
¿Ya tienes resolución de nombres con tu propio servidor gracias a nuestra pequeña guía? Si es así y quieres agradecérnoslo cualquier contribución mínima siempre es bien acogida.
Puedes ayudarnos dejando una propina de tan solo 1 $ con PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!