Usar una IP Pública dinámica no es problema gracias a los servicios gratuitos de No-IP que dejan crear subdominios asociados a la IP de nuestro router. Si solemos acceder desde internet a nuestra red de casa, sabremos que si la IP cambia, nos quedaremos sin acceso. Si asociamos la IP pública a un nombre de subdominio, podremos acceder siempre utilizando el nombre de subdominio en lugar de la IP.
Seguid leyendo y os enseñaré a configurar No-IP y Mikrotik con IP dinámica...
¿QUÉ ES No-IP?
El servicio de DNS dinámica de No-IP permite identificar tu PC con un nombre de dominio fácil de recordar, como por ejemplo tuequipo.no-ip.com en lugar de con un número extraño del tipo 223.71.136.21 y poder montar un servidor sin complicaciones independientemente de si tenemos o no una IP estática. De esta forma si la IP cambia siempre podremos acceder a través del nombre de nuestro dominio. Se pueden crear hasta 3 subdominios de forma totalmente gratuita:
Con No-IP podemos tener 3 subdominios de forma totalmente gratis
1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL
2.- CREAR DOMINIO EN No-IP
Lo primero que debemos hacer es crear un sub-dominio gratuito en https://www.noip.com/. Nos crearemos una cuenta de usuario y podremos crear de forma totalmente gratis hasta 3 subdominios. Una vez dentro del panel de control, introduciremos el hostname y el dominio. En este ejemplo el nombre del subdominio será rpfmikrotik.ddns.net:
Crear Subdominio
Una vez creado el dominio, se le asignará de forma automática nuestra IP pública detectada de forma totalmente automática:
Dominio e IP públic asignada
3.- CONFIGURAR EL SCRIPT EN MIKROTIK (CONECTADO DIRECTAMENTE A INTERNET)
Cuando el equipo MikroTik está conectado directamente a Internet, o a través de un router en modo bridge, la interfaz WAN del MikroTik tiene una IP pública de Internet. El script a crear deberá monitorizar si cambia la IP de la WAN y la IP que se resuelve del nombre de dominio creado en No-IP.
El script a utilizar en este caso es el siguiente y se deberán cambiar solamente las 4 variables primeras que aparecen (USERNAME, PASSWORD, WANIFACE, DOMAIN):
############## SCRIPT VARIABLES ##################
:local USERNAME "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo."
:local PASSWORD "password"
:local WANIFACE "WAN"
:local DOMAIN "rpfmikrotik.ddns.net"
:local CURRENTIP [/ip address get [find interface=$WANIFACE] address];
################# MAIN SCRIPT ####################
:for i from=( [:len $CURRENTIP] - 1) to=0 do={
:if ( [:pick $CURRENTIP $i] = "/") do={
:local NEWIP [:pick $CURRENTIP 0 $i];
:if ([:resolve $DOMAIN] != $NEWIP) do={
/tool fetch mode=https user=$USERNAME password=$PASSWORD url="https://dynupdate.no-ip.com/nic/update\3Fhostname=$DOMAIN&myip=$NEWIP" keep-result=no
:log info "NO-IP Update: $DOMAIN - $NEWIP"
} else {
:log info "NO-IP: No IP Changes"
}
}
}
Para crear el script dentro del MikroTik iremos desde "System->Scripts":
Menú Scripts
Dentro de la pestaña "Script", haremos click en + para añadir nuestro nuevo script:
Añadir script
Ahora crearemos el script con un nombre, le daremos los permisos necesarios (READ), pegaremos el contenido de nuestro script y haremos click en "OK":
Script creado
Si nos fijamos en la IP del subdominio, tenemos la IP pública que se nos asignó a la hora de crear el subdominio de forma automática:
IP asignada automáticamente
Lo que haremos será cambiar la IP de nuestro subdominio a otra totalmente inventada, en este caso "1.2.3.4". Cuando ejecutemos nuestro script, la IP deberá cambiar de forma totalmente transparente para nosotros. Una vez añadida la IP inventada haremos click en "Update Hostname":
Actualizar host
En la siguiente imagen se ve como la IP de destino del subdominio ha cambiado a nuestra IP aleatoria:
IP aleatoria
Ahora, si ejecutamos el script de forma manual, la IP del dominio deberá cambiar en No-IP a nuestra IP pública de Internet, concretamente la que tenemos en nuestra interfaz WAN:
[admin@MikroTik] > /system script run No-IP
status: finished
downloaded: 0KiBC-z pause]
total: 0KiB
duration: 1s
Si hacemos F5 en la página de subdominios de No-IP, veremos que efectivamente la IP ha cambiado:
IP cambiada automáticamente
4.- CONFIGURAR EL SCRIPT EN MIKROTIK (CONECTADO DETRÁS DE UN ROUTER)
Si estamos utilizando un MikroTik detrás de un router, la IP pública de Internet no estará asignada a ninguna de las interfaces, por ello, hay que hacer uso de la API de http://ipinfo.io para detectar la IP Pública. El procedimiento es exactamente el mismo que en el paso 3. La principal diferencia es que el script, en este caso es diferente:
############## SCRIPT VARIABLES ##################
:local USERNAME "Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo."
:local PASSWORD "password"
:local DOMAIN "rpfmikrotik.ddns.net"
:local CURRENTIP [:put ([/tool fetch mode=https output=user url="https://ipinfo.io/ip" as-value ]->"data")];
################# MAIN SCRIPT ####################
:if ([:resolve $DOMAIN] != $CURRENTIP) do={
/tool fetch mode=https user=$USERNAME password=$PASSWORD url="https://dynupdate.no-ip.com/nic/update\3Fhostname=$DOMAIN&myip=$CURRENTIP" keep-result=no
:log info "NO-IP Update: $DOMAIN - $CURRENTIP"
} else {
:log info "NO-IP Update: No IP Changes"
}
5.- PROGRAMAR SCRIPT
Para programar el script, crearemos en el programador de tareas una nueva tarea que se ejecutará cada X minutos desde "System->Scheduler":
Programador de tareas
Para crear la tarea haremos click en +:
Añadir tarea
Crearemos la tarea asignándole un nombre "No-IP", en "Start Time" pondremos "startup" y en el intervalo seleccionaremos por ejemplo cada 5 minutos. Los permisos necesarios son READ. En la parte inferior escribiremos lo que queramos que se ejecute cada 5 minutos, o sea, nuestro script creado en pasos anteriores y pulsaremos "OK":
/system script run No-IP
En la siguiente imagen se ve la configuración de la tarea programada:
Tarea programada
Si la IP pública cambia en algún momento, el script se ejecutará cada 5 minutos y si detecta que la IP cambia, se notificará a No-IP:
Nueva IP
ENJOY!