Paso 8: Actualización de IP dinámica (DDNS) con Dynu
En este paso se pone en práctica la parte dinámica del Dynamic Domain Name System (DDNS). Se siguen los pasos indicados en la siguiente página:
Use a Raspberry Pi with Dynu DDNS service
En resumen se trata de crear un script que ejecute un cron job cada media hora para mantener los hostnames actualizados a mi IP pública en cada momento.
Es decir, si reinicio el router, obtendré una IP pública nueva asignada por mi operador, de modo que si antes sergio-jimenez.net apuntaba a 80.80.80.80 ahora apuntará (por ejemplo) a 90.90.90.90. Este dato tiene que ser actualizado en la BBDD de Dynu de algún modo. De algún modo hay que decirle a Dynu que sergio-jimenez.net se encuentra ahora en una nueva IP, y la manera oficial de Dynu para hacerlo en la Raspberry Pi es la siguiente:
1. Crear un directorio donde alojar el script (en el siguiente ejemplo, carpeta home del usuario logueado).
cd ~
mkdir dynudns
cd dynudns
2. Crear un script llamado dynu.sh (por ejemplo) con el comando necesario para actualizar la dirección IP. Hago uso del editor nano.
nano dynu.sh
El contenido del script es simplemente la siguiente línea
echo url="https://api.dynu.com/nic/update?username=USERNAME&password=PASSWORD" | curl -k -o ~/dynudns/dynu.log -K -
Parámetros de la URL a modificar:
- USERNAME: usuario de la cuenta de Dynu
- PASSWORD: contraseña hasheada (MD5) de la cuenta de Dynu
3. Hacer el script ejecutable.
chmod 700 dynu.sh
4. Crear un job en cron que ejecute el script cada minuto.
Abrir el archivo crontab.
crontab -e
Añadir la siguiente línea al final:
*/30 * * * * ~/dynudns/dynu.sh >/dev/null 2>&1