Notifications
General

Load Balance PCC dengan failover

Terkadang kita mendapati koneksi internet yang lambat atau down saat salah satu penyedia layanan (ISP) bermasalah? Pelajari cara mengimplementasikan Load Balancing Per-Connection Classifier (PCC) dengan fitur Failover di router Anda! Metode ini memungkinkan Anda menggabungkan dua atau lebih jalur koneksi internet (multiple WAN) untuk memaksimalkan bandwidth dan memastikan koneksi tetap berjalan (failover) jika salah satu jalur utama terputus.

Dalam postingan ini, kita akan belajar bersama:

Konfigurasi Dasar

  1. Address-list (Pendefinisian IP Lokal): Blok perintah ini mendefinisikan range alamat IP privat standar (192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8) ke dalam address-list bernama LOCAL-IP. Ini penting untuk membedakan lalu lintas internal (lokal) dari lalu lintas eksternal (internet) saat membuat rule Mangle.

    # Adress-list
    /ip firewall address-list
    add address=192.168.0.0/16 list=LOCAL-IP
    add address=172.16.0.0/12 list=LOCAL-IP
    add address=10.0.0.0/8 list=LOCAL-IP
    
  2. Firewall NAT (Network Address Translation): Rule srcnat (Source NAT) ini memastikan semua lalu lintas yang keluar melalui antarmuka wan1 dan wan2 diterjemahkan (action=masquerade) agar menggunakan alamat IP publik dari masing-masing ISP. Ini memungkinkan perangkat di jaringan lokal dapat mengakses internet.

    # Firewall nat
    /ip firewall nat
    add chain=srcnat out-interface="wan1" action=masquerade
    add chain=srcnat out-interface="wan2" action=masquerade
    

Mangle Rules: Inti dari PCC dan Failover

Bagian mangle adalah kunci dari Load Balancing PCC. Aturan-aturan ini bertugas menandai (mark) koneksi dan rute lalu lintas:

  • Menandai Koneksi Balik (Reply Traffic): Rule pertama (chain=input) memastikan lalu lintas balasan (reply) dari internet ditandai sesuai dengan antarmuka WAN tempat mereka masuk (cm-wan1 atau cm-wan2).

  • Menandai Rute untuk Reply Traffic: Rule kedua (chain=output) memastikan lalu lintas yang berasal dari router itu sendiri (misalnya ping dari router) dan merupakan bagian dari koneksi yang sudah ditandai akan diarahkan kembali ke jalur WAN yang sesuai (to-wan1 atau to-wan2).

  • Implementasi PCC (Load Balancing): Rule prerouting dengan per-connection-classifier=both-addresses-and-ports:2/0 dan :2/1 adalah inti dari PCC. Ini membagi lalu lintas baru menjadi dua kelompok (cm-wan1 dan cm-wan2) berdasarkan kombinasi alamat IP dan port (sumber dan tujuan). Pembagian 2/0 dan 2/1 mengindikasikan pembagian ke 2 jalur (2) dengan mengambil sisa bagi (0 dan 1), sehingga beban dibagi rata 50:50 ke dua jalur WAN.

  • Menandai Rute (Routing Mark): Rule terakhir (chain=prerouting) mengarahkan koneksi yang sudah ditandai (cm-wan1 atau cm-wan2) ke jalur rute tertentu (to-wan1 atau to-wan2) agar keluar melalui WAN yang benar.

    # Mangle rules to mark traffic
    /ip firewall mangle
    add action=mark-connection chain=input in-interface="wan1" new-connection-mark="cm-wan1" passthrough=yes
    add action=mark-connection chain=input in-interface="wan2" new-connection-mark="cm-wan2" passthrough=yes
    add action=mark-routing chain=output connection-mark="cm-wan1" new-routing-mark="to-wan1" passthrough=yes
    add action=mark-routing chain=output connection-mark="cm-wan2" new-routing-mark="to-wan2" passthrough=yes
    add action=mark-connection chain=prerouting dst-address-list=!LOCAL-IP dst-address-type=!local new-connection-mark="cm-wan1" passthrough=yes per-connection-classifier=both-addresses-and-ports:2/0 src-address-list=LOCAL-IP
    add action=mark-connection chain=prerouting dst-address-list=!LOCAL-IP dst-address-type=!local new-connection-mark="cm-wan2" passthrough=yes per-connection-classifier=both-addresses-and-ports:2/1 src-address-list=LOCAL-IP
    add action=mark-routing chain=prerouting connection-mark="cm-wan1" dst-address-list=!LOCAL-IP new-routing-mark="to-wan1" passthrough=yes src-address-list=LOCAL-IP
    add action=mark-routing chain=prerouting connection-mark="cm-wan2" dst-address-list=!LOCAL-IP new-routing-mark="to-wan2" passthrough=yes src-address-list=LOCAL-IP
    

Route Gateway: Mengaktifkan Failover

Konfigurasi rute ini adalah tempat Failover diimplementasikan menggunakan distance (metrik) dan check-gateway=ping.

  • Rute untuk Marked Traffic:

    • Setiap jalur (to-ether1 dan to-ether2) memiliki rute utama dengan distance=1 (cek ping ke IP publik 1.1.1.1 dan 8.8.8.8 yang dapat diganti dengan IP gateway ISP atau IP public yang stabil) dan rute cadangan (backup) dengan distance=2. Jika rute utama (distance=1) down (tidak dapat ping), router akan otomatis mengalihkan lalu lintas ke rute cadangan (distance=2) ISP lain.

  • Rute Default (untuk Lalu Lintas yang Tidak Ditandai):

    • Rule dengan gateway ISP1 (distance=1) dan ISP2 (distance=2) tanpa routing-mark berfungsi sebagai default route. Default route dengan distance terkecil akan menjadi rute utama jika ada lalu lintas yang tidak ditangani oleh routing-mark PCC.

  • Rute Management: Rule terakhir memastikan ping untuk check-gateway diarahkan melalui gateway ISP yang benar (policy routing), mencegah loop rute.

    # Route Gateway
    /ip route
    add check-gateway=ping comment=isp1 distance=1 gateway=1.1.1.1 routing-mark=\
    to-ether1 target-scope=30
    add comment="backup isp2" distance=2 gateway=gateway_address_isp2 routing-mark=\
    to-ether1
    add check-gateway=ping comment=isp2 distance=1 gateway=8.8.8.8 routing-mark=\
    to-ether2 target-scope=30
    add comment="backup isp1" distance=2 gateway=gateway_address_isp1 routing-mark=\
    to-ether2
    add check-gateway=ping distance=1 gateway=gateway_address_isp1
    add check-gateway=ping distance=2 gateway=gateway_address_isp2
    add distance=1 dst-address=1.1.1.1/32 gateway=gateway_address_isp1
    add distance=1 dst-address=8.8.8.8/32 gateway=gateway_address_isp2
    

Pelajari selengkapnya tentang setiap langkah konfigurasi di bawah ini dan tingkatkan performa jaringan Anda sekarang juga!

|
Scroll to top