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, 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 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
Regards,
Arman Idris
- arman's blog
- Login or register to post comments


Mantap neh tulisan, segera
Mantap neh tulisan, segera dicoba tapi dimana ya? Thank's tulisannya.
kok aKu dapat pesan eror
kok aKu dapat pesan eror
DRTNETLINK answers: Invalid argument
RTNETLINK answers: Invalid argument
Error: argument "T1" is wrong: invalid table ID
Error: argument "T2" is wrong: invalid table ID
padahal sudah saya tambah di rt_table
# reserved values
#
255 local
254 main
253 default
10 speedy1
20 speedy2
0 unspec
#
# local
#
#1 inr.ruhep
kira2 salahnya dimana !
Maaf kelupaan naruh tanda
Maaf kelupaan naruh tanda "$" didepan T1 harusnya seperti ini $T1,
Tulisannya akan diperbaiki :D
Regards,
Arman Idris
arman[at]makassar-slackers[dot]org
wah.....terima kasih. terus
wah.....terima kasih.
terus nambah2 ilmu ya pak...
biar kita yg newbie lebih mudah belajar-nya
thankyuu parnert ... tapi
thankyuu parnert ...
tapi tetap nda mau jalan....
ajarka nanti parner nahhh
Datang ji di Gathering #13
Datang ji di Gathering #13 toh, nanti ketemu disana :D
Regards,
Arman Idris
arman[at]makassar-slackers[dot]org
Bro Arman saya mau tanya
Bro Arman saya mau tanya nih,
Berarti dalam kasus ini, Router Linux memiliki 3 buah Lan Card.
eth0, eth1, eth2 dengan :
- eth0 = koneksi dengan switch / hub untuk client
- eth1 = koneksi dengan modem 1
- eth2 = koneksi dengan modem 2
Apakah betul kira2 seperti itu ?
Terus misalnya untuk P1_NET itu kan untuk network client ya ?
Nah misalnya P1_NET dan P2_NET mungkin ga kalau misalnya di set dengan IP network yang sama dan tidak dibedakan ?
Jadi klo dari tutor bro Arman :
P1_NET = 192.168.10.0/24
P2_NET = 192.168.20.0/24
Kira2 bisa ga menjadi begini :
P1_NET = 192.168.10.0/24
P2_NET = 192.168.10.0/24
Betul, pake tiga
Betul, pake tiga ethernet
eth0 ke internal, selebihnya itu ke modem
P1_NET itu bukan untuk internal
Untuk load balancing sebenarnya cuma baris terakhir saja yang ini :
ip route add default scope global nexthop via $GW1 dev $IF1 weight 1 \ nexthop via $GW2 dev $IF2 weight 1Yang diatasnya itu untuk split access, cuma kerena itu hari bacanya karena buru - buru jadi tidak sempat analisa lebih teliti
Regards,
Arman Idris
arman[at]makassar-slackers[dot]org
Iya, untuk load balancingnya
Iya, untuk load balancingnya scripnya hanya yang itu aja.
Saya bingung mengenai split access ini, Kalau begitu P1_NET dan P2_NET ini untuk apa nya ya ?
Saya masih kurang begitu mengerti untuk keterangan-nya :D
Terus untuk clientnnya apa ga masalah menggunakan kelas IP 192.168.0.0/24 ? atau harus menggunakan salah satu dari kelas IP 192.168.10.0/24 atau 192.168.20.0/24 ?
P1_NET dan P2_NET itu untuk
P1_NET dan P2_NET itu untuk network modem, tapi nggak kepake kok, tidak ada juga tidak apa - apa, kecuali pake split access bukan load balancing
192.168.10.0/24 sama 192.168.20.0/24 bukan client itu untuk modem saja tapi sekali, abaikan saja
Regards,
Arman Idris
arman[at]makassar-slackers[dot]org
Iya maksud saya untuk split
Iya maksud saya untuk split access nya :), jadi klo pake split access memang harus menggunakan P1_NET dan P2_NET tersebut ya ?
P1_NET dan P2_NET itu memang bukan untuk client ya ?
Berarti client jika menggunakan IP kelas 192.168.0.0/24 tidak ada masalah ya bro Arman ?
Apakah ada penambahan di sisi routingnya ?
Sepertinya arah pembicaraan
Sepertinya arah pembicaraan sudah tidak karuan, sekarang yang diinginkan itu apa? Split access atau load balancing? Split access tidak sama dengan load balancing. Saya cuma terlanjur girang waktu itu, sehingga tidak sempat menganalisa dengan baik, soal split access dan load balancing.
Terserah mo pake ip berapa di client, itu tidak ada hubungannya dengan load balancing ataupun split access, kecuali dengan isengnya anda menggunakan ip client buat ngeset load balancing / split access
Regards,
Arman Idris
arman[at]makassar-slackers[dot]org
Maaf sebelumnya bro Arman,
Maaf sebelumnya bro Arman, jika pembicaraan jadi membingungkan.
Saya ingin bertanya mengenai split access.
Jadi mirip dengan bro Arman, misalkan saya punya 2 jalur speedy.
IP dari modem speedy 1 = 192.168.1.254
IP dari modem speedy 2 = 192.168.2.254
IP dari eth1 (yang tersambung ke speedy1) : 192.168.1.253
IP dari eth2 (yang tersambung ke speedy2) : 192.168.2.253
IP dari eth0 (yang tersambung ke swicth ke client) : 192.168.0.0/24
Nah dari seperti itu apakah ada settingan yang beda mengenai split access nya ?
Terus apakah ada settingan routing yang lain lagi, agar client dapat menggunakan fasilitas internet ?
Terima kasih sebelumnya bro Arman
Kalau memang ingin
Kalau memang ingin menggunakan split access cara yang seperti itu sudah betul. Konfigurasi IP juga tidak ada masalah.
Saya sendiri lebih suka load balancing :)
Regards,
Arman Idris
arman[at]makassar-slackers[dot]org
Ow... jadi sudah betul nih
Ow... jadi sudah betul nih untuk split accessnya. Hehhe
Untuk IP dari eth0 (yang menyambung ke switch/hub), misal saya set : 192.168.0.253.
Berarti untuk tiap client saya gateway-nya di-set 192.168.0.253 apakah betul seperti itu ?
client cuma ngeset ip
client cuma ngeset ip gateway ke ethernet yang menghadap ke client saja, pada kasus anda 192.168.0.253.
Regards,
Arman Idris
arman[at]makassar-slackers[dot]org
Ok berarti sudah benar untuk
Ok berarti sudah benar untuk di clientnnya. :D
Nah untuk di eth0 gimana settingannya ya ?
eth0:
IP : 192.168.0.253
Netmask : 255.255.255.0
Gateway : 192.168.1.253 atau 192.168.2.253 ?
Nah yang ingin saya tanyakan untuk di eth0 gateway-nya di set yang mana ya ?
Apakah boleh salah satu di antara keduanya ?
Lalu IP-nya kan beda ya, apakah bisa bertemu ? yang satu 192.168.0.x, yang satu 192.168.1.x dan 192.168.2.x
Mohon masukannya nih :)
Nah, tuh kan ... saya bilang
Nah, tuh kan ... saya bilang juga apa?, pasti maunya load balancing
bukan split access.
Gini, load balancing itu teknisnya menggunakan 2 gateway dimana pemilihan gatewaynya round robin. Kalau maunya seperti itu, baris terakhir saja yang dipake.
Baris terakhir itu yang membuat servernya mempunyai 2 gateway.
Bagusnya kalau langsung dicoba buat saja, supaya kalau error bisa langsung ketahuan.
Regards,
Arman Idris
arman[at]makassar-slackers[dot]org
Ok, bro Arman, thx
Ok, bro Arman, thx masukannya :D
Salam, Artikel yang sangat
Salam,
Artikel yang sangat menarik, saya ada beberapa pertanyaan sehubungan dgn artikel di atas, mohon pencerahannya;
1. di /etc/rc.d/rc.inet1.conf ada variabel GATEWAY=”" untuk default gateway. Apakah harus diisi atau dikosongkan?
2. Saya memilih men-dial kedua account Speedy langsung dari Slackware dgn menjadikan modem sebagai Bridge agar IP-Public diberikan ke interface server sehingga saya bisa memonitoring Slackware dari remote. Apa yg harus dimodifikasi pada script di atas?
Terimakasih.
1. Kosongkan saja, toh ada
1. Kosongkan saja, toh ada bagian di scriptnya yang menghapus default gw.
2. Untuk dial langsung dari router juga tidak masalah, toh semua yang dilakukannya sebelum ip. Cuma yang jadi masalah kalau koneksi salah satunya putus, default gwya juga ilang, kecuali yakin koneksinya tidak ada akan putus-nyambung. Supaya bisa di remote dari luar, set saja DMZ di modem yang mengarah ke router, itu yang saya buat untuk router - router yang saya install sehingga saya bisa akses dari luar :D
Semoga bermanfaat
Sorry baru liat kalau
Sorry baru liat kalau scriptnya tidak ada line untuk menghapus default gw. Saya sudah tambahin script diatas, untuk menghapus default gw.
atau tambahin baris ini :
ip route del default
sebelum baris untuk ngeset kedua ip sebagai gw :D
Wah, terimakasih banyak mas
Wah, terimakasih banyak mas arman atas jawaban nya yg cepat.
1.) Apakah $IP1 dan $IP2 harus diganti dgn IP-Public dari ISP?
2.) Dgn penambahan perintah:
ip route del default
apakah 4 baris persis sebelumnya yg berisi:
ip route add default via $GW1 table $T1
ip route add default via $GW2 table $T2
tidak akan terhapus?
3.) Saya juga memasang SQUID di Slackware tersebut sehingga memasang script di bawah ini utk Transparent Proxy di rc.local
# Transparent Proxy
/usr/sbin/iptables -F
/usr/sbin/iptables -P INPUT ACCEPT
/usr/sbin/iptables -P OUTPUT ACCEPT
/usr/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
/usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -j MASQUERADE
Apakah ada modifikasi pada script utama yg dijabarkan pada artikel ini? Apakah saling bentrok? Mana yg harus dijalankan terlebih dahulu?
Terimakasih
1) Iya, sesuaikan dengan ip
1) Iya, sesuaikan dengan ip yang digunakan pada setiap interface
2) Tidak, karena :
ip route del default hanya menghapus default gateway, sedangkan perintah
ip route add default via $GW1 table $T1 adalah penambahan default gw pada "table" $T1
bisa kok di cek dengan perintah berikut dikonsol :
ip route ls table speedy1 <-- speedy1 adalah nilai dari $T1 pada contoh :D
3) Jawabannya bisa. Urutannya terserah. Load balancing bekerja mengatur paket sebelum keluar ke ethernet. Transparan proxy dan masquerading diproses sebelumnya.
:D
Terimakasih untuk
Terimakasih untuk sharenya
saya berhasil install LB dan sudah jalan.
tapi ada permasalahan untuk koneksi chat seperti YM dan Mirc dan juga untuk game online
terkadang koneksi chattingan putus sendiri...
apa permasalahannya ya?
bagaimana solusinya..
Thank's
baca yang ini :
baca yang ini : http://makassar-slackers.org/Policy%20Based%20Routing