Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El script que programamos está basado en el failover script de la wiki de Mikrotik, pero logramos simplificarlo para que sea de facil
implementación. La lógica es la siguiente:
# Please fill the gateway IPs (or interface names in case of PPP)
:local GatewayISP1 192.168.1.1
:local GatewayISP2 172.16.1.1
# Please fill how many ping failures are allowed before fail-over happends
:local FailTreshold 3
# This inicializes the PingFailCount variables, in case this is the 1st time the script has ran
:if ([:typeof $PingFailCountISP1] = "nothing") do={:set PingFailCountISP1 0}
:if ([:typeof $LastPingOk] = "nothing") do={:set LastPingOk 1}
# Check ISP1
:set PingResult [ping $PingTarget count=1 interface=$InterfaceISP1]
:put $PingResult
}
}
} else={
:set PingFailCountISP1 4
}
} else={
:if ($LastPingOk = 0) do={
:set PingFailCountISP1 ($PingFailCountISP1 - 1)
:if ($PingFailCountISP1 = 1) do={
:foreach i in=[/ip route find gateway=$GatewayISP1 && static] do=\
{/ip route set $i distance=1}
:foreach i in=[/ip route find gateway=$GatewayISP2 && static] do=\
{/ip route set $i distance=2}
:log warning "ISP1 is back"
:set PingFailCountISP1 ($PingFailCountISP1 - 1)
:set LastPingOk 1
}
} else={
:set PingFailCountISP1 0
}
}
Si tenes alguna duda, dejala en la caja de comentarios y esperamos que este script les sea de utilidad.