Actualizando IP en VPN con IP Dinámico

Nos suele suceder que necesitamos conectarnos a un servidor VPN pero éste tiene IP Dinámico y trabaja con algún DDNS.

MikroTik no soporta el utilizar dominios para la conexión a servidores VPN, IPSEC entre algunos servicios que requieren de definir un servidor concentrador para conectarse.

Para poder trabajar con ello, se utiliza script que resolverán el DDNS a un IP y lo actualizarán en donde sea necesario.

#************************************************************************************************
# Parameters
#************************************************************************************************
:local hostname "remote.hostname.com"
:local interface "pptp-vpn"
#************************************************************************************************

:global setupIp
:local resolvedIp [:resolve $hostname]

if ([:len [/interface find name=$interface]] > 0) do={
:local type [/interface get [find name=$interface] type];
:set type ([pick $type 0 [find $type "-"]]."-client");
:local cmd [:parse ":global setupIp; :set setupIp [:interface $type get $interface connect-to]"]; $cmd;

:if ($setupIp != $resolvedIp) do={
:set cmd [:parse ":interface $type set $interface connect-to=$resolvedIp"]; $cmd;
:set cmd [:parse ":interface $type disable $interface"]; $cmd;
:set cmd [:parse ":interface $type enable $interface"]; $cmd;
:log warn "$type: Switching interface $interface from IP $setupIp to $resolvedIp"
}
} else={
:log error "Interface $interface not found"
}

Vía: MikroTik