Cuando es necesario utilizar un DNS dinámico (Dynamic DNS)
Un DNS dinámico se utiliza cuando no dispones de una dirección IP fija en tu conexión a internet. Esto quiere decir que cada vez que tu router se desconecte tu proveedor de internet le asiganará una dirección IP nueva.Esto es lo normal y no tiene porqué ser ningún problema. Pero cuando queremos correr algún servicio (web, correo, ftp, ldap, etc.) y queremos publicarlo en internet entonces sí es un problema. Puesto que no podremos configurar ningún dominio apuntando a nuestra IP para publicar el servicio.
Algunas empresas como www.noip.com nos facilitan esto con el uso de DNS dinámicos. El sistema es simple, corremos un servicio dentro de nuestra red que le envíe peticiones a los servidores de www.noip.com, estos servidores identifican esa petición y vinculan la IP desde la que viene la petición con el dominio que hemos configurado.
De esta forma "siempre"* tendremos acceso a los servicios que hemos publicado en nuestra red con salida a internet con IP dinámica.
* digo "siempre" entrecomillado porque este servicio no deja de ser un proceso que cada cierto tiempo envía una petición a los servidores de www.noip.com, puede que tu proveedor de internet por alguna razón cambie tu IP y el dominio configurado en www.noip.com pase algunos minutos sin apuntar correctamente a la dirección IP correcta. Hasta que vuelva a despertarse el servicio y actualice los datos. Por esta razón no aconsejo utilizar este tipo de utilidades para servicios críticos. Si tienes un servicio critico, contrata con tu proveedor de internet una dirección ip fija.
Por otro lado he encontrado algunos routers desde los que se pueden establecer estas configuraciones, de forma que cada vez que cambia de IP le envía la actualización al servidor de www.noip.com. Este método es algo más seguro. Mira si tu router dispone de esta opción.
Instalando el cliente de www.noip.com
Abrimos un terminal identificamos como root, necesitaremos permisos de administrador para realizar todas estas operaciones. Si no tenemos instalado gcc, lo instalamos con este comando:apt install build-essential gccUna vez instalado bajamos el cliente en el directorio /usr/local/src:
cd /usr/local/srcBajamos el cliente a instalar:
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gzLo descomprimimos:
tar xzf noip-duc-linux.tar.gzEntramos en el directorio resultante de la descompresión:
cd noip-2.1.9-1Ejecutamos los 2 siguientes comandos:
makeSi te aparece un mensaje como "make not found" o "missing gcc" es que no has instalado el gcc. Tendrás que instalar un paquete llamado build-essential que es el que contiene todas las utilidades necesarias para realizar las operaciones de compilado de un código fuente. Y posiblemente no has ejecutado el primer paso.
make install
Configurando el cliente
Antes de configurar el cliente es necesario que tengas una cuenta activa en www.noip.com, si aún no la tienes creala. Los tres primeros host son gratis bajo un subdominio que ellos te facilitarán.Seguimos como root y ejecutamos este comando:
/usr/local/bin/noip2 -CLa "C" tiene que ser mayúscula, con esto empieza el asistente de configuración propiamente dicho y pedirá el correo con el que nos registramos y la contraseña. Luego viene una pregunta importante "Do you wish to update ALL hosts?". Si tenemos varios host creados y respondemos "Yes" nos va a actualizar todos ellos, si respondemos "No" nos va a ir preguntando uno a uno cuales queremos actualizar y luego cada cuantos minutos queremos actualizar.
Ahora ya tenemos el cliente instalado y configurado, podemos ejecutarlo, se quedará funcionando en background:
/usr/local/bin/noip2
Iniciar el cliente con el arranque
Ya tenemos funcionando el cliente, pero nos interesa que cada vez que arranquemos el equipo no tener que ejecutar el comando manualmente, automatizarlo. Para ello creamos un script dentro de "/etc/init.d" con este comando:nano /etc/init.d/noip2Y pegamos en él este código:
#! /bin/sh
# /etc/init.d/noip2
# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <eivind@rygge.org>
# Updated by David Courtney to not use pidfile 130130 for Debian 6.
# Updated again by David Courtney to "LSBize" the script for Debian 7.
### BEGIN INIT INFO
# Provides: noip2
# Required-Start: networking
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start noip2 at boot time
# Description: Start noip2 at boot time
### END INIT INFO
# . /etc/rc.d/init.d/functions # uncomment/modify for your killproc
DAEMON=/usr/local/bin/noip2
NAME=noip2
test -x $DAEMON || exit 0
case "$1" in
start)
echo -n "Starting dynamic address update: "
start-stop-daemon --start --exec $DAEMON
echo "noip2."
;;
stop)
echo -n "Shutting down dynamic address update:"
start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
echo "noip2."
;;
restart)
echo -n "Restarting dynamic address update: "
start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
start-stop-daemon --start --exec $DAEMON
echo "noip2."
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
Salimos guardando los cambios y le damos permisos de ejecución:
chmod +x /etc/init.d/noip2Lo añadimos al inicio con el comando:
cd /etc/init.d/ && update-rc.d noip2 defaultsDespués de reiniciar podemos comprobar que está funcionando con el comando:
ps aux --forestDonde podemos ver el proceso de noip2 ejecutándose correctamente.
O este otro propio de noip2:
/usr/local/bin/noip2 -SQue nos devolverá algo parecido a esto:
1 noip2 process active.
Process 135, started as noip2, (version 2.1.9)
Using configuration from /usr/local/etc/no-ip2.conf
Last IP Address set *.*.*.*
Account jmruiz@openhr.cloud
configured for:
host midominio.ddns.net
Updating every 30 minutes via /dev/eth0 with NAT enabled.