LOAD BALANCING PCC SCRIPT MIKROTIK
From Input
Fill in according to Interface and Ip
Output Script
Paste the script into the mikrotik terminal
/ip firewall address-list
add list=IP-LOCAL address=192.168.0.0/16
add list=IP-LOCAL address=172.16.0.0/12
add list=IP-LOCAL address=10.0.0.0/8
/ip firewall nat
add chain=srcnat out-interface="{{interface1}}" action=masquerade
add chain=srcnat out-interface="{{interface2}}" action=masquerade
add chain=srcnat out-interface="{{interface3}}" action=masquerade
add chain=srcnat out-interface="{{interface4}}" action=masquerade
add chain=srcnat out-interface="{{interface5}}" action=masquerade
/ip route
add check-gateway=ping distance=1 gateway="{{ip1}}" routing-mark="to-{{interface1}}"
add check-gateway=ping distance=1 gateway="{{ip2}}" routing-mark="to-{{interface2}}"
add check-gateway=ping distance=1 gateway="{{ip3}}" routing-mark="to-{{interface3}}"
add check-gateway=ping distance=1 gateway="{{ip4}}" routing-mark="to-{{interface4}}"
add check-gateway=ping distance=1 gateway="{{ip5}}" routing-mark="to-{{interface5}}"
add check-gateway=ping distance=1 gateway="{{ip1}}"
add check-gateway=ping distance=2 gateway="{{ip2}}"
add check-gateway=ping distance=3 gateway="{{ip3}}"
add check-gateway=ping distance=4 gateway="{{ip4}}"
add check-gateway=ping distance=5 gateway="{{ip5}}"
/ip firewall mangle
add action=accept chain=prerouting dst-address-list=IP-LOCAL src-address-list=IP-LOCAL
add action=accept chain=postrouting dst-address-list=IP-LOCAL src-address-list=IP-LOCAL
add action=accept chain=forward dst-address-list=IP-LOCAL src-address-list=IP-LOCAL
add action=accept chain=input dst-address-list=IP-LOCAL src-address-list=IP-LOCAL
add action=accept chain=output dst-address-list=IP-LOCAL src-address-list=IP-LOCAL
add action=mark-connection chain=input in-interface="{{interface1}}" new-connection-mark="cm-{{interface1}}" passthrough=yes
add action=mark-connection chain=input in-interface="{{interface2}}" new-connection-mark="cm-{{interface2}}" passthrough=yes
add action=mark-connection chain=input in-interface="{{interface3}}" new-connection-mark="cm-{{interface3}}" passthrough=yes
add action=mark-connection chain=input in-interface="{{interface4}}" new-connection-mark="cm-{{interface4}}" passthrough=yes
add action=mark-connection chain=input in-interface="{{interface5}}" new-connection-mark="cm-{{interface5}}" passthrough=yes
add action=mark-routing chain=output connection-mark="cm-{{interface1}}" new-routing-mark="to-{{interface1}}" passthrough=yes
add action=mark-routing chain=output connection-mark="cm-{{interface2}}" new-routing-mark="to-{{interface2}}" passthrough=yes
add action=mark-routing chain=output connection-mark="cm-{{interface3}}" new-routing-mark="to-{{interface3}}" passthrough=yes
add action=mark-routing chain=output connection-mark="cm-{{interface4}}" new-routing-mark="to-{{interface4}}" passthrough=yes
add action=mark-routing chain=output connection-mark="cm-{{interface5}}" new-routing-mark="to-{{interface5}}" passthrough=yes
add action=mark-connection chain=prerouting dst-address-type=!local in-interface={{lan1}} new-connection-mark="cm-{{interface1}}" passthrough=yes per-connection-classifier=both-addresses-and-ports:{{pcc1}}
add action=mark-connection chain=prerouting dst-address-type=!local in-interface={{lan1}} new-connection-mark="cm-{{interface2}}" passthrough=yes per-connection-classifier=both-addresses-and-ports:{{pcc2}}
add action=mark-connection chain=prerouting dst-address-type=!local in-interface={{lan1}} new-connection-mark="cm-{{interface3}}" passthrough=yes per-connection-classifier=both-addresses-and-ports:{{pcc3}}
add action=mark-connection chain=prerouting dst-address-type=!local in-interface={{lan1}} new-connection-mark="cm-{{interface4}}" passthrough=yes per-connection-classifier=both-addresses-and-ports:{{pcc4}}
add action=mark-connection chain=prerouting dst-address-type=!local in-interface={{lan1}} new-connection-mark="cm-{{interface5}}" passthrough=yes per-connection-classifier=both-addresses-and-ports:{{pcc5}}
add action=mark-routing chain=prerouting connection-mark="cm-{{interface1}}" new-routing-mark="to-{{interface1}}" passthrough=yes in-interface={{lan1}}
add action=mark-routing chain=prerouting connection-mark="cm-{{interface2}}" new-routing-mark="to-{{interface2}}" passthrough=yes in-interface={{lan1}}
add action=mark-routing chain=prerouting connection-mark="cm-{{interface3}}" new-routing-mark="to-{{interface3}}" passthrough=yes in-interface={{lan1}}
add action=mark-routing chain=prerouting connection-mark="cm-{{interface4}}" new-routing-mark="to-{{interface4}}" passthrough=yes in-interface={{lan1}}
add action=mark-routing chain=prerouting connection-mark="cm-{{interface5}}" new-routing-mark="to-{{interface5}}" passthrough=yes in-interface={{lan1}}