Bind9
Para implementar esta configuración utilizaremos BIND9 (Berkeley Internet Name Domain), uno de los servidores DNS más utilizados y confiables en entornos de red. BIND9 es un software de código abierto
Pasos Previos
Antes de nada, vamos a configurar una red Nat, en mi caso usare la red 192.168.6.0/24 pero podéis usar la que mas se os adapte

Consideraciones
Es necesario saber que el nombre predeterminado que se suele usar para servidores DNS es ns1, pero yo aproveche una maquina que tenia ya instalada que se llama soterasdns es importante que os fijéis en esto, para que no haya lugar a confusiones.
El dominio para el DNS es soterasdns.local con lo cual quedaría soteradns.soterasdns.local.
Yo configuro el
netplan, para que trabaje con la IP estática192.168.6.100/24, pero vosotros podéis usar la que queráis. Es una buena practica, configurar-la estática.Es esencial, tener conexión a internet desde la máquina.
Instalación y configuración
Actualizamos los repositorios de nuestro sistema, para evitar posibles fallos en instalaciones, actualizaciones y configuraciones de paquetes.
sudo apt updateAntes de empezar con la configuración del servidor DNS, vamos a hacer que la IP de la maquina sea estática. En este caso, como hemos mencionado antes, usaremos la IP 192.168.6.100
sudo nano /etc/netplan/<archivodeconfig>
Aplicamos los cambioes en el archivo netplan
sudo netplan apply
sudo netplan tryInstalamos el paquete que usaremos para crear y gestionar el servidor DNS, este paquete sera el bind9
sudo apt install bind9 -yLa ruta con los directorios y archivos de configuración del servidor bind9, los encontraremos en el path /etc/bind
Seguido, por seguridad, haremos una copia de archivo que cambiaremos a continuación, esto es una buena practica para que, en caso necesario, se pueda volver al punto de partida.
cd /etc/bind #Direcorio de configuración principal
sudo cp /etc/bind/named.conf.local /etc/bind/named.conf.local.BKP #CopiamosConfiguramos el archivo named.conf.local, donde especificaremos el tipo de zonas y los directorios donde van a trabajar

Con el siguiente comando, comprobaremos si la configuración es correcta y no hay errores de sintaxis
named-checkconf //Si no hay output, el archivo esta bien configuradoVamos a configurar la zona directa, este archivo lo ubicaremos en el path /etc/bind/zones/db.soterasdns.local
Asi que primero vamos a crear el directorio /zones y después aprovecharemos los ficheros default de bind9, para modificarlos a nuestro gusto
mkdir zones #Creamos directorio
cp db.local zones/db.haven.local #Copiamos el default
sudo nano db.haven.local #Lo modificamos
Ahora hacemos lo mismo para la zona inversa, para ello copiaremos el archivo db.127
cp db.127 zones/db.6.168.192 #Copiamos el default
sudo nano db.6.168.192 #Lo modificamos
E igual que hemos hecho antes, vamos a comprobar que los dos archivos de zonas están bien configurados sin errores en la sintaxis
sudo named-checkzone soterasdns.local /etc/bind/zones/db.soterasdns.local #Directa
sudo named-checkzone 6.168.192.in-addr-arpa /etc/bind/zones/db.6.168.192 #Inversa
Ahora vamos a editar el archivo named.conf.options.
Este archivo es muy interesante, ya que nos permite crear reglas ACL para restringir el trafico a nuestro servidor DNS, permitiendo o bloqueando IP's.
Además nosotros indicaremos un par de servidores fordwarders, donde se delegara el trabajo de nuestro servidor DNS, en caso necesario.

Y como siempre, comprobamos si la sintaxis es correcta, pero en este caso con un comando algo distinto. Si el output esta vacío, la sintaxis es correcta.
named-checkconfVamos a hacer una pequeña configuración al archivo /etc/default/named
Vamos a añadir -4, esto forzara a que las peticiones sean IPv4 y evitara posibles errores por culpa de las nuevas IPv6.

Ahora solo queda resetear y comprobar, el estado del bind9
systemctl restart bind9 #Reseteamos servicio
systemctl status bind9 #Comprobamos el estado
Antes de acabar, vamos a realizar los dos últimos ajustes, para que el servidor funcione correctamente.
Primero, vamos a modificar el enlace simbólico, para que apunte al archivo que nos interesa.
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
ls -l /etc/resolv.conf #Comprobamos el enlaceVamos a comprobar el archivo /etc/resolv.conf, en el caso de que apunte a servidores DNS distintos a los que ves en la foto, edita el archivo para que se vea como la siguiente imagen.

Vamos a realizar las comprobaciones necesarias, para ver si la resolucion del DNS, funciona correctamente
Empezaremos comprobando si la resolución en la misma red funciona
nslookup soterasdns
Ahora realizaremos la prueba a un dominio externo, para ver la respuesta. Vemos que funciona perfectamente, pero en este caso nos especifica "Non-Authoritative answer" ya que no tenemos autoridad sobre el DNS google.com
nslookup google.com
Last updated