Cara Setting MikroTik Load Balancing dengan 3 ISP
Load balancing atau routing multi-ISP memungkinkan sebuah jaringan mengoptimalkan penggunaan bandwidth dari tiga penyedia layanan internet (Internet Service Provider) sekaligus. MikroTik RouterOS merupakan platform yang populer dalam mengimplementasikan teknik ini berkat fleksibilitas konfigurasinya.
Artikel ini akan membahas step-by-step proses konfigurasi load balancing pada MikroTik RouterOS menggunakan tiga koneksi ISP (ISP‑A, ISP‑B, ISP‑C). Penjelasan meliputi skema IP, pengaturan interface, NAT, firewall mangle, policy routing, dan pemeriksaan trafik. Semua konfigurasi disajikan dalam format RouterOS CLI sehingga dapat langsung disalin dan di-paste di terminal MikroTik.
Pastikan Anda memiliki akses administratif pada router MikroTik yang akan dikerjakan. Pada contoh ini, kami akan menggunakan versi RouterOS 7.x, namun sebagian besar perintah tetap kompatibel dengan versi 6.x dengan beberapa penyesuaian minor.
1. Persiapan Awal
Untuk melakukan konfigurasi load balancing, Anda membutuhkan informasi berikut dari masing-masing ISP:
- IP publik statis atau dinamis (jika dynamic, gunakan DHCP atau PPPoE)
- Gateway default ISP
- Subnet IP yang digunakan ISP (misalnya 10.0.0.0/24)
- Port WAN (misalnya ether3, ether4, ether5)
Berikut contoh data yang akan kita gunakan:
| ISP | Interface | Alamat IP (statis) | Subnet | Gateway |
|---|---|---|---|---|
| ISP‑A | ether3 | 203.0.113.10 | 203.0.113.0/24 | 203.0.113.1 |
| ISP‑B | ether4 | 198.51.100.10 | 198.51.100.0/24 | 198.51.100.1 |
| ISP‑C | ether5 | 192.0.2.10 | 192.0.2.0/24 | 192.0.2.1 |
Di sisi internal jaringan lokal, kita miliki subnet 172.16.0.0/24 untuk LAN yang terhubung ke router melalui interface ether1.
2. Konfigurasi Interface dan Alamat IP
Langkah pertama adalah menambahkan IP static pada masing-masing interface WAN.
/ip address add address=203.0.113.10/24 interface=ether3 comment="ISP-A"
/ip address add address=198.51.100.10/24 interface=ether4 comment="ISP-B"
/ip address add address=192.0.2.10/24 interface=ether5 comment="ISP-C"
Selanjutnya konfigurasi IP LAN.
/ip address add address=172.16.0.1/24 interface=ether1 comment="LAN"
3. Menyiapkan NAT (masquerade)
Semua trafik LAN akan melalui NAT ketika mencapai internet. Tambahkan aturan NAT berikut bagi setiap interface WAN.
/ip firewall nat add chain=srcnat out-interface=ether3 action=masquerade
/ip firewall nat add chain=srcnat out-interface=ether4 action=masquerade
/ip firewall nat add chain=srcnat out-interface=ether5 action=masquerade
Perhatikan bahwa out-interface diatur ke masing-masing blok WAN sehingga NAT hanya berlaku ketika keluar melalui interface tersebut.
4. Menentukan Default Route dengan Prioritas
Pada sistem routing multipath, RouterOS pilih rute default berdasarkan tabel routing. Kita harus menambahkan rute default untuk setiap ISP.
Untuk rute default, atribut distance berguna menandai prioritas. Rute dengan distance paling kecil akan dipilih terlebih dahulu jika tidak ada aturan lain.
/ip route add dst-address=0.0.0.0/0 gateway=203.0.113.1 scope=1 distance=10
/ip route add dst-address=0.0.0.0/0 gateway=198.51.100.1 scope=1 distance=20
/ip route add dst-address=0.0.0.0/0 gateway=192.0.2.1 scope=1 distance=30
Dengan konfigurasi ini, bila tidak diarahkan secara eksplisit melalui policy routing, lalu lintas akan melewati ISP‑A terlebih dahulu, kemudian ISP‑B, lalu ISP‑C.
5. Memasang Mangle untuk Menandai Paket
Panggung utama load balancing terletak pada penggunaan Mangle di firewall. Hadapatnya operasi matching lalu lintas lalu meng-generate mark-routing dengan nilai yang unik untuk masing-masing rute.
Konfigurasi berikut membagi trafik asal LAN ke dalam 3 grup. Contoh di sini menggunakan metode pct (persentase) untuk menyeimbangkan beban 50 % pada ISP‑A, 30 % pada ISP‑B, dan 20 % pada ISP‑C.
/ip firewall mangle add chain=prerouting src-address=172.16.0.0/24 action=mark-routing new-routing-mark=ISP-A per-instance=100 host-portrange=80-443 protocol=tcp comment="Bandir 50% ISP-A"
/ip firewall mangle add chain=prerouting src-address=172.16.0.0/24 action=mark-routing new-routing-mark=ISP-B per-instance=100 pct=30 comment="Bandir 30% ISP-B"
/ip firewall mangle add chain=prerouting src-address=172.16.0.0/24 action=mark-routing new-routing-mark=ISP-C per-instance=100 pct=20 comment="Bandir 20% ISP-C"
Penjelasan:
action=mark-routingmemberi tag paket.new-routing-markmenentukan identitas rute.- Isu
per-instance=100memungkinkan pembagian tertangkap secara konstan. - Parameter
pctadalah persentase untuk setiap aturan. RouterOS mengalokasikan paket secara acak dengan nilai persentase yang ditentukan.
Jika anda menyukai pembagian berdasarkan port tertentu atau filter lainnya, tinggal menyesuaikan protocol dan port sendinya.
6. Membuat Rute Berdasarkan Mark Routing
Setelah menandai paket, Anda perlu membuat rute khusus agar setiap paket dikelola melalui gateway yang sesuai. Tambahkan rute berikut:
/ip route add dst-address=0.0.0.0/0 gateway=203.0.113.1 routing-mark=ISP-A
/ip route add dst-address=0.0.0.0/0 gateway=198.51.100.1 routing-mark=ISP-B
/ip route add dst-address=0.0.0.0/0 gateway=192.0.2.1 routing-mark=ISP-C
Keunikan routing-mark di sini memungkinkan RouterOS mengaitkan paket berlabel ISP-A, ISP-B, atau ISP-C ke rute default masing‑masing.
7. Menambahkan Firewall Filter untuk Melindungi Rute (Opsional)
Untuk mencegah paket luar tiba di rute yang tidak lazim atau mencemari rute load balance, penggunaan filter kontrol dapat membantu:
/ip firewall filter add chain=forward src-address=172.16.0.0/24 dst-address=0.0.0.0/0 in-interface=ether1 action=accept comment="Allow LAN traffic"
/ip firewall filter add chain=forward src-address=172.16.0.0/24 dst-address=0.0.0.0/0 out-interface=ether3 action=accept comment="Accept outgoing via ISP-A"
/ip firewall filter add chain=forward src-address=172.16.0.0/24 dst-address=0.0.0.0/0 out-interface=ether4 action=accept comment="Accept outgoing via ISP-B"
/ip firewall filter add chain=forward src-address=172.16.0.0/24 dst-address=0.0.0.0/0 out-interface=ether5 action=accept comment="Accept outgoing via ISP-C"
/ip firewall filter add chain=forward action=drop comment="Drop all other traffic"
Aturan ini menjamin bahwa lalu lintas keluar hanya lewat interface yang sudah ditentukan.
8. Quick Check: Melacak Rute Aktif
Gunakan perintah ping dan traceroute dari MikroTik untuk memverifikasi rute. Contoh:
/ping 8.8.8.8 routing-mark=ISP-A
/traceroute 8.8.8.8 routing-mark=ISP-B
Jika trace menunjukkan perubahan rute, konfigurasi berfungsi.
9. Menyesuaikan Load Balancing dengan PCC (Per Connection Classifier)
Metode pct di atas sederhana namun dapat mengalami pergeseran beban secara tidak seimbang dalam jangka panjang. Untuk pendekatan yang lebih stabil, gunakan PCC.
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80,443 action=mark-routing new-routing-mark=ISP-A per-instance=1 classifier=src-as-pool:poolA dst-as-pool:poolA \
comment="PCC for HTTP/HTTPS over ISP-A"
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80,443 action=mark-routing new-routing-mark=ISP-B per-instance=1 classifier=src-as-pool:poolB dst-as-pool:poolB \
comment="PCC for HTTP/HTTPS over ISP-B"
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80,443 action=mark-routing new-routing-mark=ISP-C per-instance=1 classifier=src-as-pool:poolC dst-as-pool:poolC \
comment="PCC for HTTP/HTTPS over ISP-C"
Anda perlu membuat as-pool terlebih dahulu:
/ip firewall address-pool add name=poolA ranges=172.16.0.1-172.16.0.30
/ip firewall address-pool add name=poolB ranges=172.16.0.31-172.16.0.60
/ip firewall address-pool add name=poolC ranges=172.16.0.61-172.16.0.90
Dengan PCC, setiap koneksi baru divendor ke ISP tertentu berbasis rule berikut, sehingga aliran data dalam satu koneksi akan tetap melewati jalur yang sama.
10. Menyederhanakan Monitoring
Untuk memonitor trafik, gunakan Torch atau IP Traffic Flow. Berikut contoh perintah Torch:
/tool torch interface=ether3
/tool torch interface=ether4
/tool torch interface=ether5
Ada lebih banyak statistik yang dapat dikelola dengan /ip traffic-flow namun sebuah contoh sederhana:
/ip traffic-flow export file=traffic.csv
File CSV dapat diimpor ke spreadsheet untuk analisis tren bulanan.
11. Diagnostik Masalah Umum
- DNS Tidak Berfungsi – Pastikan DNS server bisa dihubungi melalui salah satu ISP. Konfigurasi DNS di MikroTik bisa diatur di
/ip dns set servers=8.8.8.8,8.8.4.4atau gunakan DNS lokal. - Konflik Alamat IP – Pastikan IP publik kredensial tidak tumpang tindih. Di RouterOS, gunakan
/ip address printuntuk meninjau semua IP. - Masalah Routing – Cek log:
/log print where message~"route" - Trafik Tidak Balancing – Periksa mangle lama:
Pastikan/ip firewall mangle printper-instancedanpctberfungsi. - Latency Tinggi – Jika satu ISP dalam keadaan overload, pertimbangkan
Barrierdi mangle untuk mencegah paket gagal mengalir melalui jalur bermasalah.
12. Menangani Failover (Redundansi)
Pada skenario 3 ISP, biasanya Anda tetap menginginkan redundansi. Salah satu cara sederhana adalah menambahkan Routing Mark yang sesuai dengan kondisi health check. Anda dapat menggunakan Firewall User-List untuk menandai liveness.\n
/ip firewall user-list add list=ISP-A-Alive address=203.0.113.10
/ip firewall user-list add list=ISP-B-Alive address=198.51.100.10
/ip firewall user-list add list=ISP-C-Alive address=192.0.2.10
Selanjutnya, buat mangle yang menyesuaikan routing-mark hanya bila user-list berisi alamat. Contohnya:
/ip firewall mangle add chain=prerouting src-address=172.16.0.0/24 user-list=ISP-A-Alive action=mark-routing new-routing-mark=ISP-A comment="Mark if ISP-A alive"
/ip firewall mangle add chain=prerouting src-address=172.16.0.0/24 user-list=ISP-B-Alive action=mark-routing new-routing-mark=ISP-B comment="Mark if ISP-B alive"
/ip firewall mangle add chain=prerouting src-address=172.16.0.0/24 user-list=ISP-C-Alive action=mark-routing new-routing-mark=ISP-C comment="Mark if ISP-C alive"
Jika salah satu gateway tidak merespon, user‑list tidak akan memiliki alamat dan mangle tidak memberi mark‑routing tersebut. Upload ke script health‑check eksternal atau gunakan IP SLA di MikroTik untuk memantau respons waktu.
13. Menyesuaikan Load Balancing Berdasarkan Traffic Type
Beberapa organisasi menginginkan bandwidth 90‑10‑0 dengan 90 % trafik HTTP, 10 % FTP, dan 0 % FTP/SSH. Berikut contoh praktik:
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80,443 action=mark-routing new-routing-mark=ISP-A per-instance=1 comment="HTTP/HTTPS via ISP-A"
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=21,22,23,25 action=mark-routing new-routing-mark=ISP-B per-instance=1 comment="FTP/SSH via ISP-B"
/ip firewall mangle add chain=prerouting protocol=all action=mark-routing new-routing-mark=ISP-C per-instance=1 comment="All other traffic via ISP-C"
Dengan metode ini, setiap jenis trafik dialihkan ke gateway yang optimal.
14. Mengoptimalkan QoS Bersamaan dengan Load Balancing
Setelah paket Anda melebihi jalur yang ditandai, anda dapat terus menerapkan Queue Class di RouterOS:
/queue simple add name="Upload-ISP-A" target=0.0.0.0/0 max-limit=10M/5M
/queue simple add name="Upload-ISP-B" target=0.0.0.0/0 max-limit=5M/2M
/queue simple add name="Upload-ISP-C" target=0.0.0.0/0 max-limit=2M/1M
Atur priority, panjang buffer, dan backlog sesuai tujuan. Dengan kombinasi mangle dan queue, trafik dapat di‑prioritaskan dengan akurat.
15. Mengatur Skrip Otomatis untuk Reset dan Pembaruan
Stakeholder jaringan memerlukan skrip yang dapat dijalankan secara terjadwal. Berikut contoh skrip sederhana yang dapat menyimpan konfigurasi ke file di jaringan.
/system scheduler add name="Backup-RouterConfig" interval=24h on-event="/system backup save name=router_config_$(/system clock get time stamp=1)\.tar.gz"
/system scheduler add name="Health-Check" interval=5m on-event="/tool snmp walk name=router_isp_a .1.3.6.1.2.1.1.3.0"
/system scheduler add name="Rest-Interface" interval=1h on-event="/interface reset-statistics interface=ether3,ether4,ether5"
/system scheduler add name="Check-Connectivity" interval=2m on-event="/ping 8.8.8.8 count=1 interval=1s"
/system scheduler add name="Clean-OldBackups" interval=48h on-event="/file remove [file find name~\"router_config_...\"]"
Jangan lupa menyesuaikan jalur backup ke FTP atau SMB share untuk keperluan pemulihan.
16. Contoh Konfigurasi Akhir (keseluruhan)
Di bawah ini terdapat contoh skrip lengkap yang dapat Anda paste satu per satu di terminal MikroTik. Skrip ini menyertakan interface, IP, NAT, perutean, mangle, firewall, dan jadwal.
# Konfigurasi Interface dan IP
/ip address add address=203.0.113.10/24 interface=ether3 comment="ISP-A"
/ip address add address=198.51.100.10/24 interface=ether4 comment="ISP-B"
/ip address add address=192.0.2.10/24 interface=ether5 comment="ISP-C"
/ip address add address=172.16.0.1/24 interface=ether1 comment="LAN"
# NAT
/ip firewall nat add chain=srcnat out-interface=ether3 action=masquerade
/ip firewall nat add chain=srcnat out-interface=ether4 action=masquerade
/ip firewall nat add chain=srcnat out-interface=ether5 action=masquerade
# Default Route
/ip route add dst-address=0.0.0.0/0 gateway=203.0.113.1 scope=1 distance=10
/ip route add dst-address=0.0.0.0/0 gateway=198.51.100.1 scope=1 distance=20
/ip route add dst-address=0.0.0.0/0 gateway=192.0.2.1 scope=1 distance=30
# Mangle
/ip firewall mangle add chain=prerouting src-address=172.16.0.0/24 action=mark-routing new-routing-mark=ISP-A per-instance=100 pct=50 comment="50% ISP-A"
/ip firewall mangle add chain=prerouting src-address=172.16.0.0/24 action=mark-routing new-routing-mark=ISP-B per-instance=100 pct=30 comment="30% ISP-B"
/ip firewall mangle add chain=prerouting src-address=172.16.0.0/24 action=mark-routing new-routing-mark=ISP-C per-instance=100 pct=20 comment="20% ISP-C"
# Routing Mark Rute
/ip route add dst-address=0.0.0.0/0 gateway=203.0.113.1 routing-mark=ISP-A
/ip route add dst-address=0.0.0.0/0 gateway=198.51.100.1 routing-mark=ISP-B
/ip route add dst-address=0.0.0.0/0 gateway=192.0.2.1 routing-mark=ISP-C
# Filter Firewall
/ip firewall filter add chain=forward src-address=172.16.0.0/24 action=accept comment="LAN to internet"
/ip firewall filter add chain=forward src-address=172.16.0.0/24 dst-address=0.0.0.0/0 in-interface=ether1 action=accept comment="LAN inbound"
/ip firewall filter add chain=forward src-address=172.16.0.0/24 dst-address=0.0.0.0/0 out-interface=ether3 action=accept comment="WAN A"
/ip firewall filter add chain=forward src-address=172.16.0.0/24 dst-address=0.0.0.0/0 out-interface=ether4 action=accept comment="WAN B"
/ip firewall filter add chain=forward src-address=172.16.0.0/24 dst-address=0.0.0.0/0 out-interface=ether5 action=accept comment="WAN C"
/ip firewall filter add chain=forward action=drop comment="Drop other"
# Scheduler
/system scheduler add name="Backup-Config" interval=24h on-event="/system backup save name=router_config_$(/system clock get time stamp=1)\.tar.gz"
17. FAQ (Frequently Asked Questions)
- Bagaimana jika satu ISP keluar dari keadaan normal lewat SSL‑Inspection? Pada kasus ini, router akan tetap mengirimkan paket lewat gateway yang dialokasikan sebelum mengidentifikasi kegagalan. Gunakan
IP SLAuntuk deteksi lebih cepat. - Apakah load balancing dapat dilakukan tanpa mangle? Tidak, karena mangle diperlukan untuk menandai paket agar routing provider dapat menggunakan
routing-mark. Tanpa mangle, semua paket akan diputuskan hanya berdasarkan default routing. - Bisakah saya menggunakan percabangan berdasarkan source port? Ya, gunakan
src-portdi mangle untuk menyesuaikan beban. - Bagaimana menyesuaikan kapasitas upload secara real‑time? Integrasikan Queue Priority dengan monitoring bandwidth per ISP.
18. Kesimpulan
Load balancing dengan tiga ISP pada MikroTikRouterOS melibatkan beberapa komponen penting:
- IP Addressing – menetapkan IP publik dan LAN.
- NAT – mengenkripsi lalu lintas keluar.
- Routing Mark – menandai paket berdasarkan kebutuhan.
- Routing Marked Routes – menautkan paket berlabel ke gateway tertentu.
- Firewall Mangle – mengatur label paket.
- Monitoring – memakai Torch, IP SLA, atau scheduler.
Dengan mengikuti panduan ini, Anda dapat meningkatkan ketersediaan, manajemen bandwidth, dan toleransi kesalahan jaringan. Selalu lakukan uji coba di lingkungan staging sebelum merilis ke produksi, dan dokumentasikan setiap perubahan konfigurasi untuk referensi di masa depan.
Semoga artikel ini membantu Anda dalam menyiapkan MikroTik load balancing dengan tiga ISP secara optimal.