Load Balancing pada Linux Slackware

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.

Referensi: wiki, LARTC

About Agus Firdaus

Just me ..

2 responses to “Load Balancing pada Linux Slackware”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: