El principio se basa en el uso de la herramienta Netwatch implementada en MikroTik RouterOS con soporte de scripts y verificación adicional al extender la ruta de enrutamiento y comprobar la disponibilidad de la pasarela por defecto.
/system script
add dont-require-permissions=no name=NetWatch-check owner=admin policy=\
reboot,read,write,policy,test source="#Tutaj mozesz zmienic wartosc\r\
\n# ilosc czasu w minutach jak dlugo lacze BACKUP bedzie preferowane\r\
\n# zanim sprawdzimy czy lacze glowne dziala prawidlowo\r\
\n#\r\
\n:global nwwait 15;\r\
\n# pozostaw bez zmian\r\
\n:global nwgw2;\r\
\n:tonum nwgw2;\r\
\n:local nwstatus;\r\
\n:local nwgwstatus;\r\
\nset nwgwstatus ([/tool netwatch get value-name=status [find comment=\
\"NetWatch\"]]);\r\
\nset nwstatus ([/ip route get value-name=distance number=[/ip route f\
ind comment=\"BACKUP\"]]);\r\
\n:if (\$nwstatus = \"6\") do={\r\
\nset nwgw2 (nwgw2 + 1)\r\
\n}\r\
\n:if ((\$nwgw2 > \$nwwait) and (\$nwgwstatus = \"up\")) do={ :log err\
or \"Master GW: OK\"\r\
\n/ip route set [find comment=\"BACKUP\"] distance=66;\r\
\nset nwgw2 (0)\r\
\n}\r\
\n"
add dont-require-permissions=no name=NetWatch owner=admin policy=\
reboot,read,write,test source="/log error \"Master GW: PROBLEM\"\r\
\n/ip route set [find comment=\"BACKUP\"] distance=6\r\
\n\r\
\n"
add dont-require-permissions=no name=NetWatch-init owner=admin policy=\
ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \
source="#ilosc sprawdzen zanim lacze sie przelaczy\r\
\n:global nwwait 20;\r\
\n"
Guiones utilizados:
NetWatch - guión lanzado en caso de fallo del enlace principal
NetWatch-check - un script que se ejecuta temporalmente para verificar el cambio de vuelta al enlace principal, en este script podemos definir cuánto tiempo el BACKUP enlace desde el momento del cambio seguirá siendo el enlace principal antes de comprobar si el enlace principal funciona correctamente. En la situación predeterminada es de 15 minutos.