Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #comment Prov1 ip route add 0.0.0.0/0 gw default internet Vmeste
- #comment Prov2 ip route add 0.0.0.0/0 gw reserv internet RTK
- /log error "1"
- /log warning "StartScript uralmicro recovery";
- #Main interface name ether1
- :local MainIf ether1
- #Reserve interface name ether4-Reserv
- :local RsrvIf ether2
- :local PingCount 3
- :local PingTarget1 8.8.8.8
- :local PingTarget2 8.8.4.4
- :local PingTarget3 77.88.8.8
- :local PingTarget1R 91.2.210.2
- :local PingTarget2R 77.88.8.1
- :local PingTarget3R 1.1.1.1
- /log error "Check main default internet connection"
- :local MainIfInetOk false;
- :local PingResult1 [/ping $PingTarget1 count=$PingCount interface=$MainIf]
- :local PingResult2 [/ping $PingTarget2 count=$PingCount interface=$MainIf]
- :local PingResult3 [/ping $PingTarget3 count=$PingCount interface=$MainIf]
- /log warning "ping $PingTarget1=$PingResult1 p, $PingTarget2=$PingResult2 p, $PingTarget3=$PingResult3 p"
- :set MainIfInetOk (($PingResult1 + $PingResult2 + $PingResult3) >= (2 * $PingCount))
- #Check reserved citto internet connection
- :local RsrvIfInetOk false;
- :local PingResultR1 [/ping $PingTarget1R count=$PingCount interface=$RsrvIf]
- :local PingResultR2 [/ping $PingTarget2R count=$PingCount interface=$RsrvIf]
- :local PingResultR3 [/ping $PingTarget3R count=$PingCount interface=$RsrvIf]
- /log warning "ping $PingTarget1R=$PingResultR1 p, $PingTarget2R=$PingResultR2 p, $PingTarget3R=$PingResultR3 p"
- :set RsrvIfInetOk (($PingResultR1 + $PingResultR2 + $PingResultR3) >= (2 * $PingCount))
- if (!$MainIfInetOk) do={
- /log error "Main internet connection error"
- }
- /log warning "Reserv MainIfInetOk $MainIfInetOk";
- if (!$RsrvIfInetOk) do={
- /log error "Reserve internet connection error"
- }
- /log warning "Reserv RsrvIfInetOk $RsrvIfInetOk";
- :local MainGWDistance [/ip route get [find comment="Prov1"] distance]
- :local RsrvGWDistance [/ip route get [find comment="Prov2"] distance]
- /log warning "main d $MainGWDistance"
- /log warning "res d $RsrvGWDistance"
- #SetUp gateways
- if ($MainIfInetOk && ($MainGWDistance >= $RsrvGWDistance)) do={
- /log error "Switch to main internet connection"
- /ip route set [find comment="Prov1"] distance=1
- /ip route set [find comment="Prov2"] distance=2
- /ip firewall connection remove [find]
- /log error "Switch to main internet connection end"
- }
- #SetUp Gateways to Reserv
- if (!$MainIfInetOk && $RsrvIfInetOk && ($MainGWDistance <= $RsrvGWDistance)) do={
- /log error "Switch to Reserv connection"
- /ip route set [find comment="Prov1"] distance=2
- /ip route set [find comment="Prov2"] distance=1
- /ip firewall connection remove [find]
- /log error "Switch to Reserv connection end"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement