RasPi: cómo gestionar un DNS dinámico

Seguimos con los artículos orientados a montar nuestro servidor casero, con Raspberry Pi. En esta ocasión vamos a ver cómo manetener actualizado un servicio de DNS dinámico, para poder disponer en todo momento de una url que apunte a nuestro servidor. De este modo podremos acceder al mismo desde cualquier punto del planeta en el que nos encontremos.

Qué es un DNS dinámico

Un DNS dinámico es un servicio que ofrecen algunas empresas en Internet, encargado de actualizar, cada cierto tiempo, las ip de sus hosts de manera automática. Un DNS normal mantiene una tabla de ip de manera estática, hasta que “alguien” las actualiza (visitad la Wikipedia para mas información: http://www.wikipedia.org/DNS) De este modo, los clientes como nosotros, que por lo general tienen una conexión con ip dinámica (que cambia cada vez que se reinicia el router, aunque esto cada vez sucede menos) pueden disponer de un nombre de host conocido que apunta a su ip, sin necesidad de preocuparse de actualizar un DNS para no perder el enlace.

Existen muchas compañías que ofrecen servicios de DNS dinámico, algunas gratis, otras de pago… siempre dependiendo del tipo de servicio que deseemos contratar. Para este artículo utilizaremos los servicios de DNS Dinamico ofrecidos por No-ip.com (http://www.no-ip.com). Son muy conocidos en este mundo, por ser unos de los primeros que aparecieron en el mercado, y por disponer de una buena variedad de servicios gratuitos.

Cómo funciona un DNS dinámico

Asumiré que tenéis los conocimientos suficientes para hacer que vuestra pi sea visible desde el exterior (apertura de puertos en nuestro router, activación de la DMZ, etc…).

Para poder continuar, deberéis disponer de una cuenta en No-ip.com y al menos una redirección activada. Una redirección es, símplemente, el nombre de un host al que se le asigna, cada cierto tiempo, la ip de un equipo conectado a internet. En nuestro caso, nuestra pi, o bien la puerta de enlace de la que depende (nuestro router ADSL, por ejemplo…). Deberéis indicar una ip inicial en el momento de crearla, si no conocéis la vuestra (sudo ipconfig -all o consultadlo en vuestro router, isp…). Podéis poner una temporal, como www.google.es, ya que cuando instalemos nuestro cliente se actualizará automáticamente.

Posteriormente, lo que haremos es instalar un cliente de No-ip.com. Este cliente se conectará cada cierto tiempo a su servidor de DNS y actualizará nuestro hostname con la ip de nuestro equipo. El mismo cliente se encargará de, primero, obtener nuestra ip y, posteriormente, conectarse y actualizar la ip en su servicio de DNS. Luego ellos mismos publican su DNS y tendremos acceso a nuestro sistema vía nuestro hostname.

Instalación del cliente de No-ip.com

El procedimiento es muy sencillo. Podéis consultar su tutorial en esta url: http://www.noip.com/support/knowledgebase/installing-the-linux-dynamic-update-client

Ejecutaremos las siguientes sentencias, tal cual nos indica en el tutorial:

jordi@raspberrypi ~ $ cd /usr/local/src
jordi@raspberrypi ~ $ sudo wget http://www.no-ip.com/client/linux/noip-duc-lijordi@raspberrypi ~ $ nux.tar.gz
jordi@raspberrypi ~ $ sudo tar xzf noip-duc-linux.tar.gz
jordi@raspberrypi ~ $ cd no-ip-2.1.9
jordi@raspberrypi ~ $ sudo make
jordi@raspberrypi ~ $ sudo make install

Si obtenéis algún error en el momento del make. es posible que no dispongáis de las librerías del gcc para compilar. Deberéis isntalarlas antes de volver a probar (buscad por Google install gcc raspberry pi). Normalmente si las tendremos incluidas.

Una vez compilado el código fuente, se ejecutará el configurador por defecto. Es interactivo, y para continuar nos pedirá los datos de la cuenta que queremos asociar a nuestro cliente. Lo hace de manera online, así que una vez que introduzcamos nuestras credenciales, se conectará y nos presentará todos los hostnames que hemos registrado, para poder gestionar uno de ellos (y solo uno):

jordi@raspberrypi /usr/local/src/noip-2.1.9-1 $ sudo make install
if [ ! -d /usr/local/bin ]; then mkdir -p /usr/local/bin;fi
if [ ! -d /usr/local/etc ]; then mkdir -p /usr/local/etc;fi
cp noip2 /usr/local/bin/noip2
/usr/local/bin/noip2 -C -c /tmp/no-ip2.conf

Auto configuration for Linux client of no-ip.com.

Please enter the login/email string for no-ip.com  mail@host.com
Please enter the password for user 'mail@host.com'  ********

Only one host [xxxxx.no-ip.com] is registered to this account.
It will be used.
Please enter an update interval:[30]
Do you wish to run something at successful update?[N] (y/N)  

New configuration file '/tmp/no-ip2.conf' created.

mv /tmp/no-ip2.conf /usr/local/etc/no-ip2.conf

Seleccionad el host y el tiempo de intervalo de actualización, y habremos acabado. Como véis, se nos pregunta si deseamos ejecutar alguna aplicación o script al finalizar la actualización. Esto es muy útil, para por ejemplo enviarnos un correo electrónico cada vez que se actualice la ip, para estar informados…

Configuración del cliente de No-ip.com

Una vez finalizado el procedimiento anterior, tenemos el fichero de configuración disponible en /usr/local/etc/no-ip2.conf. No intentéis editarlo, está en formato raw (crudo), es decir, es un binario…

Si quisierais cambiar algo, como el tiempo de actualización o bien el script, deberéis volver a ejecutar el make install o el comando:

jordi@raspberrypi ~ $ /usr/local/bin/noip2 -C

Esto regenerará un nuevo fichero de configuración vacío y se volverá a pedir las credenciales…

Ejecución del cliente

Para dejar el cliente ejecutándose en background, realizaremos la misma llamada que para la configuración, pero sin el modificador -C:

jordi@raspberrypi ~ $ /usr/local/bin/noip2

Para iniciarlo en cada arranque, deberemos configurar un script que se ejecute automáticamente en cada inicio del sistema.

Para ello podemos generar un nuevo daemon script en /etc/init.d. Visitad mi entrada RasPi: creando scripts de arranque para saber cómo hacerlo.

 

Jordi

 

Share Button

Related Images:

Un comentario

  1. Pingback: RasPi: creando scripts de arranque | jormc.es

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.