Montar un servidor casero con Raspberry Pi (Parte 4): Configurar servidor DNS caché
En este cuarto episodio del tutorial aprenderemos a instalar y configurar nuestro propio servidor DNS caché en la Raspberry Pi, con el objetivo de mejorar la velocidad de navegación de los dispositivos de nuestra LAN.
Nuestro servidor guardará las consultas DNS realizadas durante un periodo de tiempo, así aquellas consultas repetidas en dicho periodo serán mucho más rápidas ya que no llegarán a salir de nuestra propia LAN.
Índice de tutoriales:
- Objetivos e índice.
- Instalar Raspbian en una tarjeta SD.
- Primera ejecución de Raspbian.
- Configurar servidor DHCP.
- Configurar servidor DNS caché.
- DNS local con actualizaciones DHCP.
- Acceder al servidor desde el exterior.
- Instalación y configuración de OpenVPN.
- NAS con Raspberry Pi y Samba
Tutoriales relacionados:
- Encendiendo ordenadores automáticamente con Wake-on-LAN y Cron.
- Copia completa de nuestra Raspberry Pi.
- Reducir el tamaño de Raspbian eliminando paquetes no usados.
Instalar servidor DNS en Raspbian
Para instalar nuestro servidor DNS en la Raspberry Pi tiraremos, como no, de nuestro querido gestor de paquetes, así que:
|
|
Como podemos ver adicionalmente hemos instalado dnsutils, que contiene una herramienta a la que posteriormente le daremos uso.
Configurar servidor DNS caché
Una vez instalado el servicio de DNS procederemos a configurarlo para que realice las funciones que precisamos. Para ello no está de más conocer los distintos archivos de configuración de BIND9:
- /etc/bind/named.conf: Es el archivo de configuración principal de BIND9, se encarga de cargar tres archivos de configuración y centralizarlos.
- /etc/bind/named.conf.options: Desde aquí podemos configurar las opciones generales del servicio, el directorio de trabajo, los forwarders, etc. Este es el archivo que tocaremos en esta parte del tutorial.
- /etc/bind/named.conf.local: En este archivo podemos configurar las zonas locales del servidor DNS, esto es, configurar dominios que en vez de buscarse fuera mediante los forwarders se buscarán en el propio servidor DNS. Este archivo se utilizará en posteriores tutoriales.
- /etc/bind/named.conf.default.zones: Donde podemos configurar las zonas por defecto del servidor. En futuros tutoriales se tocará este archivo.
La configuración por defecto después de la instalación de bind9 nos proporciona un servidor DNS caché listo para ser utilizado sin más problema, pero eso no es muy divertido que digamos, así que vamos a trastear un poco con los archivos de configuración para ver qué posibilidades tenemos.
Para nuestro servidor DNS caché necesitamos configurar solo el archivo named.conf.options, así que:
|
|
Por defecto vienen algunas configuraciones así como una serie de advertencias en los comentarios. Deberemos dejar el archivo así:
|
|
Con esto tendremos el grueso de la configuración hecho, así que pasamos a comprobar que esta es correcta:
|
|
Si el comando no arroja ninguna salida indica que no se han encontrado errores, así que podemos continuar.
Después de esto reiniciaremos el servicio DNS con:
|
|
Hecho esto ya tenemos nuestro servidor DNS caché funcionando en nuestra Raspberry Pi.
Configurar los clientes con el nuevo servidor DNS caché
La configuración del servidor está hecha, el siguiente paso es que los clientes (incluido nuestro servidor), hagan las consultas DNS a nuestro servidor DNS caché en la Raspberry Pi.
Para cambiar el DNS de nuestra Raspberry Pi debemos realizar lo mismo que en el segundo tutorial, es decir, dirigirnos a /etc/resolv.conf y configurar el servidor DNS:
|
|
Borramos el contenido y añadimos:
|
|
Con esto hecho nuestra Raspberry Pi está consultando a su propio servidor DNS las direcciones.
Para que los demás clientes de la red resuelvan nombres vía nuestro nuevo servidor DNS caché debemos acudir a lo explicado en el anterior tutorial y cambiar la configuración del archivo /etc/dhcp/dhcpd.conf y modificar el campo domain-name servers así:
|
|
Posteriormente reiniciamos el servicio dhcp con:
|
|
Y reiniciamos los clientes dhcp de los ordenadores clientes.
Comprobando el funcionamiento del servidor DNS Caché
Para comprobar que está funcionando podemos valernos de la herramienta dig, contenida en el paquete dnsutils, que nos indicará el tiempo de resolución del nombre. Para ello hacemos una primera consulta:
|
|
Que nos dará un tiempo en milisegundos elevado. Si volvemos a hacerlo con el mismo dominio:
|
|
Obtenemos un tiempo de respuesta MUY inferior gracias a que la Raspberry Pi no necesita volver a consultar al DNS de Google la información, ya que esta está contenida en la caché del servidor.
Observaciones finales
Haciendo pruebas bajo la misma línea entre la comparación de velocidad de resolución de nombres apuntando directamente a los DNS de Google y apuntando a la Raspberry Pi nos encontraremos con los siguientes datos:
Los tiempos de respuesta para la primera consulta sobre un dominio apuntando directo al DNS de Google o apuntando a la Raspberry Pi son muy similares, con variaciones de pocos ms entre un sistema y el otro. En cambio en la segunda consulta podemos observar como el tiempo consultando directamente al DNS de Google es el mismo que en la primera ocasión pero en la Raspberry Pi la resolución es casi inmediata.
Así que podemos decir tranquilamente que después de la implementación hemos ganado en velocidad de navegación gracias a nuestra Raspberry Pi.
Advertencia: Si dispones un ordenador con *buntu o derivadas (a partir de la versión 12.04) y la configuración de DNS no se te actualiza (apuntando siempre a 127.0.0.1 o 127.0.1.1) lee esto.