[MIKROTIK] Recursive gateway and fail over - fourslickz/notes GitHub Wiki

SETUP ETHERNET NAME

/interface ethernet
set [ find default-name=ether1 ] name=ether1-speedy
set [ find default-name=ether2 ] name=ether2-biznet
set [ find default-name=ether3 ] name=ether3-lan

SETUP IP ADDRESS

/ip address
add address=192.168.1.254/24 interface=ether1-speedy network=192.168.1.0
add address=192.168.18.254/24 interface=ether2-biznet network=192.168.18.0
add address=192.168.0.254/24 interface=ether3-lan network=192.168.0.0

SETUP NAT

/ip firewall nat
add action=masquerade chain=srcnat comment=NAT-LAN src-address=192.168.0.0/24

SETUP MANGLE PORT 80 & 443

/ip firewall mangle
add action=mark-routing chain=prerouting comment=route-browsing dst-port=\
    80,443 in-interface=ether9-lan new-routing-mark=route-browsing \
    passthrough=no protocol=tcp src-address=192.168.0.0/24
add action=mark-routing chain=prerouting comment=route-browsing dst-port=\
    80,443 in-interface=ether9-lan new-routing-mark=route-browsing \
    passthrough=no protocol=udp src-address=192.168.0.0/24

SETUP ROUTING

/ip route
add check-gateway=ping distance=1 dst-address=8.8.8.8/32 gateway=192.168.100.1 comment=RECURSIVE
add check-gateway=ping distance=1 gateway=8.8.8.8 target-scope=30 comment=INDIHOME 
add check-gateway=ping distance=2 gateway=192.168.18.1 comment=BIZNET 
add check-gateway=ping distance=1 gateway=192.168.18.1 routing-mark=route-browsing comment=route-browsing 

SCRIPT PING

/ system script add name="ping-check" source= \
       :local target "10.10.2.1"
       :local totalsent 10
       :local success [/ping count=$totalsent $target ]
       
       :if ( ($success * 100 / $totalsent) > 50 ) do={ :put "good" } else={ :put "not good" }