Logo Raspberry

Sustituir DynDNS con una Raspberry y dinaIP

|

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 a «Sustituir DynDNS con una Raspberry y dinaIP»

  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 🙂

  6. Avatar de Ivan
    Ivan

    Mil millones de gracias. Al cambiar de router he tenido que volver a configurar precisamente esto y lo he tenido listo en dos minutos. He aprovechado para instalarlo en mi raspberry pi con pi-hole.

    Sugerencia: Este tutorial es de 2014, podriais actualizarlo con lo que hay en los comentarios para los mas novatos.

    1. Avatar de Lucía González

      Hola Iván,
      Muchas gracias por leernos. Tomamos buena nota de tu sugerencia 🙂
      Que tengas un buen día.

    2. Avatar de Lucía González

      Hola Iván,
      Tal y como nos has sugerido, hemos actualizado el tutorial 🙂
      Saludos 😉

Deja una respuesta

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

Newsletter

Recibe quincenalmente consejos muy útiles para tu web y ecommerce. Además, con tu alta te regalamos 3 guías: la Gran Guía de la Digitalización, la Guía de WordPress más completa y la Guía de Ciberseguridad para mantener tu web y pyme seguras.

Conviértete en afiliado

Gana dinero recomendando dinahosting a todo el mundo.