Montar un servidor casero con Raspberry Pi (Parte 5): DNS local con actualizaciones dinámicas DHCP
Después de configurar nuestro servidor DHCP y nuestro servidor DNS caché toca darle una vuelta de tuerca a nuestro servidor Raspberry Pi y aprovechar las capacidades de DHCP junto a las de DNS para crear un servidor DNS local que actualice automáticamente los registros para las direcciones concedidas por DHCP.
Í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.
Servidor DNS local con actualizaciones DHCP
Antes de ponernos manos a la obra es necesario entender que implica tener un servidor DNS local con actualizaciones DHCP. Esto es, cada vez que el servidor DHCP conceda una dirección IP a un dispositivo se dirigirá al servidor DNS y creará/actualizará el registro correspondiente a dicho dispositivo. Con eso conseguimos poder acceder a recursos compartidos en la red sin la necesidad de memorizar las direcciones IP completas, solo necesitamos recordar el nombre, cosa mucho más amigable.
Dicho esto podemos proceder a la configuración.
Asegurando las comunicaciones
Por razones de seguridad no podemos permitir que cualquier dispositivo actualice registros DNS, ya que esto podría suponer una infinidad distinta de ataques contra nuestra infraestructura. Si bien este servidor Raspberry Pi está ubicado en un domicilio nunca está de más intentar aplicar algunas medidas. Para aportar seguridad a las comunicaciones entre DHCP y Bind generaremos una clave compartida que será usada para la actualización de registros:
|
|
Esto nos generará un archivo /etc/bind/rndc.key. Esta clave deberá ser configurada tanto en el servidor DNS como en el DHCP para que las comunicaciones se realicen correctamente.
Configuración de zonas DNS
Ahora toca configurar la zona de resolución directa e inversa para nuestro dominio. En el tutorial DHCP este era home.local, así que ese será el nombre que le daremos al dominio. El archivo de configuración de zonas locales se encuentra en /etc/bind/named.conf.local. Así que:
|
|
Y deberemos configurar el archivo así:
|
|
Hecho esto podemos asegurarnos de que la configuración es correcta con:
|
|
Que no debería darnos salida alguna, indicando que no hay errores en la configuración.
En este punto tenemos las zonas declaradas, pero necesitamos configurarlas. Lo siguiente será editar los archivos de zona establecidos anteriormente, empezamos con home.local:
|
|
Deberemos dejar el archivo así:
|
|
Finalizada la configuración la comprobamos con:
|
|
A lo que deberíamos recibir:
|
|
Ahora toca hacer lo mismo para la zona de resolución inversa:
|
|
Y dejaremos la configuración así:
|
|
Comprobamos la configuración con:
|
|
Vamos a comprobar que las zonas configuradas están funcionando reiniciando el servicio bind:
|
|
Ahora nuestro DNS local está funcionando, para comprobarlo nos valdremos de la herramienta nslookup para comprobar la resolución directa e inversa:
|
|
Para la resolución directa:
|
|
Que nos mostrará su dirección IP. Ahora la resolución inversa:
|
|
Que nos mostrará el campo “name” junto con el nombre de red del dispositivo. Si las pruebas son satisfactorias querrá decir que nuestro dominio está montado.
Configurar DHCP para realizar actualizaciones DNS
Aquí viene lo realmente interesante del caso, y es que montar un servidor DNS local para simplemente relacionar una IP con el nombre de un servidor es como poco matar moscas a cañonazos, ahora bien, si podemos hacer lo mismo con todos los dispositivos de nuestra red local sin tener que modificar registros a mano cada vez que estos cambian de dirección IP la cosa se vuelve bastante curiosa.
Para conseguir que DHCP actualice registros DNS necesitamos editar la configuración que vimos el tutorial sobre DHCP. Así que vamos a ello:
|
|
Buscamos el campo ddns-update-style configurado anteriormente, lo borramos y escribimos lo siguiente:
|
|
Comprobando las actualizaciones DNS vía DHCP
Hasta aquí la parte de configuración del servidor, ahora solo nos falta cruzar los dedos mientras comprobamos que todo funciona correctamente. Para ello lo primero será reiniciar ambos servicios:
|
|
Ahora abriremos el log del sistema para ver qué pasa cuando conectamos un cliente vía DHCP.
|
|
Con esto en pantalla podemos proceder a conectar un nuevo cliente a la red. Automáticamente debería aparecer algo parecido a esto en nuestro log:
|
|
Si prestamos atención al log podemos ver como hay dos grupos de registros, los procedentes de dhcpd y los procedentes named. También podemos observar el uso de la clave compartida así como de la comunicación entre un servicio y el otro.
Así que a partir de ahora, para referirnos a cualquier dispositivo de la red bastará con usar su nombre, esto es, para conectarnos a la Raspberry Pi vía ssh ahora podemos utilizar:
|
|
Hasta aquí todo lo relacionado con DHCP y DNS en este tutorial.
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.