Pengertian Load Balanching
Load balancing atau penyeimbang beban adalah teknik yang digunakan untuk mendistribusikan traffic jaringan ke beberapa server.Pendistribuan ini dilakukan bukan lain sebagai peringananan beban kerja agar server tidak terlalu berat saat adanya banyak request/permintaan dari klien.Dengan load balancing proses pendistribusian traffic jaringan ke beberapa server akan lebih optimal, efisiensi, stabil dan cepat.Misalnya ketika website kamu mengalami pengingkatan lonjakan traffic karena diakses oleh banyak pengguna.Hal ini tentu saja akan membuat proses muat halaman yang cukup lama atau bahkan dalam banyak kasus website kamu tidak dapat diakses sama sekali.
Untuk itu, penyeimbang beban berperan dengan prinsip kerjanya yaitu :
- Mendistribusikan Permintaan Klien
Agar server tidak memiliki beban lalu lintas jaringan yang berat, load balancing bisa mengidentifikasi secara real time, server mana yang dapat memenuhi permintaan klien tertentu.
Selain itu, proses ini juga dapat memastikan lalu lintas jaringan yang padat untuk tidak terlalu membebani satu server. - Memastikan Ketersediaan dan Keandalan yang Tinggi
Load balancing bertindak layaknya “polisi lalu lintas” yang duduk di depan server kamu.
Penyeimbang beban ini akan membuat rute permintaan klien di semua server yang bisa dipenuhi permintaannya.
Caranya ialah dengan memaksimalkan kecepatan dan pemanfaatan kapasitas, sekaligus memastikan juga bahwa tidak ada satu server pun yang bekerja terlalu keras yang dapat menurunkan kinerja.
Nah apabila ada satu server gagal, penyeimbang muatan segera mengalihkan beban kerjanya ke server cadangan, sehingga mengurangi dampak pada pengguna lain.
- Menambah atau Mengurangi Server Sesuai Permintaan
Jika satu server mati, penyeimbang beban mengalihkan lalu lintas ke server online yang tersisa.
Ketika server baru ditambahkan ke grup server, penyeimbang beban secara otomatis mulai mengirim permintaan ke sana.Prinsip kerjanya ialah meningkatkan fleksibilitas server sesuai pengguna lain.
Bagaimana Cara Kerja Load Balancing?
Cara kerja load balancing ialah memastikan bahwa arus lalu lintas jaringan tetap lancar,berikut cara kerjanya :
- Load balancing menangani permintaan masuk dari pengguna untuk informasi dan layanan lainnya.
Penyeimbang beban berada di antara server yang menangani permintaan tersebut.
- Setelah permintaan diterima, load balancing pertama-tama menentukan server mana yang tersedia dan online, kemudian merutekan permintaan ke server itu.
- Apabila server berat/down, penyeimbang beban dapat mengalihkan traffic ke server lain yang tersedia.
Sebaliknya, penyeimbang beban juga dapat mengurangi server sesuai permintaan.
Jenis Load Balancing
- Hardware Load Balancer
Hardware Load Balancer adalah jenis load balancing yang berbentuk perangkat keras.
Fungsinya ialah dapat mendistribusikan traffic menyesuaikan pengaturan yang ada.
Hardware Load Balancer perlu ditempatkan bersama server di pusat data lokal.
Adapun jumlah load balancing menyesuaikan traffic tertinggi yang diinginkan.
Harga Hardware Load Balancer bisa terbilang lebih mahal dan tidak sefleksibel jenis Software Load Balancer.Akan tetapi, hardware load balancer jenis ini mampu menangani traffic dalam skala yang besar.
- Software Load Balancer
Software Load Balancer ialah jenis load balancing versi perangkat lunak.
Akibat perkembangan zaman yang semakin canggih, load balancing mengalami perubahannya ke dalam versi software.
Sebab bentuknya software, kamu sudah bisa memiliki sofftware Load Balancer dengan penginstalan di server aplikasi atau virtual machine.
Berbeda dengan hardware load balancer, jenis Software Load Balancer ini jauh lebih murah dan fleksibel.
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 overload pada 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.
<em>/ 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</em>
NAT
Untuk konfigurasi NAT, karena terdapat dua uplink ke ISP, maka tambahkan dua rule src-nat mengarah ke ISP masing-masing.
<em>/ 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
</em>
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.
<em>/ 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</em>
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.
<em>/ 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</em>
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.
<em>/ 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
</em><em>
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</em>
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.
<em>/ 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</em>
Tambahkan juga rule berikut ini, yang bisa berfungsi sebagai failover saat salah satu ISP mati atau putus.
<em>/ 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</em>