Load Balancing 2 ISP + Failover 3 ISP (PCC dan Recursive Route)
Pada lab ini, anggap saja kita mempunyai 3 ISP (2 dedicated bandwidth 50Mbps dan 1 shared bandwidth 100Mbps). Jika kita melakukan load balancing sekaligus ke 3 ISP tersebut maka performa jaringan kita akan menjadi tidak optimal karena ada 1 ISP memiliki shared bandwidth. Meskipun angkanya lebih besar daripada yang dedicated, tetapi shared artinya 100Mbps itu masih dibagi-bagi lagi, biasanya bandwidth rata-rata yang kita dapatkan hanya sekitar 15-20Mbps.
Oleh karena itu, kita hanya akan melakukan load balancing menggunakan 2 ISP yang memiliki dedicated bandwidth. Sementara ISP yang memiliki shared bandwidth akan dijadikan sebagai backup ketika semua ISP dedicated bandwidth mengalami masalah (down).
Syarat untuk memahami artikel ini, kamu harus memahi hal-hal berikut:
- Pengalamatan IPv4
- Konsep Firewall Mikrotik
- Static Route
Referensi:
- Pengenalan IPv4
- Subnetting IPv4
- [VIDEO] Citraweb: Konfigurasi Dasar Mikrotik
- Pengenalan Fungsi Routing Dasar
- Mikrotik Docs: Firewall
- Mikrotik Docs: PCC
Akses Cepat:
A. TOPOLOGI
Hostname | Interface | Address |
ISP-1 | (to Gateway) | 11.11.11.1/24 |
ISP-2 | (to Gateway) | 22.22.22.1/24 |
ISP-3 | (to Gateway) | 33.33.33.1/24 |
Gateway | ether1-ISP1 | 11.11.11.254/24 |
ether2-ISP2 | 22.22.22.254/24 | |
ether3-ISP3 | 33.33.33.254/24 | |
ether4-LAN | 192.168.1.1/24 | |
PC (LAN) | eth (to Gateway) | 192.168.1.X/24 |
B. PRECONFIG
1. Konfigurasi IP Address
## berikut ini konfigurasi IP menggunakan cara statis,
## bisa juga menggunakan cara dinamis (dhcp-client).
/ip address
add address=11.11.11.254/24 interface=ether1-ISP1
add address=22.22.22.254/24 interface=ether1-ISP2
add address=33.33.33.254/24 interface=ether1-ISP3
add address=192.168.100.1/24 interface=ether4-LAN
2. Konfigurasi DNS Server
## jangan gunakan DNS bawaan ISP,
## karena terkadang penggunaanya dibatasi.
## gunakan ip public: 8.8.8.8, 208.67.222.222, 208.67.220.220, dll atau dns private milikmu sendiri.
/ip dns
set servers=8.8.8.8,208.67.222.222
3. Interface List
Untuk mempermudah identifikasi dan konfigurasi, kelompokan interface menjadi kelompok LAN untuk interface yang mengarah ke jaringan lokal dan WAN untuk interface yang menuju ke jaringan publik (ISP).
/interface list
add name=LAN
add name=WAN
/interface list member
add interface=ether1-ISP1 list=WAN
add interface=ether2-ISP2 list=WAN
add interface=ether3-ISP3 list=WAN
add interface=ether4-LAN list=LAN
4. NAT
/ip firewall nat
add action=masquerade chain=srcnat out-interface-list=WAN
C. Konfigurasi Load Balancing dan Failover
Load balancing adalah teknologi yang memungkinkan pembagian traffic koneksi ke beberapa jalur koneksi secara seimbang. Contoh pada lab kita kali ini, setiap traffic dari client ke internet akan diteruskan ke dua ISP (ISP1 dan ISP2).
Failover memungkinkan traffic tetap bisa diteruskan ke internet meskipun salah satu jalurnya mati. Failover merupakan hal yang (harusnya) melekat pada load balancing. Kalau ada load balancing pasti ada failover. Contoh: kita akan load balancing menggunakan ISP1 dan ISP2, ketika ISP1 mati maka traffic tetap bisa diteruskan melalui ISP2. Demikian pula sebaliknya, ketika ISP2 mati maka traffic tetap bisa diteruskan melalui ISP1.
Nah, di lab ini, kita sebenarnya punya 3 ISP, kita akan membuat ISP3 sebagai backup ketika ISP1 dan ISP2 mati. Kenapa ISP3 tidak diload balance? Karena IPS3 memiliki shared bandwidth (bandwidthnya tidak tetap) sehingga berpotensi membuat jaringan tidak optimal.
Sebelum memulai konfigurasi, supaya mempermudah membuat rule mangle, buatlah address list yang isinya alamat network LAN dan network yang langsung terkoneksi ke router. Contoh pada topologi di atas, ada ether1-ISP1, ether2-ISP2, ether3-ISP3, dan jaringan LAN (hanya 1), maka:
/ip firewall address-list
add address=11.11.11.0/24 list=LAN
add address=22.22.22.0/24 list=LAN
add address=33.33.33.0/24 list=LAN
add address=192.168.100.0/24 list=LAN
Jika sudah, buatlah mangle yang berfungsi untuk menandai paket yang berasal dari (address-list) LAN menuju ke selain (address-list) LAN. Selain itu mangle ini juga akan membagi (load balance) setiap paket yang lewat menggunakan metode PCC (Per Connection Classifier). Paket tersebut bisa diklasifikasikan berdasarkan src-address, src-port, dst-address, dan dst-port.
1. Firewall Mangle
/ip firewall mangle
add action=mark-routing chain=prerouting src-address-list=LAN dst-address-list=!LAN \
dst-address-type=!local new-routing-mark=route_to_ISP1 passthrough=no \
per-connection-classifier=both-addresses:2/0
add action=mark-routing chain=prerouting src-address-list=LAN dst-address-list=!LAN \
dst-address-type=!local new-routing-mark=route_to_ISP2 passthrough=no \
per-connection-classifier=both-addresses:2/1
Nah sesuai konfig di atas, untuk lab ini, kita akan menggunakan src-address dan dst-address saja (both-address) untuk mengklasifikasikan paket yang lewat. Jadi setiap paket yang lewat akan diberi mark route_to_ISP1 dan route_to_ISP2 secara bergantian sesuai nilai denominator dan remainder.
Contoh, karena bandwidth ISP1 dan ISP2 sama yaitu 50MB, maka kita bisa membaginya dengan perbandingan 1:1. Sehingga kita bagi menjadi dua grup saja. Jumlah grup tersebut adalah nilai denominator. Sedangkan nilai remainder adalah nilai index grup tersebut, contoh grup kita ada 2, maka kita akan buat mangle dengan remainder 0 dan 1 (remainder dimulai dari 0).
Grup 0 akan diberi mark route_to_ISP1.
Grup 1 akan diberi mark route_to_ISP2.
Hal yang berbeda, jika kita punya 2 ISP yang memiliki bandwidth berbeda: 30Mbps dan 10Mbps. Maka kita bisa menggunakan perbandingan 3:1. Berarti nilai denominator-nya adalah 4, dan grupnya (remainder) ada 4 (0,1,2,3). Agar seimbang dan optimal, 3 grup (contoh:0,1,2) diberi mark untuk diteruskan ke ISP 30Mbps, sementara 1 grup sisanya diberi mark untuk ISP yang 10Mbps. Tapi kasus kita ini bandwidthnya sama, maka kita bisa gunakan perbandingan 1:1 saja.
Karakter load balancing PCC both-address adalah paket yang memiliki source address dan destination address yang sama akan selalu dilewatkan ke internet melalui ISP yang sama, selama masih ada session yang established.
Contoh:
1. Src:192.168.1.5, Dst:8.8.8.8, dilewatkan melalui ISP1.
2. Src:192.168.1.5, Dst:157.240.208.35, dilewatkan melalui ISP2.
3. Src:192.168.1.7, Dst:157.240.208.35, dilewatkan melalui ISP1.
4. Src:192.168.1.8, Dst:13.250.177.223, dilewatkan melalui ISP2.
Misalkan ada paket ke-5 seperti ini:
5. Src:192.168.1.5, Dst:157.240.208.35
Jika session paket nomor 2 di atas masih ADA, maka akan dilewatkan melalui ISP2.
Jika session paket nomor 2 di atas sudah TIDAK ADA, maka akan dilewatkan melalui ISP1.
Selanjutnya kita buat recursive route menggunakan protocol static route untuk me-route traffic ke internet. Kita catat dulu gateway masing-masing ISP.
ISP1: 11.11.11.1
ISP2: 22.22.22.1
ISP3: 33.33.33.1
Karena ada 3 ISP yang akan kita gunakan untuk recursive route ke internet, maka kita memerlukan 3 IP publik yang ada di internet untuk dijadikan recursive default gateway. Pastikan IP ini bisa di-ping dan jarang down.
ISP1: 11.11.11.1 ==> 1.0.0.1
ISP2: 22.22.22.1 ==> 1.1.1.1
ISP3: 33.33.33.1 ==> 8.8.4.4
/ip route
## Static host route ke public ip yang ada di internet.
## Atur nilai scope yang baru (bedakan dari default scope=30), contoh=25.
add distance=1 dst-address=1.0.0.1/32 gateway=11.11.11.1 scope=25
add distance=1 dst-address=1.1.1.1/32 gateway=22.22.22.1 scope=25
add distance=1 dst-address=8.8.4.4/32 gateway=33.33.33.1 scope=25
## Default gateway untuk me-route traffic yang berasal dari router itu sendiri.
## Nilai target-scope samakan dengan nilai scope pada static host route.
## Parameter check-gateway=ping membuat router melakukan ping ke gateway setiap interval 10 detik,
## Jika ping 2x timeout secara berturut turut,
## maka link ke ISP yang recursive ke gateway tersebut dianggap down.
add check-gateway=ping distance=1 gateway=1.0.0.1 target-scope=25
add check-gateway=ping distance=2 gateway=1.1.1.1 target-scope=25
add check-gateway=ping distance=3 gateway=8.8.4.4 target-scope=25
## Default gateway untuk me-route traffic yang diberi mark route_to_ISP1.
## Nilai target-scope samakan dengan nilai scope pada static host route.
## Atur prioritas menggunakan distance: ISP1, ISP2, ISP3
add distance=1 gateway=1.0.0.1 routing-mark=route_to_ISP1 target-scope=25
add distance=2 gateway=1.1.1.1 routing-mark=route_to_ISP1 target-scope=25
add distance=3 gateway=8.8.4.4 routing-mark=route_to_ISP1 target-scope=25
## Default gateway untuk me-route traffic yang diberi mark route_to_ISP2.
## Nilai target-scope samakan dengan nilai scope pada static host route.
## Atur prioritas menggunakan distance: ISP2, ISP1, ISP3
add distance=1 gateway=1.1.1.1 routing-mark=route_to_ISP2 target-scope=25
add distance=2 gateway=1.0.0.1 routing-mark=route_to_ISP2 target-scope=25
add distance=3 gateway=8.8.4.4 routing-mark=route_to_ISP2 target-scope=25
Nah berikut hasil konfigurasi mangle dan routing.
D. PENGUJIAN
1. Traceroute dari client (LAN) ke internet.
Biasanya setiap traceroute ke tujuan yang berbeda akan melewati ISP yang berebeda. Tetapi kalau kamu mengetesnya melalui PC client yang ramai koneksinya, ketika traceroute mungkin selalu melewati ISP yang sama.
2. Matikan modem ISP1
Ketika ISP1 down, maka dalam waktu kurang dari 30 detik, active route akan beralih ke ISP2.
3. Matikan modem ISP1 dan ISP2
Ketika ISP2 down, maka dalam waktu kurang dari 30 detik, active route akan beralih ke ISP3.
Apakah total bandwidthnya menjadi sama dengan akumulasi total bandwidth ISP1 dan ISP2? Ya total bandwidth menjadi 50+50 = 100Mbps, tetapi ketika melakukan download single file, maka maksimal 50Mbps karena setiap paket yang memiliki src-address dan dst-address yang sama akan hanya melewati salah satu ISP saja.
Tags: pcc mikrotik, load balancing mikrotik, load balance pcc, load balance pcc mikrotik, load balancing 2 isp, load balancing 3 isp, load balancing 2 wan, load balancing 3 wan, pcc mikrotik 2 wan, pcc mikrotik 3 wan, pcc mikrotik 2 isp, pcc mikrotik 3 isp, pcc mikrotik dan failover, perbedaan load balancing dan failover, cara konfigurasi load balancing mikrotik, konfig pcc mikrotik, traffic sharing mikrotik, load balancing 2 isp dan 1 isp backup, mikrotik pcc, cara kerja pcc, apa itu pcc, per connection classifier, routing rekursif mikrotik, recursiv route mikrotik, check-gateway mikrotik, ip route distance mikrotik, apa itu ip route distance mikrotik, fungsi check-gateway mikrotik, interval check-gateway ping mikrotik, interval check-gateway mikrotik, recursiv static route mikrotik.