Para tener un servidor DNS no necesitas un gran equipo con altas especificaciones de hardware. Hoy lo demostramos y para ello vamos a utilizar DNSMasq en una Raspberry Pi. Lo que conseguiremos con un servidor DNS es:

  • Mejorar la velocidad de conexión
  • Añadir seguridad a la hora de navegar

¿Qué son los DNS?

Los DNS (Sistema de Nombres de Dominio) sirve para traducir IPs en dominios.

Por ejemplo, nosotros accedemos desde un navegador al dominio Google.com pero el ordenador lo traduce a la IP donde está alojada la página, en este caso, 216.58.201.163. Esta es la traducción realizada por un servidor DNS. Si pones esa IP (puede cambiar, no es estática) te llevará a Google.com.

Esta traducción es principalmente por dos razones:

  • Nos es mucho más sencillo recordar nombres de dominio que IPs.
  • Las IPs de un servidor pueden cambiar en cualquier momento.

¿Qué es DNSMasq ?

DNSMasq es un paquete para Linux que junta el servidor DNS y el servidor DHCP. Tiene soporte para las tecnologías, tanto nuevas como IPv6, como clásicas como PXE. Necesita muy pocos recursos por lo tanto es perfecto para sistemas como la Raspberry Pi.

Podemos cambiar de forma rápida la configuración con tan solo editar un archivo.

Raspberry Pi Servidor DNS y DHCP 0

Instalar servidor DNS en Debian

Vamos a instalar DNSMasq en el sistema operativo de Debian. Lo podemos instalar en cualquier versión de este sistema operativo. Nosotros vamos a utilizar una Raspberry Pi y por tanto vamos a usar Raspbian. Descargamos la ISO y la instalamos con BalenaEtcher.

Activamos el SSH con el siguiente comando ➡ Advanced Options ➡ SSH.

sudo raspi-config

Con el siguiente comando tenemos la IP.

ip addr show

Ahora ya podemos utilizar Putty en nuestro ordenador para copiar y pegar los siguientes comandos.

1. Actualizar

Vamos a hacer una actualización general. Esto puede tardar entre 5 y 10 minutos según lo nueva que fuera la ISO.

sudo apt update && sudo apt upgrade

2. Instalar

Para instalar DNSMasq solo tenemos que ejecutar el siguiente comando. Se encarga de instalar todas las dependencias y complementos necesarios.

sudo apt install dnsmasq

3. Configurar

Ya tenemos un servidor DNS completo. Ahora vamos a hacer una configuración adaptada a nuestras medidas. Para ello editamos el siguiente archivo:

sudo nano /etc/dnsmasq.conf

3.1. Configuración necesaria

Vamos a quitar el # de delante de:

  • domain-needed
  • bogus-priv
  • expand-hosts

Para el siguiente paso necesitamos domain-needed activado. Para evitar peticiones DNS activamos bogus-priv ya que nosotros tenemos IP local. Tambien para el siguiente paso necesitamos expand-hosts con el asignaremos nombres de dominio personales.

Y en domain lo cambiamos a:

domain=ejemplo.local

Con esto podemos configurar después el acceso de ordenadores en red. Por ejemplo tenemos otra Raspberry Pi con Kodi para tener una SMART TV y accedemos desde http://kodi.ejemplo.local

Guardamos con CTRL+X.

3.2. Configuración opcional

Volvemos a abrir el archivo de configuración con nano. Y podemos editar:

  • cache-size
  • dnssec
  • interface
  • enable-tftp

4. Reiniciar

Necesitamos reiniciar el servicio cada vez que realicemos un cambio. Para ello tenemos el siguiente comando.

sudo service dnsmasq restart

También podemos parar DNSMasq cambiando restart por stop.

Instalar servidor DHCP

Como siempre en DNSMasq, solo tenemos que editar el archivo de configuración de nuevo. Ahora vamos a modificar:

  • dhcp-range
  • dhcp-option

El formato de dhcp-range es:

dhcp-range=primera-IP,última-IP,tiempo-alquiler-lease

Por ejemplo:

dhcp-range=192.168.1.20,192.168.1.100,24h

La siguiente opción es solo si da problemas. Por defecto ya utiliza la puerta de enlace del router predeterminada. Si queremos cambiarla el formato de dhcp-option es:

dhcp-option=3,puerta-de-enlace

Por ejemplo:

dhcp-option=3,192.168.1.1

Volvemos a reiniciar el servicio para aplicar los cambios.

Probando nuestro servidor DNS

Ya esta todo listo y funcional. Para probar nuestro servidor DNS vamos a ir a cualquier ordenador o dispositivo móvil e ir a los ajustes de red. Ahí cambiaremos la IP del servidor DNS preferido por la IP de nuestra Raspberry Pi. Luego podemos probarlo abriendo la terminal (CMD) y hacer ping a cualquier página.

Raspberry Pi Servidor DNS y DHCP 2

Puntuación