Friday, April 15, 2016

Load Balancing 4 Jalur Speedy Dengan Failover

Saya menggunakan 4 Speedy tembaga dengan kecepatan masing-masing 4 mbps. RouterBoard yang saya pakai adalah seri 2011UiAS-RM.

Mungkin akan berbeda pendekatan scriptnya jika menggunakan Speedy dengan kecepatan berbeda. Silahkan mengoprek sendiri dan mencoba sampai dapat setingan yang pas.
Skema jaringan

Saya anggap anda sudah faham dasar setingan Mikrotik, jadi saya tidak akan memberikan dasar-dasarnya di sini. Jika ingin belajar dasar-dasarnya, ada banyak tutorial di Google. Silahkan pelajari.
Saya juga tidak akan bermain dengan setingan basis GUI karena akan memakan banyak waktu dan pekerjaan.

Silahkan sesuaikan nama Port dan IP untuk jaringan anda terlebih dulu.

Script saya untuk mangle :

/ip firewall mangle
add chain=prerouting dst-address-list=Terhubung in-interface=PORT2_LOCAL \
    src-address-list=Terhubung
add action=mark-connection chain=input in-interface=PORT5_SPEEDY1 \
    new-connection-mark=ISP1_conn
add action=mark-connection chain=input in-interface=PORT6_SPEEDY2 \
    new-connection-mark=ISP2_conn
add action=mark-connection chain=input in-interface=PORT7_SPEEDY3 \
    new-connection-mark=ISP3_conn
add action=mark-connection chain=input in-interface=PORT8_SPEEDY4 \
    new-connection-mark=ISP4_conn
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new in-interface=PORT5_SPEEDY1 new-connection-mark=\
    ISP1_conn
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new in-interface=PORT6_SPEEDY2 new-connection-mark=\
    ISP2_conn
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new in-interface=PORT7_SPEEDY3 new-connection-mark=\
    ISP3_conn
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new in-interface=PORT8_SPEEDY4 new-connection-mark=\
    ISP4_conn
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new dst-address-type=!local in-interface=PORT2_LOCAL \
    new-connection-mark=ISP1_conn per-connection-classifier=\
    both-addresses:4/0
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new dst-address-type=!local in-interface=PORT2_LOCAL \
    new-connection-mark=ISP2_conn per-connection-classifier=\
    both-addresses:4/1
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new dst-address-type=!local in-interface=PORT2_LOCAL \
    new-connection-mark=ISP3_conn per-connection-classifier=\
    both-addresses:4/2
add action=mark-connection chain=prerouting connection-mark=no-mark \
    connection-state=new dst-address-type=!local in-interface=PORT2_LOCAL \
    new-connection-mark=ISP4_conn per-connection-classifier=\
    both-addresses:4/3
add action=mark-routing chain=prerouting connection-mark=ISP1_conn \
    in-interface=PORT2_LOCAL new-routing-mark=to_ISP1 passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP2_conn \
    in-interface=PORT2_LOCAL new-routing-mark=to_ISP2 passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP3_conn \
    in-interface=PORT2_LOCAL new-routing-mark=to_ISP3 passthrough=no
add action=mark-routing chain=prerouting connection-mark=ISP4_conn \
    in-interface=PORT2_LOCAL new-routing-mark=to_ISP4 passthrough=no
add action=mark-routing chain=output connection-mark=ISP1_conn \
    new-routing-mark=to_ISP1 passthrough=no
add action=mark-routing chain=output connection-mark=ISP2_conn \
    new-routing-mark=to_ISP2 passthrough=no
add action=mark-routing chain=output connection-mark=ISP3_conn \
    new-routing-mark=to_ISP3 passthrough=no
add action=mark-routing chain=output connection-mark=ISP4_conn \
    new-routing-mark=to_ISP4 passthrough=no

Gambar 1, Mangle
Kemudian untuk route :

/ip route
add check-gateway=ping distance=1 gateway=8.8.8.8 routing-mark=to_ISP1
add distance=1 gateway=10.20.30.1 routing-mark=to_ISP1
add check-gateway=ping distance=2 gateway=8.8.4.4 routing-mark=to_ISP2
add distance=2 gateway=10.20.30.2 routing-mark=to_ISP2
add check-gateway=ping distance=3 gateway=202.134.0.155 routing-mark=to_ISP3
add distance=3 gateway=10.20.30.3 routing-mark=to_ISP3
add check-gateway=ping distance=4 gateway=208.67.222.222 routing-mark=to_ISP4
add distance=4 gateway=10.20.30.4 routing-mark=to_ISP4
add distance=1 gateway=10.20.30.1
add distance=2 gateway=10.20.30.2
add distance=3 gateway=10.20.30.3
add distance=4 gateway=10.20.30.4
add check-gateway=ping distance=1 dst-address=8.8.4.4/32 gateway=192.168.2.1 scope=10
add check-gateway=ping distance=1 dst-address=8.8.8.8/32 gateway=192.168.1.1 scope=10
add check-gateway=ping distance=1 dst-address=10.20.30.1/32 gateway=8.8.8.8 scope=10
add check-gateway=ping distance=1 dst-address=10.20.30.2/32 gateway=8.8.4.4 scope=10
add check-gateway=ping distance=1 dst-address=10.20.30.3/32 gateway=202.134.0.155 scope=10
add check-gateway=ping distance=1 dst-address=10.20.30.4/32 gateway=208.67.222.222 scope=10
add check-gateway=ping distance=1 dst-address=202.134.0.155/32 gateway=192.168.3.1 scope=10
add check-gateway=ping distance=1 dst-address=208.67.222.222/32 gateway=192.168.0.1 scope=10

Gambar 2, Route List
Bisa diperhatikan bahwa ada beberapa baris dengan route yang unreachable. Ini karena saya mendisable 2 Port ke Modem1 dan Modem3 (perhatikan gambar 3) untuk menguji apakah Failover bekerja atau tidak. Bisa cek hasilnya di PORT2_LOCAL, TX mencapai 5,1Mbps. Ini artinya bahwa loadbalancing telah bekerja menarik bandwidth dari 2 modem yang menyala.
Gambar 3, Interface List

Kemudian script NAT :

/ip firewall nat
add action=masquerade chain=srcnat out-interface=PORT5_SPEEDY1
add action=masquerade chain=srcnat out-interface=PORT8_SPEEDY4
add action=masquerade chain=srcnat out-interface=PORT6_SPEEDY2
add action=masquerade chain=srcnat out-interface=PORT7_SPEEDY3

Gambar 4, NAT

Silahkan mencoba dan semoga berhasil.

0 comments:

Post a Comment