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, soalnya ditempat ini sering putus sehingga ipnya sering ilang jadi default gw juga ilang praktis load balancingnya jadi macet :((. 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 speedy2Simpan 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.254demikian 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 $T2Selanjutnya adalah mengeset main routing table :
ip route add $P1_NET dev $IF1 src $IP1 ip route add $P2_NET dev $IF2 src $IP2Selanjutnya mengeset routing rules
ip rule add from $IP1 table $T1 ip rule add from $IP2 table $T2Load 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 1Pengecekan
Setelah melakukan setting, selanjutnya adalah memastikan bahwa load balancing yang kita buat berfungsi. Cek gateway dengan perintah :
ip r lJika 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 1Untuk 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