Il principio si basa sull'utilizzo dello strumento Netwatch implementato in MikroTik RouterOS con supporto di script e verifica aggiuntiva estendendo il percorso di routing e verificando la disponibilità del gateway predefinito.
/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"
Script utilizzati:
NetWatch - script lanciato in caso di guasto del collegamento principale
NetWatch-check - uno script in esecuzione temporanea per verificare il ritorno al link principale, in questo script possiamo definire per quanto tempo il link BACKUP dal momento del passaggio rimarrà il link principale prima di verificare se il link principale funziona correttamente. Nella situazione di default è di 15 minuti.