49 lines
1.5 KiB
Perl
49 lines
1.5 KiB
Perl
# for this you
|
|
# this script depends on 5 routes
|
|
# 1. with the comment "MAINGW" this will be always changed depends on if DSL is available
|
|
# 2. with comment "DSL" this is your route where normally all your traffic goes
|
|
# 3. 1.1.1.1 over DSL fixed
|
|
# 4. with comment "LTE" if ping to 1.1.1.1 fails
|
|
# 5. route to your uptime kuma,
|
|
#
|
|
# uptime kuma is externally hosted and only available over a vpn
|
|
#
|
|
|
|
|
|
|
|
:local LanInterface ether1
|
|
|
|
:local PingTargetOne 1.1.1.1
|
|
:local FailThreshholdOne 3
|
|
|
|
:global PingFailCountOne
|
|
|
|
:local maingw [/ip route get [find comment="MAINGW"] gateway ];
|
|
:local dslgw [/ip route get [find comment="DSL"] gateway ];
|
|
:local ltegw [/ip route get [find comment="LTE"] gateway ];
|
|
|
|
:set $PingResult [ping 1.1.1.1 count=1]
|
|
:put $PingResult
|
|
|
|
:if ($PingResult = 0) do={
|
|
:if ($PingFailCountONE < ($FailTresholdOne+2)) do={
|
|
:set $PingFailCountOne ($PingFailCountOne + 1)
|
|
:log warning "Ping to $PingTargetONE failed."
|
|
|
|
:if ( PingFailCountOne >= $FailTreshold) do={
|
|
:log warning "Change default route to LTE Backup!"
|
|
:log info "Change default route to LTE Backup!"
|
|
|
|
/ip route set [find comment="MAINGW"] gateway=$ltegw
|
|
/ip route set [find comment="UPTIME_KUMA"] type=blackhole
|
|
}
|
|
}
|
|
}
|
|
:if ($PingResult = 1) do={
|
|
:if ($PingFailCountOne > 0) do={
|
|
:set PingFailCountOne 0
|
|
:log info "Reset route to DSL"
|
|
/ip route set [find comment="MAINGW"] gateway=$dslgw
|
|
/ip route set [find comment="UPTIME_KUMA"] type=unicast
|
|
}
|
|
} |