Logo Raspberry

Sustituir DynDNS con una Raspberry y dinaIP

|

Tiempo de lectura: 2 minutos

Actualizado el miércoles, 23 noviembre, 2022

Tras recibir un correo de Dyn en el que anuncia que próximamente finaliza el servicio de DNS dinámica gratuito, me he puesto manos a la obra y he sustituido esta función utilizando la aplicación dinaIP de Dinahosting.
Aquí os dejo el minitutorial de cómo reemplazar nuestro servicio de DNS dinámico con la aplicación dinaIP y una Raspberry Pi por si a alguien le resulta útil.

¿Qué necesitamos?

  • Raspberry Pi (si no la tenemos, bastaría con el modelo A, más económico pero con menos RAM)
  • Una tarjeta SD (rápida y de al menos 2 GB, aunque te recomiendo que sea mínimo de 4) con Raspbian instalada (un tutorial)
  • La aplicación de dinaIP que podemos descargar en Dinahosting
  • Un nombre de dominio

¿Cómo?

Accedemos por SSH a nuestra Raspberry y nos hacemos root:

pi@raspberry ~ $ sudo su -
[sudo] password for pi:
root@raspberry:~#

Descargamos la aplicación de dinaIP para consola y descomprimos el fichero resultante de la descarga:

root@raspberry:~# wget https://dinahosting.com/utilidades/estandar/aplicaciones/dinaIP-consola.tar.gz&& tar xzpf dinaIP-consola.tar.gz

Nos situamos en la carpeta descomprimida y ejecutamos el instalador

root@raspberry:~# cd dinaIP-consola/
root@raspberry:~/dinaIP-consola# sh install.sh
root@raspberry:

Iniciamos el demonio de dinaIP de forma manual, con nuestro usuario y contraseña de acceso a los paneles:

root@raspberry:~# dinaip -u mi_usuario_molon -p ******

Añadimos nuestro dominio y la zona que queremos utilizar con dinaIP:

root@raspberry:~# dinaip -a example.com:example1

Con esto habremos iniciado el demonio de dinaIP que mantendrá nuestra IP dinámica actualizada en example1.example.com, pero tendremos que lanzarlo de forma manual cada vez que reiniciemos nuestra Raspberry, lo que nos lleva al siguiente punto…

Un poco de magia con init.d y update-rc.d

Para evitar tenemos que lanzar de forma manual cada vez que reiniciemos nuestra Raspberry vamos a hacer que el servicio se inicie de forma automática en cada arranque.

Empezaremos creando un fichero “/etc/init.d/dinaip” con el contenido que podemos ver en este gist (recordad configurar vuestra ID y contraseña) y le daremos permisos de ejecución:

root@raspberry:~# chmod +x /etc/init.d/dinaip

Ahora ya podemos arrancar y detener el servicio con el comando service, pero sigue sin iniciarse de forma automática, para esto tendremos que ejecutar estos 2 comandos (como root):

root@raspberry:~# update-rc.d dinaip defaults
root@raspberry:~# update-rc.d dinaip enable

Y listo, ya tenemos nuestro servicio de DNS dinámico funcionando y arrancando de forma automática en cada inicio.

Configurar la rotación automática de logs

Como los log de dinaIP son bastante detallados y el espacio de mi SD es limitado, ha sido necesario buscar la forma de rotar estos logs, de forma fácil, rápida y que no haga fallar la escritura los mismos…

Por suerte, Raspbian (como Debian y la mayoría de distribuciones Linux) cuenta con logrotate, que nos permite configurar la rotación automática de los ficheros de log.

Creando un fichero de configuración para logrotate

Configurar logrotate es muy fácil, basta con crear un fichero de configuración dentro del directorio “/etc/logrotate.d/’, llamado, por ejemplo dinaip. Yo lo he configurado con las siguientes opciones:

– Conservar logs de los últimos 7 días
– Rotación diaria
– Copiar y truncar el fichero actual
– Comprimir el log antiguo
– Pasar al siguiente fichero si la rotación falla
– No rotar si está en blanco

Puedes consultar el contenido del fichero de configuración aquí

Con esto solucionamos los posibles problemas de espacio si el log crece demasiado, de modo que ahora no tenemos que preocuparnos por el tamaño del mismo.

¡Listo! Nuestro servicio de DNS dinámico, arrancando en cada inicio y sin problemas de espacio, está funcionando.

Victor Rodríguez Domínguez


Avatar de Comunicación Dinahosting

Comentarios

9 respuestas

  1. Avatar de Jose
    Jose

    Hola buenas

    Al intentar logarme con la cuenta me marca este error

    Can’t locate LWP/Simple.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /opt/dinaip) at /opt/dinaip/Proceso.pm line 12.
    BEGIN failed–compilation aborted at /opt/dinaip/Proceso.pm line 12.
    Compilation failed in require at /usr/sbin/dinaip line 15.
    BEGIN failed–compilation aborted at /usr/sbin/dinaip line 15.

    No se si me podeis echar un cable! un saludo

  2. Avatar de guille
    guille

    Y para configurarlo sobre systemd? Llevo un rato tratando de arrancarlo y de momento nada

  3. Avatar de prios

    Hola Jose, dinaIP en consola necesita la librería LWP::Simple. En distribuciones
    basadas en debian está incluido en el paquete libwww-perl, que se puede
    instalar con uno de los siguientes comandos:-> apt-get install libwww-perl -> aptitude install libwww-perlEstos comandos han de ejecutarse como root o con un usuario que pueda hacer sudo. Por ejemplo, con el usuario pi en raspbian (usuario por defecto) se instalaría con cualquiera de los siguientes comandos:-> sudo apt-get install libwww-perl -> sudo aptitude install libwww-perl

  4. Avatar de prios

    Hola GuillePara crear el script de inicio a través de system.d (en este caso solo tiene opciones para iniciar y detener el servicio)
    Creamos, en /etc/systemd/system/, un fichero dinaip.service como el que
    se muestra en este gist (con nuestro usuario y clave): https://gist.github.com/vrdominguez/bc13a3859dfd2243f9ce Le damos permisos de ejecucion: chmod +x /etc/systemd/system/dinaip.service Ejecutamos, como root, los siguientes comandos: systemctl daemon-reload systemctl enable dinaip.serviceListo,
    ya podemos gestinoar dinaip con systemctl y se auto-inicia al iniciar
    la máquina.

  5. Avatar de Carlos
    Carlos

    ¿Alguien intentó configurar dinaIP en un router cisco?

    1. Avatar de Lucía González

      Hola Carlos, ¿nos puedes indicar con qué problemas te encuentras en la configuración?
      Llámanos o facilítanos un método de contacto y te echamos un cable en lo que necesites.

      Un saludo 🙂

Deja una respuesta

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

Newsletter

Suscríbete y recibe periódicamente consejos muy útiles para tu web y ecommerce 🙂 Además, te regalamos
3 guías
: Digitalización, WordPress y Ciberseguridad.

Conviértete en afiliado

Gana dinero recomendando dinahosting a todo el mundo.