Para crear un Servidor DNS en tu red local vamos a usar una herramienta sencilla y práctica llamada dnsmasq el cual nos ayudará a conectarnos a los dispositivos de la red local sin necesidad de aprendernos las IPs de los dispositivos, adicionalmente es muy importante que tanto tu servidor dns y todos los equipos a los que deseamos acceder mediante dns tengan asignada una ip estática de lo contrario, no funcionará de forma permanente..

 Copiar código
 # actualizar el sistema e instalar dnsmasq
sudo apt-get update && sudo apt-get upgrade -y && sudo apt install dnsmasq -y

Una vez instalado dnsmasq debemos modificar el archivo de configuración:

 Copiar código
 # modificar archivo de configuración de dnsmasq
sudo nano /etc/dnsmasq.conf

Dentro del archivo, nos desplazamos hasta el final del documento y añadiremos los siguientes registros:

 Copiar código
 # añadir registros al final del documento
interface=eth0                  # Interfaz de red del equipo, puedes obtenerla con el comando [ip a] (puede ser wlan0 si usas WiFi), en este caso uso eth0
bind-interfaces                 # Asegura que dnsmasq solo escuche en la interfaz especificada
server=8.8.8.8                  # Servidor DNS de respaldo (Google DNS u otro)
domain-needed                   # Solo resuelve nombres de dominio completos
bogus-priv                      # Bloquea consultas a direcciones privadas que no deberían salir de la red
local=/mi-red.local/            # Dominio local personalizado
expand-hosts                    # Expande nombres de host con el dominio especificado
domain=mi-red.local             # Dominio DNS local
addn-hosts=/etc/hosts.dnsmasq 	# Archivo donde defines los nombres de host y sus IPs

Creamos el archivo con los hosts personalizados para ello debemos conocer las ips de todos los dispositivos que queremos acceder a través de esta modalidad, considerando que en la configuración indicamos que los hosts iban a estar en la ruta /etc/hosts.dnsmasq (addn-hosts=/etc/hosts.dnsmasq), ejecutamos el siguiente comando:

 Copiar código
 # crear y editar el archivo con la lista de host e ips
sudo nano /etc/hosts.dnsmasq

Una vez abierto el archivo añadimos la lista de ips de la red local y seguido, separado por un espacio, el nombre de los hosts, ejemplo:

 Copiar código
 # crear y editar el archivo con la lista de ips y los nombres de host deseados
192.168.1.1   server1
192.168.1.2   server2
192.168.1.3   server3
192.168.1.4   server4
192.168.1.5   server5

Guardamos y cerramos el archivo, luego reiniciamos el servicio de dnsmasq:

 Copiar código
 # reiniciar dnsmasq
sudo systemctl restart dnsmasq

En el equipo cliente donde usas alguna distribución de linux debes modificar el archivo resolv.conf, para ello ejecutamos el comando:

 Copiar código
 # en cliente modificar archivo resolv.conf
sudo nano /etc/resolv.conf

Al final del archivo añadimos lo siguiente:

 Copiar código
 # cliente conf resolv.conf
nameserver 192.168.1.12 # ip local del servidor dns 
nameserver 8.8.8.8 # dns google
nameserver 8.8.4.4 # dns google

El archivo resolv.conf es un archivo que puede ser sobreescrito por el sistema por lo tanto debes de protegerlo de escritura con el siguiente comando:

 Copiar código
 # comando para hacer inmutable el archivo resolv.conf
sudo chattr +i /etc/resolv.conf

En caso de que quieras volver a modificarlo es importante que primero lo vuelvas a hacer mutable con el comando:

 Copiar código
 # comando para hacer mutable el archivo resolv.conf
sudo chattr -i /etc/resolv.conf

Finalmente para verificar que esta funcionando el servidor DNS lo que podemos hacer es un simple ping al server1 y verificar que si hay tráfico o en su defecto conectarnos mediante ssh ejemplo ssh usuario@server1