RouterOS 7 multiwan pppoe loadbalance script
/interface/list/add name=WAN comment="For Internet"
/interface/list/add name=LAN comment="For Local Area Networks"
/interface pppoe-client
add disabled=no interface=ether1 name=pppoeout-01 add-default-route=no user=fpt1 password=fpt1
add disabled=no interface=ether2 name=pppoeout-02 add-default-route=no user=vnpt1 password=vnpt1
/interface/bridge/
add name=bridge-lan-01 comment=LAN1
add name=bridge-lan-02 comment=LAN2
/interface/bridge/port
add bridge=bridge-lan-01 interface=ether3
add bridge=bridge-lan-01 interface=ether4
add bridge=bridge-lan-01 interface=ether5
/interface/list/member/add interface=ether1 list=WAN comment="Uplink WAN for PPPoE-01"
/interface/list/member/add interface=ether2 list=WAN comment="Uplink WAN for PPPoE-02"
/interface/list/member/add interface=pppoe-01 list=WAN comment=PPPoE-01
/interface/list/member/add interface=pppoe-02 list=WAN comment=PPPoE-02
/interface/list/member/add interface=bridge-lan-01 list=LAN
/interface/list/member/add interface=bridge-lan-02 list=LAN
/ip/neighbor/discovery-settings/set discover-interface-list=!WAN
/tool/mac-server/set allowed-interface-list=LAN
/tool/mac-server/mac-winbox/set allowed-interface-list=LAN
/ip/firewall/address-list
add address=0.0.0.0/8 comment="\"This\" Network" list=BOGONS
add address=10.0.0.0/8 comment="Private-Use Networks" list=BOGONS
add address=100.64.0.0/10 comment="Shared Address Space. RFC 6598" list=BOGONS
add address=127.0.0.0/8 comment="Loopback" list=BOGONS
add address=169.254.0.0/16 comment="Link Local" list=BOGONS
add address=172.16.0.0/12 comment="Private-Use Networks" list=BOGONS
add address=192.0.0.0/24 comment="IETF Protocol Assignments" list=BOGONS
add address=192.0.2.0/24 comment="TEST-NET-1" list=BOGONS
add address=192.168.0.0/16 comment="Private-Use Networks" list=BOGONS
add address=198.18.0.0/15 comment="Network Interconnect Device Benchmark Testing" list=BOGONS
add address=198.51.100.0/24 comment="TEST-NET-2" list=BOGONS
add address=203.0.113.0/24 comment="TEST-NET-3" list=BOGONS
add address=224.0.0.0/4 comment="Multicast" list=BOGONS
add address=192.88.99.0/24 comment="6to4 Relay Anycast" list=BOGONS
add address=240.0.0.0/4 comment="Reserved for Future Use" list=BOGONS
add address=255.255.255.255 comment="Limited Broadcast" list=BOGONS
/ip/dns/set servers=1.1.1.1,8.8.8.8
/ip/address/add interface=bridge-lan-01 address=192.168.88.1/24 comment="LAN1 IP"
/ip/address/add interface=bridge-lan-02 address=172.16.0.1/23 comment="LAN2 IP"
/routing/rule/add dst-address=192.168.88.0/24 table=main action=lookup comment="to LAN1"
/routing/rule/add dst-address=172.16.0.0/23 table=main action=lookup comment="to LAN2"
/ip/firewall/nat/add action=masquerade chain=srcnat comment="Masquerade WAN (non-ipsec)" ipsec-policy=out,none out-interface-list=WAN
/ip/firewall/nat/add action=src-nat chain=srcnat comment="Hairpin to LAN1" out-interface=bridge-lan-01 src-address=192.168.88.0/24 to-addresses=192.168.88.1
/ip/firewall/nat/add action=src-nat chain=srcnat comment="Hairpin to LAN2" out-interface=bridge-lan-01 src-address=172.16.0.0/23 to-addresses=172.16.0.1
/routing/table/add disabled=no fib name=rtab_pppoe-01
/routing/table/add disabled=no fib name=rtab_pppoe-02
/ip/firewall/mangle/add action=mark-connection chain=prerouting comment="Connmark in from PPPoE-01" \
connection-mark=no-mark in-interface=pppoe-01 new-connection-mark=connmark_pppoe0ut-01 passthrough=no
/ip/firewall/mangle/add action=mark-connection chain=prerouting comment="Connmark in from PPPoE-02" \
connection-mark=no-mark in-interface=pppoe-02 new-connection-mark=connmark_pppoeout-02 passthrough=no
/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark \
comment="Address List via PPPoE-01" dst-address-list=!BOGONS dst-address-type=!local new-connection-mark=connmark_pppoeout-01 \
passthrough=yes src-address-list=Via_PPPoE-01
/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark \
comment="Address List via PPPoE-02" dst-address-list=!BOGONS dst-address-type=!local new-connection-mark=connmark_pppoeout-02 \
passthrough=yes src-address-list=Via_PPPoE-02
/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark \
comment="LoadBalance transit connections via PPPoE-01" dst-address-list=!BOGONS dst-address-type=!local new-connection-mark=connmark_pppoeout-01 \
passthrough=yes per-connection-classifier=both-addresses-and-ports:2/0
/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark \
comment="LoadBalance transit connections via PPPoE-02" dst-address-list=!BOGONS dst-address-type=!local new-connection-mark=connmark_pppoeout-02 \
passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1
/ip/firewall/mangle/add action=mark-routing chain=prerouting \
comment="Routemark transit out via PPPoE-01" connection-mark=connmark_pppoeout-01 \
dst-address-type=!local in-interface-list=!WAN new-routing-mark=rtab_pppoeout-01 passthrough=no
/ip/firewall/mangle/add action=mark-routing chain=prerouting \
comment="Routemark transit out via PPPoE-02" connection-mark=connmark_pppoeout-02 \
dst-address-type=!local in-interface-list=!WAN new-routing-mark=rtab_pppoeout-02 passthrough=no
/ip/firewall/mangle/add action=mark-routing chain=output \
comment="Routemark local out via PPPoE-01" connection-mark=connmark_pppoeout-01 \
dst-address-type=!local new-routing-mark=rtab_pppoeout-01 passthrough=no
/ip/firewall/mangle/add action=mark-routing chain=output \
comment="Routemark local out via PPPoE-02" connection-mark=connmark_pppoeout-02 \
dst-address-type=!local new-routing-mark=rtab_pppoeout-02 passthrough=no
/interface/bridge/add name=bridge-loopback comment="Loopback interface for emergency routing"
/ip/route/add distance=254 gateway=bridge-loopback comment="Emergency route"
/ip/route/add comment="Unmarked via PPPoE-01" distance=1 gateway=pppoeout-01
/ip/route/add comment="Unmarked via PPPoE-02" distance=2 gateway=pppoeout-02
/ip route add comment="Marked via PPPoE-01 Main" distance=1 gateway=pppoeout-01 routing-table=rtab_pppoeout-01
/ip route add comment="Marked via PPPoE-01 Backup" distance=2 gateway=pppoeout-02 routing-table=rtab_pppoeout-01
/ip route add comment="Marked via PPPoE-02 Main" distance=1 gateway=pppoeout-02 routing-table=rtab_pppoeout-02
/ip route add comment="Marked via PPPoE-02 Backup" distance=2 gateway=pppoeout-01 routing-table=rtab_pppoeout-02
/ppp profile
add name=profile-pppoe-01 comment="Add/remove route rule for pppoeout-01" on-down="/routing/rule/ remove [find comment=\"From PPPoE-01 IP to Inet\"]" on-up=":if [:tobool ([/routing/rule/ find comment=\"From PPPoE-01 IP to \
Inet\"])] do={\r\
\n /routing/rule/ set [find comment=\"From PPPoE-01 IP to Inet\"] \\\r\
\n src-address=\$\"local-address\" table=rtab_pppoe-01} else={\r\
\n /routing/rule/ add action=lookup comment=\"From PPPoE-01 IP to Inet\" src-address=\$\"local-address\" table=rtab_pppoeout-01 }"
/interface/pppoe-client/set pppoeout-01 profile=profile-pppoeout-01
/ppp profile
add name=profile-pppoe-02 comment="Add/remove route rule for pppoeout-02" on-down="/routing/rule/ remove [find comment=\"From PPPoE-02 IP to Inet\"]" on-up=":if [:tobool ([/routing/rule/ find comment=\"From PPPoE-02 IP to \
Inet\"])] do={\r\
\n /routing/rule/ set [find comment=\"From PPPoE-02 IP to Inet\"] \\\r\
\n src-address=\$\"local-address\" table=rtab_pppoeout-02} else={\r\
\n /routing/rule/ add action=lookup comment=\"From PPPoE-02 IP to Inet\" src-address=\$\"local-address\" table=rtab_pppoeout-02 }"
/interface/pppoe-client/set pppoeout-02 profile=profile-pppoeout-02
Comments
Post a Comment