2.03.2011

Load Balancing Koneksi

Mempunyai koneksi internet lebih dari satu saat ini sudah biasa, terlebih bagi pengusaha warnet, hal ini juga didukung dengan semakin mudah dan murahnya koneksi internet.

Untuk menggunakan kedua koneksi tersebut secara bersamaan kita bisa memanfaatkan fasilitas load balancing. Kita membutuhkan iproute2 untuk melakukan hal tersebut.

Untuk kasus yang saya hadapi adalah, dua koneksi kedua – duanya menggunakan telkom speedy, dialnya via modem. Eth0 adalah jaringan LAN, eth1 dan eth2 interface untuk koneksi speedy.

Split Access
Yang pertama sekali dilakukan adalah mendefenisikan keluar masuknya akses dari jalur yang sama. Untuk itu kita butuhkan sedikit modifikasi di file /etc/iproute2/rt_tables
Tambahkan saja di bagian bawah dari file tersebut baris berikut ini :

10 speedy1
20 speedy2


Simpan dan keluar :D.

Berikut adalah beberapa variable yang digunakan untuk kepentingan load balancing script :D

$T1 = speedy1
$IF1 = eth1
$IP1 = 192.168.1.253
$P1_NET = 192.168.1.0/24
$GW1 = 192.168.1.254


demikian juga untuk interface berikutnya :

$T2 = speedy2
$IF2 = eth2
$IP2 = 192.168.2.253
$P2_NET = 192.168.2.0/24
$GW2 = 192.168.2.254

$T1, $T2 adalah nama tabel yang telah didefenisikan di file rt_tables
$IF1, $IF2 adalah interface dari koneksi yang akan diload balancingkan
$IP1, IP2 ip dari interface $IF1 dan IF2 dalam hal ini 192.168.1.253 dan 192.168.2.253
$P1_NET, $P2_NET ip network dari kedua interface
$GW1, $GW2 gateway dari IP $IP1 dan $IP2 sesuaikan dengan keperluan, untuk kondisi yang saya gunakan adalah 192.168.1.254 dan 192.168.2.254

Selanjutnya adalah menambahkannya di routing table seperti ini :

ip route add $P1_NET dev $IF1 src $IP1 table $T1
ip route add default via $GW1 table $T1
ip route add $P2_NET dev $IF2 src $IP2 table $T2
ip route add default via $GW2 table $T2


Selanjutnya adalah mengeset main routing table :

ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

Selanjutnya mengeset routing rules

ip rule add from $IP1 table $T1
ip rule add from $IP2 table $T2


Load Balancing
Tugas berikutnya adalah menentukan gateway, biasanya kita mengeset gateway hanya untuk satu buah ip / interface namun kali ini kita akan menggunakan dua ip (kalau cuma satu ngapain pake dua koneksi internet :P )
Perintahnya seperti ini :

ip route add default scope global nexthop via $GW1 dev $IF1 weight 1 \
nexthop via $GW2 dev $IF2 weight 1


Pengecekan
Setelah melakukan setting, selanjutnya adalah memastikan bahwa load balancing yang kita buat berfungsi. Cek gateway dengan perintah :

ip r l

Jika menampilkan hasil seperti dibawah ini, maka kemungkinan load balancing sudah berhasil di set.

default
nexthop via 192.168.10.254 dev eth1 weight 1
nexthop via 192.168.20.254 dev eth2 weight 1


Untuk memastikannnya silahkan gunakan iptraf dan pilih general interface statistics, akses ke internet (sebaiknya dengan banyak window terbuka) dan lihat activity dari interface yang digunakan untuk keluar, jika berhasil, terdapat activity pada kedua interface tersebut.

Script lengkap loadbalancing :

#!/bin/sh

# Parameter
- parameter

# Koneksi ke modem adsl via eth1
T1 = speedy1
IF1=eth1
IP1=192.168.10.253
GW1=192.168.10.254
P1_NET=192.168.10.0/24


# Koneksi ke modem adsl via eth2
T2 = speedy2
IF2=eth2
IP2=192.168.20.253
GW2=192.168.20.254
P2_NET=192.168.20.0/24

ip route add $P1_NET dev $IF1 src $IP1 table $T1
ip route add default via $GW1 table $T1
ip route add $P2_NET dev $IF2 src $IP2 table $T2
ip route add default via $GW2 table $T2

ip route del default

ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

ip rule add from $IP1 table $T1
ip rule add from $IP2 table $T2

ip route add default scope global nexthop via $GW1 dev $IF1 weight 1 \
nexthop via $GW2 dev $IF2 weight 1

#end of script
:D

1 komentar:

  1. siiiiiip bradha.....
    terus berbag ilmu pada kita2 yang masih amatir ini
    maksih

    BalasHapus