Load Balance MikroTik Metode PCC

Disini saya akan melakukan load balance PCC di perangkat mikrotik dikarenakan metode LB PCC bersifat propietary hanya milik MikroTik.


Contoh kasus disini saya memiliki 2 jalur menuju arah internet dan 1 jalur untuk menuju jaringan lokal dengan IP address sebagai berikut.

10.10.1.2 /24 Gateway 10.10.1.1 = Ether 1 (ISP 1)
172.16.2.2 /24 Gateway 172.16.2.1 = Ether 2 (ISP 2)
192.168.3.1 /24 = Ether 3 (LOKAL)

Konfigurasi di router MikroTik

1. Menambahkan IP Address

/ip address add address=10.10.1.2/24 interface=ether1
/ip address add address=172.16.2.2/24 interface=ether2
/ip address add address=192.168.3.1/24 interface=ether3

2. Konfigurasi NAT masquerade

Membuat rule NAT Masquerade untuk interface yang mengarah ke internet (ISP1 Dan ISP2).
Ini bertujuan untuk mentranslasikan IP lokal yang ingin mengirim paket keluar/internet menjadi IP interface yang mengarah ke ISP. Ini dikarenakan jaringan lokal kita menggunakan IP privat bukan Publik

/ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade 
/ip firewall nat add chain=srcnat out-interface=ether2 action=masquerade 

3. Konfigurasi Mangle untuk bypass koneksi LAN

Konfigurasi mangle untuk membypass koneksi LAN agar koneksi yang masuk kedalam jaringan kita tidak dikirimkan dengan metode PCC.
* Itu dikarenakan kita hanya melakukan Load Balance untuk koneksi yang mengarah keluar.

/ip firewall mangle add chain=prerouting dst-address=10.10.1.0/24 action=accept 
/ip firewall mangle add chain=prerouting dst-address=172.16.2.0/24 action=accept 
/ip firewall mangle add chain=prerouting dst-address=192.168.3.0/24 action=accept

4. Konfigurasi Mangle untuk koneksi dari Internet

Konfigurasi rule mangle untuk menandai koneksi-koneksi yang masuk dari internet ke interface WAN/Internet kita (Ether1 dan Ether2/ISP1 dan ISP2).
Ini bertujuan agar request-request koneksi dari internet yang masuk melalui interface ether1 atau ether2 seperti remote winbox menggunakan IP public akan konsisten dikirim (balasan) melaui interface yang sama.

/ip firewall mangle add chain=prerouting in-interface=ether1 action=mark-connection new-connection-mark=ISP1 passthrough=yes 
/ip firewall mangle add chain=prerouting in-interface=ether2 action=mark-connection new-connection-mark=ISP2 passthrough=yes 

5. Konfigurasi Mangle mark connection untuk PCC

Istilah pada kolom per-connection-classifier

Contoh:

per-connection-classifier=both-address:2/0

both-addresses = ditentukan berdasarkan kedunya src address atau dst address nya
2 = Denominator
0 = Remainder

5.1 Konfigurasi untuk Load Balance 2 ISP dengan kapasitas bandwidth yang sama

Membuat rule untuk memecah trafik data yang melalui router kita ke 2 stream yang berbeda (ISP1 dan ISP2)

/ip firewall mangle add chain=prerouting in-interface=ether3 per-connection-classifier=both-addresses:2/0 action=mark-connection new-connection-mark=ISP1 passthrough=yes 
/ip firewall mangle add chain=prerouting in-interface=ether3 per-connection-classifier=both-addresses:2/1 action=mark-connection new-connection-mark=ISP2 passthrough=yes 

5.2 Konfigurasi untuk Load Balance 3 ISP dengan kapasitas bandwidth yang sama

Denominator = 3
Remainder = 0 ke ISP 1
            1 ke ISP 2
            2 ke ISP 3
/ip firewall mangle add chain=prerouting in-interface=ether3 per-connection-classifier=both-addresses:3/0 action=mark-connection new-connection-mark=ISP1 passthrough=yes 
/ip firewall mangle add chain=prerouting in-interface=ether3 per-connection-classifier=both-addresses:3/1 action=mark-connection new-connection-mark=ISP2 passthrough=yes
/ip firewall mangle add chain=prerouting in-interface=ether3 per-connection-classifier=both-addresses:3/2 action=mark-connection new-connection-mark=ISP3 passthrough=yes

5.3 Konfigurasi untuk Load Balance 2 ISP dengan kapasitas bandwidth berbeda

Denominator = 3
Remainder = 0 ke ISP 1
            1 ke ISP 2
            2 ke ISP 2

Contoh kasus dari ISP 1 Kita mendapatkan bandwidth 10Mbps dan dari ISP 2 kita mendapatkan bandwidth 20 Mbps, maka konfigurasi nya adalah sebagai berikut

/ip firewall mangle add chain=prerouting in-interface=ether3 per-connection-classifier=both-addresses:3/0 action=mark-connection new-connection-mark=ISP1 passthrough=yes 
/ip firewall mangle add chain=prerouting in-interface=ether3 per-connection-classifier=both-addresses:3/1 action=mark-connection new-connection-mark=ISP2 passthrough=yes
/ip firewall mangle add chain=prerouting in-interface=ether3 per-connection-classifier=both-addresses:3/2 action=mark-connection new-connection-mark=ISP2 passthrough=yes

Konfigurasi Mangle mark routing di chain prerouting

/ip firewall mangle add chain=prerouting in-interface=ether3 connection-mark=ISP1 action=mark-routing new-routing-mark=ke-ISP1 passthrough=yes 
/ip firewall mangle add chain=prerouting in-interface=ether3 connection-mark=ISP2 action=mark-routing new-routing-mark=ke-ISP2 passthrough=yes 

Konfigurasi Mangle mark routing di chain output

/ip firewall mangle add chain=output connection-mark=ISP1 action=mark-routing new-routing-mark=ke-ISP1 passthrough=yes 
/ip firewall mangle add chain=output connection-mark=ISP2 action=mark-routing new-routing-mark=ke-ISP2 passthrough=yes 

Sampai tahap ini proses pembuatan mangle sudah selesai, tahap selanjutnya adalah mengkonfigurasi routing nya (menambahkan tabel routing)

Konfigurasi Routing

Konfigurasi static routing untuk ke ISP 1 dan ke ISP 2

/ip route add dst-address=0.0.0.0/0 gateway=10.10.1.1 check-gateway=ping routing-mark=ke-ISP1
/ip route add dst-address=0.0.0.0/0 gateway=172.16.2.1 check-gateway=ping routing-mark=ke-ISP2

Konfigurasi static route untuk failover

Ini bertujuan agar jika salah satu jalur terputus maka akan mengambil jalur yang tersedia, distance diisikan 2 dikarenakan rule routing ini dijadikan sebagai rule backup

/ip route add dst-address=0.0.0.0/0 gateway=172.16.2.1 distance=2 routing-mark=ke-ISP1
/ip route add dst-address=0.0.0.0/0 gateway=10.10.1.1 distance=2 routing-mark=ke-ISP2

TESTING CANNOT RUN =====