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
Resumen del artículo
¿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.
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.
[yasr_overall_rating]