RouterOS Dual ADSL Load Balancing Script
[plain] # may/25/2013 09:26:48 by RouterOS 5.20
/ip firewall mangle add action=mark-connection chain=input disabled=no in-interface=pppoe-out1 new-connection-mark=wan1_conn passthrough=yes add action=mark-connection chain=input disabled=no in-interface=pppoe-out2 new-connection-mark=wan2_conn passthrough=yes add action=mark-routing chain=output connection-mark=wan1_conn disabled=no new-routing-mark=to_wan1 passthrough=yes add action=mark-routing chain=output connection-mark=wan2_conn disabled=no new-routing-mark=to_wan2 passthrough=yes add action=mark-connection chain=prerouting disabled=no dst-address-type=!local in-interface=wan1 new-connection-mark=wan1_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:2/0 add action=mark-connection chain=prerouting disabled=no dst-address-type=!local in-interface=wan1 new-connection-mark=wan2_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1 add action=mark-connection chain=prerouting disabled=no dst-address-type=!local in-interface=wan2 new-connection-mark=wan1_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:2/0 add action=mark-connection chain=prerouting disabled=no dst-address-type=!local in-interface=wan2 new-connection-mark=wan2_conn passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1 add action=mark-routing chain=prerouting connection-mark=wan1_conn disabled=no in-interface=wan1 new-routing-mark=to_wan1 passthrough=yes add action=mark-routing chain=prerouting connection-mark=wan2_conn disabled=no in-interface=wan1 new-routing-mark=to_wan2 passthrough=yes add action=mark-routing chain=prerouting connection-mark=wan1_conn disabled=no in-interface=wan2 new-routing-mark=to_wan1 passthrough=yes add action=mark-routing chain=prerouting connection-mark=wan2_conn disabled=no in-interface=wan2 new-routing-mark=to_wan2 passthrough=yes
/ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=pppoe-out1 add action=masquerade chain=srcnat disabled=no out-interface=pppoe-out2
/ip route add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out1 routing-mark=to_wan1 scope=30 target-scope=10 add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out2 routing-mark=to_wan2 scope=30 target-scope=10 add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=pppoe-out1 scope=30 target-scope=10 add check-gateway=ping disabled=no distance=2 dst-address=0.0.0.0/0 gateway=pppoe-out2 scope=30 target-scope=10
This script was copied from a foreigner named Alex.
I’ve personally verified it works well. His original script was for 4 lines.
You can scale it up by modifying 2/0 2/1 to 4/0 4/1 4/2 4/3. Online banking also works fine, and the download bandwidth can be aggregated.
In the interfaces menu, the dial-up ends are wan1 and wan2; the LAN-facing interface is lan. The PPPoE dial-up connections are pppoe-out1 and pppoe-out2. It’s better to use these default names.
Modifying these symbols back and forth can easily cause confusion.
The network card interfaces and dial-up connections need to be added manually. The key parts are mainly the mangle and route sections.
After copying, just paste it into a new terminal window to apply.