Sudah sering kita mengenal istilah load
balancing yang ada pada mesin Mikrotik, mungkin tidak ada salahnya jika
load balancing di terapkan “kembali” pada mesin Linux. Secara umum load
balancing sendiri adalah teknik untuk mendistribusikan dua jalur koneksi
yang masuk pada sebuah router/server dan kemudian jalur koneksi
tersebut di atur sedemikian rupa sehingga menjadi seimbang, jika salah
satu koneksi mengalami overload maka koneksi yang satunya lagi akan
digunakan.
Distribusi
Linux yang saya gunakan adalah Slackware 13.x, di mesin Linux sendiri
sudah terkonfigurasi IP (Internet Protocol) dari dua ISP (Internet
Service Provider), sambungan koneksi pertama menggunakan ISP lokal dan
koneksi yang kedua menggunakan telkom speedy. Berikut step by step konfigurasi load balancing pada Linux Slackware.
1. Pertama-tama tambahkan value pada
/etc/iproute2/rt_tables yang berguna untuk mendefinisikan akses keluar dan masuknya sebuah koneksi.
root@zero:/# mcedit /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
252 isplokal
251 speedy
0 unspec
#
# local
#
#1 inr.ruhep
2. Asumsi IP dari
isplokal adalah 202.192.40.54 mask /29 dan IP dari
telkom speedy adalah 192.168.17.253 mask /24, buat script sebagai berikut.
root@zero:/# mcedit /etc/rc.d/rc.balance
#!/bin/bash
# Script Load Balancing
# Edited by gaus, watdefak@gmail.com
# Routing Koneksi Satu
# IP ISP LOKAL 202.192.40.54 dengan netmask 255.255.255.248 (/29) pada interfaces eth0.
ip route add 202.192.40.0/29 dev eth0 src 202.192.40.54 table isplokal
# Gateway ISP LOKAL adalah 202.192.40.53
ip route add default via 202.192.40.53 table isplokal
sleep 1
# Routing Koneksi Dua
# IP SPEEDY 192.168.17.253 dengan netmask 255.255.255.0 (/24) pada interfaces eth1.
ip route add 192.168.17.0/24 dev eth1 src 192.168.17.253 table speedy
# Gateway ISP SPEEDY adalah 192.168.17.254
ip route add default via 192.168.17.254 table speedy
sleep 1
# Hapus Default Routing Jika Ada
ip route del default
sleep 1
# Adding Routing Table
# Tambahkan rule untuk ISP LOKAL dan SPEEDY
ip rule add from 202.192.40.54 table isplokal
ip rule add from 192.168.17.253 table speedy
sleep 1
# Routing Load Balancing
# Tambahkan routing (gateway) untuk kedua ISP (ISP LOKAL dan SPEEDY)
# di masing-masing interfaces (eth0 dan eth1).
ip route add default scope global nexthop via 202.192.40.53 dev eth0 weight 1 \
nexthop via 192.168.17.254 dev eth1 weight 1
sleep 1
# IPTABLES
/etc/rc.d/rc.iptables
# EoF
root@zero:/# chmod +x /etc/rc.d/rc.balance
3. Kemudian buat script
rc.iptables yang akan di panggil dari script
rc.balance, sbb:
root@zero:/# mcedit /etc/rc.d/rc.iptables
#!/bin/bash
IPTAB=/usr/sbin/iptables
#
# LOAD MODULES
echo “Loading IPTABLES modules”
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe ipt_conntrack
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_irc
/sbin/modprobe ip_conntrack_irc
$IPTAB -X
$IPTAB -F
$IPTAB -t nat -X
$IPTAB -t nat -F
$IPTAB -t mangle -X
$IPTAB -t mangle -F
#
# Allow Established Connections
$IPTAB -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
$IPTAB -A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
#
# IP ISP LOKAL dan SPEEDY pada masing-masing interfaces
$IPTAB -t nat -A POSTROUTING -o eth0 -j SNAT –to 202.192.40.54
$IPTAB -t nat -A POSTROUTING -o eth1 -j SNAT –to 192.168.17.253
root@zero:/# chmod +x /etc/rc.d/rc.iptables
4. Jalankan script /etc/rc.d/rc.balance
root@zero:/# /etc/rc.d/rc.balance
5. Ketik perintah
ip r l untuk melihat hasil dari script diatas;
default
nexthop via 202.192.40.53 dev eth0 weight 1
nexthop via 192.168.17.254 dev eth1 weight 1
6. Jika terlihat hasil seperti di atas (5) maka koneksi load balancing sudah bisa digunakan, masukan perintah
/etc/rc.d/rc.balance pada
/etc/rc.d/rc.local untuk secara otomatis dijalankan pada saat booting awal.
Thanks to Kuli Bangunan