En el mundo dinámico de las redes, mantener tu dominio de No-IP actualizado con la dirección IP de tu red puede ser un desafío, especialmente si estás detrás de un NAT. Aquí es donde entra en juego un script de MikroTik, que puede hacer tu vida mucho más fácil automatizando este proceso.

Imagina que estás administrando una red con una dirección IP dinámica. Necesitas asegurarte de que tu dominio de No-IP siempre apunte a la dirección IP correcta, para mantener tus servicios en línea accesibles. Para solucionar esto, puedes usar un script en tu dispositivo MikroTik que actualice automáticamente tu dirección IP en No-IP.

El Script de Actualización

El script que te presento a continuación se encarga de verificar tu dirección IP pública actual y, si ha cambiado desde la última comprobación, actualiza automáticamente la información en tu cuenta de No-IP.

Asegúrate de reemplazar «tu_usuario_no-ip«, «tu_contraseña_no-ip» y «tu_dominio.no-ip.org» con tus credenciales y dominio de No-IP.

#Dynamic DNS Update Script for No-IP DNS behind nat
# Set needed variables
:local username "tu_usuario_no-ip"
:local password "tu_contraseña_no-ip"
:local host "tu_dominio.no-ip.org"

:global previousIP

# print some debug info 
:log info ("Update No-IP DNS: username = $username")
:log info ("Update No-IP DNS: hostname = $host")
:log info ("Update No-IP DNS: previousIP = $previousIP")

# behind nat - get the public address using dyndns url http://checkip.dyndns.org 
/tool fetch mode=http address="checkip.dyndns.org" src-path="/" dst-path="/dyndns.checkip.html"
:local result [/file get dyndns.checkip.html contents]

# parse the current IP result
:local resultLen [:len $result]
:local startLoc [:find $result ": " -1]
:set startLoc ($startLoc + 2)
:local endLoc [:find $result "</body>" -1]
:local currentIP [:pick $result $startLoc $endLoc]
:log info "No-IP DNS: currentIP = $currentIP"

:if ($currentIP != $previousIP) do={
       :log info "No-IP: Current IP $currentIP is not equal to previous IP, update needed"
       :set previousIP $currentIP
       :local url "http://dynupdate.no-ip.com/nic/update\3Fmyip=$currentIP&hostname=$host"
       :log info "No-IP DNS: Sending update for $host"
       /tool fetch url=$url user=$username password=$password mode=http dst-path=("no-ip_ddns_update.txt")
       :log info "No-IP DNS: Host $host updated on No-IP with IP $currentIP"
} else {
   :log info "No-IP: update not needed "
}

 

Implementación y Consideraciones

Para implementar este script:

  1. Accede a tu router MikroTik.
  2. Ve al terminal o al winbox.
  3. Copia y pega el script.
  4. Ajusta los detalles de tu cuenta de No-IP y tu dominio.

Programar la Ejecución del Script

  1. Ve a «System» y luego a «Scheduler».
  2. Crea una nueva tarea programada.
  3. En el campo «On Event» escribe, /system script run nombredelscript
  4. Configura la frecuencia con la que deseas que se ejecute el script. Por ejemplo, cada 30 minutos.

Este script es particularmente útil para redes detrás de NAT, donde la dirección IP pública se asigna dinámicamente. Con este script, ya no tendrás que preocuparte por actualizaciones manuales, tu dominio de No-IP siempre estará sincronizado con tu dirección IP actual.

 

¡Desata el Geek que llevas dentro!

Perfecto para regalar o para darte un capricho