[Load Balance] Load Balance dengan Menggunakan Metode PCC (Simple)
Kebutuhan layanan internet yang sangat besar pada saat ini memungkinkan kita untuk berlangganan lebih dari satu layanan internet. Sebagai administrator/pengelola jaringan, kita harus memastikan koneksi internet yang dimiliki dapat digunakan secara optimal dengan membagi beban dan koneksi ke beberapa jalur/link yang dimiliki dengan menggunakan teknik Load Balance.
Load balance digunakan untuk mendistribusikan beban trafik koneksi pada dua atau lebih jalur koneksi secara seimbang agar trafik berjalan optimal, sehingga dapat memaksimalkan throughput bandwidth yang didapat dari provider. Selain itu laoad balance dapat digunakan untuk memperkecil waktu tanggap dan menghindari overloadpada salah satu jalur koneksi. Ada beberapa metode load balance yang bisa kita gunakan, diantaranya ECMP (Equal-Cost Multiple Path), PCC (Per-Connection Classifier) dan NTH.
PCC (Per-Connection Classifier) mengambil bidang yang dipilih dari header IP, kemudian dengan bantuan algoritma hashing mengubah bidang tersebut menjadi 32-bit. Nilai ini kemudian dibagi dengan denominator tertentu dan sisanya kemudian dibandingkan dengan reminder tertentu, apabila sama maka paket akan ditangkap. Rules dapat dibuat dengan memilih informasi dari src-address, dst-address, src-port atau dst-port dari header IP.
PCC merupakan metode yang menspesifikasikan suatu paket menuju gateway koneksi tertentu. PCC mengelompokkan trafik koneksi yang akan melalui atau keluar masuk router menjadi beberapa kelompok. Mikrotik akan mengingat-ingat gateway yang telah dilewati di awal trafik koneksi, sehingga pada paket-paket data selanjutnya yang masih berkaitan dengan paket data sebelumnya akan dilewatkan pada jalur gateway yang sama.
KONFIGURASI DASAR
Topologi yang akan digunakan adalah sebagai berikut.
IP Address
Router memiliki dua jalur WAN (ISP) dengan alamat IP statis 10.111.0.2/24 (ISP-1) dan alamat IP dinamis 172.16.0.0/24 (ISP-2), sedangkan jaringan lokal menggunakan network 192.168.0.0/24.
/ ip address add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=ether5 add address=10.111.0.2/24 network=10.111.0.0 broadcast=10.111.0.255 interface=ether1 /ip dhcp-client add interface=ether2 add-default-route=no disabled=no |
NAT
Untuk konfigurasi NAT, karena terdapat dua uplink ke ISP, maka tambahkan dua rule src-nat mengarah ke ISP masing-masing.
/ ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade comment=nat-isp1 add chain=srcnat out-interface=ether2 action=masquerade comment=nat-isp2 |
Policy Routing
Langkah pertama, untuk mengelola koneksi yang dimulai dari luar, koneksi replies harus keluar melalui interface yang sama (dari IP Publik yang sama) saat koneksi request datang. Lakukan marking untuk menandai semua koneksi masuk, untuk mengingat interface yang digunakan.
/ ip firewall mangle add chain=prerouting dst-address=10.111.0.0/24 action=accept in-interface=ether5 add chain=prerouting dst-address=172.16.0.0/24 action=accept in-interface=ether5 add chain=prerouting in-interface=ether1 connection-mark=no-mark action=mark-connection new-connection-mark=ISP1_conn add chain=prerouting in-interface=ether2 connection-mark=no-mark action=mark-connection new-connection-mark=ISP2_conn |
Action mark-routing hanya dapat digunakan di mangle chain output dan prerouting, tetapi mangle chain prerouting menangkap semua lalu lintas yang menuju ke router. Untuk menghindari ini kita akan menggunakan dst-address-type =!local. Selanjutnya tambahkan rule PCC untuk membagi lalu lintas menjadi dua kelompok berdasarkan source address dan destination address (both-addresses). Karena kecepatan koneksi kedua ISP berbeda (1 Mbps dan 512 kbps), kita membagi beban trafiknya menjadi 3 (tiga) bagian. Dua bagian pertama akan melewati gateway ISP-1, dan 1 bagian terakhir akan melewati gateway ISP-2.
/ ip firewall mangle add chain=prerouting in-interface=ether5 connection-mark=no-mark dst-address-type=!local per-connection-classifier=both-addresses:3/0 action=mark-connection new-connection-mark=ISP1_conn add chain=prerouting in-interface=ether5 connection-mark=no-mark dst-address-type=!local per-connection-classifier=both-addresses:3/1 action=mark-connection new-connection-mark=ISP1_conn add chain=prerouting in-interface=ether5 connection-mark=no-mark dst-address-type=!local per-connection-classifier=both-addresses:3/2 action=mark-connection new-connection-mark=ISP2_conn |
Setelah rule PCC dibuat, tambahkan action mark-routing berdasarkan connection -mark yang sudah dibuat. Karena policy routing hanya diperlukan untuk trafik yang keluar/menuju ke internet, jangan lupa untuk menentukan parameter in-interface.
/ ip firewall mangle add chain=prerouting connection-mark=ISP1_conn in-interface=ether5 action=mark-routing new-routing-mark=to_ISP1 add chain=prerouting connection-mark=ISP2_conn in-interface=ether5 action=mark-routing new-routing-mark=to_ISP2 add chain=output connection-mark=ISP1_conn action=mark-routing new-routing-mark=to_ISP1 add chain=output connection-mark=ISP2_conn action=mark-routing new-routing-mark=to_ISP2 |
Berikut adalah contoh pembuatan marking load balance PCC pada firewall mangle.
Konfigurasi ini bisa disesuaikan dengan jumlah uplink yang dimiliki, dan juga jumlah jaringan lokal yang saat ini terpasang.
Setelah konfigurasi mark-connection dan mark-routing selesai, tambahkan rule default route pada menu IP>Route, yaitu berdasarkan mark-routing yang sudah dibuat.
Berikut contoh command line yang digunakan.
/ ip route add dst-address=0.0.0.0/0 gateway=10.111.0.1 routing-mark=to_ISP1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=172.16.0.1 routing-mark=to_ISP2 check-gateway=ping |
Tambahkan juga rule berikut ini, yang bisa berfungsi sebagai failover saat salah satu ISP mati atau putus.
/ ip route add dst-address=0.0.0.0/0 gateway=10.111.0.1 distance=1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=172.16.0.1 distance=2 check-gateway=ping |
PENGUJIAN
Kita melakukan beberapa pengujian untuk membuktikan konfigurasi PCC sudah berjalan dengan baik.
Pengujian Download
Dari hasil pengujian di atas, pada saat mendownload file pertama (1 koneksi) mendapatkan speed 107 KBps/856 kbps yang melalui ISP-1, lalu melakukan download file lagi (koneksi baru) pada server lain mendapatkan speed 59 KBps/472 kbps yang melalui ISP-2.
Pengujian Akses Video
Dari hasil pengujian di atas, ketika mengakses video di website yang berbeda terlihat kedua jalur ISP aktif bersamaan. Dapat dilihat pada trafik kedua interface upstream (ISP), Rx. Rate 1015 kbps dan 525 kbps sesuai dengan kecepatan koneksi masing-masing ISP.
Pengujian Traceroute
Dari hasil kedua traceroute di atas untuk tujuan alamat IP yang berbeda, terlihat keduanya melalui gateway ISP yang berbeda. Tujuan 202.65.113.16 melalui gateway ISP-1 (10.111.0.1) sementara tujuan 103.255.15.28 melalui gateway ISP-2 (172.16.0.1).
Artikel ini disusun pada tanggal 18 Desember 2020
Sumber: https://citraweb.com