Load Balancing PCC yang diintegrasikan dengan Recursive Gateway adalah teknik efektif untuk membagi trafik secara merata ke dua ISP berdasarkan koneksi, menjaga setiap sesi tetap melalui ISP yang sama (sticky connection), serta memastikan distribusi trafik internet berjalan optimal. Selain itu, metode ini juga memungkinkan failover otomatis jika salah satu ISP mengalami gangguan atau mati total.
Tehnik Ini lebih aman untuk koneksi Games Online, VPN, VoIP, aplikasi perbankan, dan cloud web service yang sensitif sama perubahan public IP.
Konsep Dasar & Persiapan (Prasyarat)
Sebelum mulai konfigurasi (CLI/Winbox), pastikan kita sudah memahami konsep dasarnya.
- Contoh dokumentasi ini menggunakan Mikrotik RouterOS v7.
- Disable FastTrack: PCC dan policy routing bergantung pada mangle marks. FastTrack dapat bypass firewall/mangle.
- PCC (Per Connection Classifier): Trafik dibagi merata antara 2 ISP berdasarkan koneksi dengan mengklasifikasikan koneksi baru ke dalam beberapa grup atau bucket, lalu memastikan semua paket dalam koneksi yang sama tetap melewati link ISP yang sama.
- Recursive Gateway (Recursive Routing): adalah teknik untuk memastikan koneksi internet ISP benar-benar
up, misalnya dengan melakukan ping (probe) ke IP DNS Google 8.8.8.8, jika satu ISP down, trafik dialihkan ke ISP lain otomatis. Anda bisa lihat dokumentasi -> [Setting Recursive Gateway MikroTik v7 untuk Failover] yang membahas tentang Recursive Gateway. - Contoh Topologi multi-WAN 2 ISP:
- ISP 1 : Gateway
192.168.1.1interfaceether1-isp1 - ISP 2 : Gateway
192.168.2.1interfaceether2-isp2 - Target Monitor ISP 1:
1.1.1.1(DNS Cloudflare) - Target Monitor ISP 2:
8.8.8.8(DNS Google) - Subnet LAN:
192.168.88.0/24interfacebridge-lan. - Rasio bandwidth:
1:1(misal ISP1 100Mbps dan ISP2 100Mbps)
- ISP 1 : Gateway
Contoh Setting Load Balancing 2 ISP & Failover Recursive Gateway
Membuat Routing Table (RouterOS v7)
Pada RouterOS versi 7 ke atas, Anda harus membuat routing table terlebih dahulu sebelum menandainya di Mangle.
/routing table
add fib name=to_WAN1
add fib name=to_WAN2
Main Route Default dengan Recursive Gateway
Untuk failover trafik yang berasal dari router itu sendiri seperti ping, DNS resolver, NTP, cloud backup, VPN client atau update system yang dijalankan langsung di router MikroTik. Trafik router tidak dibagi oleh PCC (ga ikut di load balancing).
Buat Fallback / Failover Route (tanpa routing mark)
/ip route
add dst-address=1.1.1.1/32 gateway=192.168.1.1 scope=10 \
comment="Monitor ISP 1"
add dst-address=8.8.8.8/32 gateway=192.168.1.1 scope=10 \
comment="Monitor ISP 2"
Kemudian tambahkan default route di main table.
/ip route
add dst-address=0.0.0.0/0 gateway=1.1.1.1 distance=1 \
target-scope=11 check-gateway=ping \
comment="Main Failover via ISP1"
add dst-address=0.0.0.0/0 gateway=8.8.8.8 distance=2 \
target-scope=11 check-gateway=ping \
comment="Main Failover via ISP2"
distance=1pada ISP1 menjadikannya jalur utama untuk trafik dari router itu sendiri.distance=2pada ISP2 membuatnya menjadi backup.target-scope=11harus lebih tinggi daripadascope=10route/32, agar recursive lookup valid di RouterOS v7.check-gateway=pingmembuat route dianggap tidak aktif bila IP probe tidak dapat diping (request timed out).
Route untuk Routing Mark PCC dengan Recursive Gateway
Buat Default Route untuk Load Balancing PCC
/ip route
add dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-table=to_WAN1 \
distance=1 target-scope=11 check-gateway=ping \
comment="PCC ISP1 primary via ISP1"
add dst-address=0.0.0.0/0 gateway=8.8.8.8 routing-table=to_WAN1 \
distance=2 target-scope=11 check-gateway=ping \
comment="PCC ISP1 fallback via ISP2"
add dst-address=0.0.0.0/0 gateway=8.8.8.8 routing-table=to_WAN2 \
distance=1 target-scope=11 check-gateway=ping \
comment="PCC ISP2 primary via ISP2"
add dst-address=0.0.0.0/0 gateway=1.1.1.1 routing-table=to_WAN2 \
distance=2 target-scope=11 check-gateway=ping \
comment="PCC ISP2 fallback via ISP1"
Router melakukan ping check-gateway=ping ke probe IP Public melalui masing-masing ISP. Jika probe timed out, route menjadi inactive dan backup route dengan distance lebih tinggi mengambil alih. Tehnik ini memastikan bahwa jika ISP1 mati total, koneksi baru yang sebelumnya diarahkan ke to_WAN1 otomatis failover menggunakan ISP2. Tapi, koneksi aktif yang sudah memakai public IP ISP1 biasanya tetap akan terputus dulu (reconnect) karena perubahan public IP.
Bypass Trafik Lokal Sebelum PCC
Tambahkan bypass untuk trafik lokal sebelum PCC. Ini mencegah akses ke router, inter-VLAN, VPN internal, atau ip lokal nyasar diarahkan ke WAN.
/ip firewall address-list
add address=192.168.0.0/16 list=LOCAL-IP
add address=10.0.0.0/8 list=LOCAL-IP
add address=172.16.0.0/12 list=LOCAL-IP
/ip firewall mangle
add chain=prerouting in-interface=bridge-lan dst-address-type=local \
action=accept comment="Bypass trafik menuju router -- input"
add chain=prerouting in-interface=bridge-lan dst-address-list=LOCAL-IP \
action=accept comment="Bypass IP LOKAL"
Konfigurasi Firewall Mangle (PCC)
1️⃣ Menandai koneksi yang masuk dari luar agar kembali ke ISP yang sama:
/ip firewall mangle
add chain=prerouting in-interface=ether1-isp1 connection-mark=no-mark \
action=mark-connection new-connection-mark=WAN1_conn passthrough=yes \
comment="Tandai koneksi masuk ISP1"
add chain=prerouting in-interface=ether2-isp2 connection-mark=no-mark \
action=mark-connection new-connection-mark=WAN2_conn passthrough=yes \
comment="Tandai koneksi masuk ISP2"
Rules ini penting jika ada port-forwarding, server VPN, atau koneksi inbound yang perlu masuk dan keluar melalui ISP yang sama.
2️⃣ Menerapkan PCC untuk memecah trafik LAN ke 2 ISP secara seimbang (both-addresses)
/ip firewall mangle
add chain=prerouting in-interface=bridge-lan connection-mark=no-mark \
dst-address-type=!local per-connection-classifier=both-addresses:2/0 \
action=mark-connection new-connection-mark=WAN1_conn passthrough=yes \
comment="PCC ke WAN1"
add chain=prerouting in-interface=bridge-lan connection-mark=no-mark \
dst-address-type=!local per-connection-classifier=both-addresses:2/1 \
action=mark-connection new-connection-mark=WAN2_conn passthrough=yes \
comment="PCC ke WAN2"
- Saya menggunakan metode both-addresses (source IP dan destination IP) agar sesi login (seperti mobile banking) tetap terhubung meski berpindah-pindah IP publik. Cocok untuk jaringan yang user klien nya banyak.
- Bisa juga menggunakan both-addresses-and-ports (source IP, destination IP, source port, dan destination port) untuk distribusi koneksi internet yang lebih tersebar atau merata. Cocok untuk jaringan yang user klien nya sedikit.
Dan untuk diingat, PCC membagi koneksi (connection-based) ke WAN yang berbeda sekaligus menjaga satu koneksi tetap pada satu ISP yang sama. Jika satu user download besar (single-connection) bandwidth-nya hanya nyedot ke satu ISP.
3️⃣ Ubah connection-mark menjadi routing-mark.
/ip firewall mangle
add chain=prerouting in-interface=bridge-lan connection-mark=WAN1_conn \
action=mark-routing new-routing-mark=to_WAN1 passthrough=no \
comment="Arahkan koneksi PCC WAN1 ke routing table WAN1"
add chain=prerouting in-interface=bridge-lan connection-mark=WAN2_conn \
action=mark-routing new-routing-mark=to_WAN2 passthrough=no \
comment="Arahkan koneksi PCC WAN2 ke routing table WAN2"
Teknik kombinasi load balancing PCC + Failover dengan Recursive Gateway ini sangat membantu memaksimalkan total kapasitas bandwidth dari kedua ISP Anda (semuanya terpakai) sekaligus mengatasi downtime dengan failover otomatis jika salah satu ISP mati total akan beralih ke ISP yang normal.
Yang Paling Banyak Jadi Pertanyaan (FAQ)
Kenapa internet mati tetapi failover tidak pindah?
Bisa jadi ISP Anda tidak benar-benar mati total, koneksi internet masih terhubung (masih bisa ping 8.8.8.8/1.1.1.1), tapi bandwidth sedang turun atau kecil sehingga tidak sesuai kapasitas langganan. Saat browsing terasa lambat atau bahkan tidak bisa membuka apa pun, terkesan oleh kita internet sedang mati.
Aplikasi bank, games online atau VPN kok tiba-tiba putus?
Ketika salah satu ISP mati total, bisa jadi sebelumnya koneksi Anda terhubung ke ISP yang baru saja mati total. Akibatnya, Anda perlu melakukan reconnect karena adanya perubahan backbone atau IP Public yang berubah secara tiba-tiba akibat perpindahan ke ISP lain.
Load balancing kok ga rata?
Pemakaian akan terlihat merata jika user melakukan banyak koneksi. Jika jumlah user sedikit, gunakan both-addresses-and-ports yang mengklasifikasikan bucket berdasarkan source IP, destination IP, source port, dan destination port agar distribusi koneksi internet lebih merata.
Hotspot kok jadi ngaco dengan PCC
Kalau router Mikrotik Anda menggunakan hotspot, sebaiknya jangan digabung dengan PCC dalam satu router. Biasanya, kedua fungsi tersebut dipisahkan di router yang berbeda.
Apakah PCC menggabungkan dua bandwidth untuk satu download?
Ngga, kalau satu user download besar dengan single-connection, bandwidth-nya cuma kepakai dari satu ISP. Dengan load balance PCC, bukan berarti bandwidth Anda otomatis jadi 1+1=2.
Kok lama banget failovernya, ga langsung pindah gitu?
Recursive routing dengan check-gateway=ping biasanya memerlukan waktu 20-35 detik untuk menganggap link benar-benar terputus, hal ini normal agar koneksi tidak mengalami flapping (hidup-mati berulang-ulang).