round robin vs loadbalance part 1

| Saturday, September 20, 2008

Hari ini hari yang melelahkan, setelah seharian muter2 dan merubah router u/ memanage beberapa link yang sebelumnya memakai metode loadbalace memakai OS mikrotik terpaksa harus migrasi ke metode round robin dengan OS Freebsd.

Masih bingung apa itu load balance, round robin, robin hood.. dll :P. Berikut sedikit kutipan yg saya ambil dari blognya Pak Jay

Dua koneksi
Permasalahan umumnya muncul di sini, saat sebuah router mempunyai dua koneksi ke internet (sama atau berbeda ISP-nya). Default gateway di router tetap hanya bisa satu, ditambah pun yang bekerja tetap hanya satu. Jadi misal router NAT anda terhubung ke ISP A melalui interface A dan gateway A dan ke ISP B melalui interface B dan gateway B, dan default gateway ke ISP A, maka trafik downlink hanya akan datang dari ISP A saja. Begitu juga sebaliknya jika dipasang default gateway ke ISP B.

Bagaimana menyelesaikan permasalahan tersebut?
Konsep utamanya adalah source-address routing. Source-address routing ibaratnya anda dicegat di persimpangan oleh polisi dan polisi menanyakan “anda dari mana?” dan anda akan ditunjukkan ke jalur yang tepat.

Pada router NAT (atau router pada umumnya), source-address secara default tidak dibaca, tidak dipertimbangkan. Jadi pada kasus di atas karena default gateway ke ISP A maka NAT akan meneruskan paket sebagai paket yang pergi dari IP address interface A (yang otomatis akan mendapat downlink dari ISP A ke interface A dan diteruskan ke jaringan dalam).

Dalam jaringan yang lebih besar (bukan NAT), source-address yang melewati network lain disebut sebagai transit (di-handle dengan protokol BGP oleh ISP). Contoh praktis misalnya anda membeli bandwidth yang turun dari satelit melalui DVB, namun koneksi uplink menggunakan jalur terestrial (dial-up, leased-line atau fixed-wireless). Dalam kasus ini paket inisiasi koneksi harus menjadi source-address network downlink DVB, agar bandwidth downlink dari internet mengarah DVB receiver, bukan ke jalur terestrial.

Di lingkungan Linux, pengaturan source-address bisa dilakukan oleh iproute2. Iproute2 akan bekerja sebelum diteruskan ke table routing. Misal kita mengatur dua segmen LAN internal agar satu segmen menjadi source-address A dan satu segmen lainnya menjadi source-address B, agar kedua koneksi ke ISP terutilisasi bersamaan.

Penerapan utilisasi dua koneksi tersebut bisa mengambil tiga konsep, yaitu round-robin, loadbalance atau failover.

1. Round-robin
Misalkan anda mempunyai tiga koneksi internet di satu router NAT, koneksi pertama di sebut Batman, koneksi kedua disebut Baskin dan koneksi ketiga disebut Williams, maka konsep round-robin adalah sang Robin akan selalu berpindah-pindah secara berurutan mengambil source-address (bukan random). Misal ada satu TCP session dari komputer di jaringan internal, maka koneksi TCP tersebut tetap di source-address pertama hingga sesi TCP selesai (menjadi Batman & Robin). Saat TCP session Batman & Robin tersebut belum selesai, ada ada request koneksi baru dari jaringan, maka sang Robin akan mengambil source-address koneksi berikutnya, menjadi Baskin & Robin. Dan seterusnya sang Robin akan me-round-round setiap koneksi tanpa memperhatikan penuh atau tidaknya salah satu koneksi.

Pasti anda sedang pusing membaca kalimat di atas, atau sedang tertawa terbahak-bahak.

2. Loadbalance
Konsep loadbalance mirip dengan konsep round-robin di atas, hanya saja sang Robin dipaksa melihat utilisasi ketiga koneksi tersebut di atas. Misalkan koneksi Batman & Robin serta Baskin & Robin sudah penuh, maka koneksi yang dipilih yang lebih kosong, dan koneksi yang diambil menjadi Robin Williams. Request koneksi berikutnya kembali sang Robin harus melihat dulu utilisasi koneksi yang ada, apakah ia harus menjadi Batman & Robin, Baskin & Robin atau Robin Williams, agar semua utilisasi koneksi seimbang, balance.

3. Failover
Konsep fail-over bisa disebut sebagai backup otomatis. Misalkan kapasitas link terbesar adalah link Batman, dan link Baskin lebih kecil. Kedua koneksi tersebut terpasang online, namun koneksi tetap di satu link Batman & Robin, sehingga pada saat link Batman jatuh koneksi akan berpindah otomatis ke link Baskin, menjadi Baskin & Robin hingga link Batman up kembali.



Nah setelah saya implementasikan, ternyata gampangnya gini. Anggap saja kita punya 2 jalur ke internet, jika menggunakan metode :
1. round robin : maka koneksi ke internet akan memakai kedua jalur tersebut secara bergantian, jadi kedua link akan terpakai hampir sama besar.
2. loadbalance : maka koneksi ke internet akan memakai jalur 1, baru setelah jalur satu penuh maka jalur ke 2 bisa digunakan.

Nah,.. dengan kebutuhan yang ada saat ini ternyata lebih cocok menggunakan metode round robin, koneksi jadi lebih wuzz wuzz..

Setting Router
Install minimal FreeBSD (penulis menggunakan FreeBSD 6.3) dgn memilih sys pada option src dan tambahkan port untuk memudahkan instalasi 3rd party software.

Aktifkan PF, IPFW, dan IPFILTER (sebenarnya PF cukup, tapi tidak ada salahnya install fitur2 tsb u/ kebutuhan2 ttt), sshd, enable_gateway.

Install mtr, ifstat, net-snmpd & mrtg, tcptrack, trafshow, lynx, apache, kesemuanya adalah tool u/ monitoring.. sangat2 berguna.

Sementara itu dulu, detailnya instalasi step by step nya akan saya bahas next aja.. skr meski baru jam 8 lebih dah capek beratttt...cawwww!...

0 komentar: