Tunnel IPIP mikrotik + ip dinámicas

En esta ocasión, he tenido la necesidad de tumbar un tunel PPTP en una mikrotik, para hacer el cambio contra un tunnel IPIP.

Recordemos que, el tunnel PPTP, aunque sencillo de configurar, tiene los siguientes incovenientes:

– La MTU del tunnel, queda a 1460 bytes; tenemos una sobrecarga de cabeceras considerable.
– El rendimiento de tunnel en general, no es muy bueno.
– Consumo medio de recursos en los routers; requiere cifrado.

el uso de IPIP, viene justificado por:

– La mtu del tunnel, queda en 1480 bytes.
– El rendimiento del tunnel, es muy bueno, en comparación con pptp
– El consumo de cpu en el router, al no llevar cifrado, es casi nulo.

Una vez explicado, tengo el inconveniente de que, en uno de los extremos es ip dinámica…. el tunnel IPIP, recordemos que, va de extremo a extremo… fijado de ip pública a ip pública…… Mirando mikrotik, veo que soporta scripts.

Nos ponemos manos a la obra:

:global ip_nueva [:resolve midominio.dyndns.org]
:global ip_actual [ /interface ipip get 1 remote-address]
if ($ip_nueva!=$ip_actual) do={/interface ipip set 1 remote-address=$ip_nueva }

En el extremo que tenemos ip dinámica, usamos un servicio de dyndns gratuito.

Definimos variables:
1º Línea definimos variable global ip_nueva y le asignamos el valor que tiene el dyndns
2º Consultamos el valor actual de la ip en el tunnel. El número 1 significa el número de tunnel.
3º Si la ip nueva es diferente a la actual….. sorpresa… actualizamos la ip del tunnel.

Esto está muy bien, pero ahora, para ejecutarlo cada minuto…. en la consola de nuestra mikrotik:


add comment="Script ipip Dynamic" disabled=no interval=1m name=ipip1 on-event=":global ip_nueva [:resolve midominio.dyndns.org]r
n:global ip_actual [ /interface ipip get 1 remote-address]r
nif ($ip_nueva!=$ip_actual) do={/interface ipip set 1 remote-address=$ip_nueva }" policy=ftp,read,write,policy,test,winbox,api start-date=feb/13/2014
start-time=14:18:26

Enjoy you dynamic IP 😉