Database, Ubuntu Server, Programming

Like Us

Tags

Archive

Thursday, January 30, 2014

Studi kasus: Manajemen Bandwidth di Ubuntu Server dengan Traffic Control (HTB – hierarchical token bucket)


Pernahkah anda mengalami masalah tentang penggunaan bandwidth di jaringan anda? Misalnya saja anda memiliki bandwidth sebesar 4Mbps. Hanya saja pada praktek penggunaannya, ternyata hanya di dominasi oleh beberapa user saja atau yang paling parah jika ternyata hanya seorang pengguna saja yang terus terusan menguasainya? Aktifitas pengguna yang menggunakan koneksi untuk sekedar browsing-browsing saja atau berkomunikasi email menjadi terganggu akibat pengguna lain yang secara “liar” menggunakan bandwidthnya (dengan download manager) untuk kepentingan dirinya sendiri. Untuk mengatasi hal ini, perlu adanya manajemen bandwidth. Manajemen bandwidth ini dimaksudkan agar bandwidth dapat digunakan oleh para pengguna secara adil dan tepat guna.

Metode dalam melakukan manajemen bandwidth ini ada berbagai macam, salah satunya adalah metode antrian, metode prioritas, metode hirarki (HTB), metode identifikasi alamat IP dan lain-lain. Tool-tool yang digunakan untuk melakukan manajemen bandwidth pun juga banyak ditemui. Hanya saja pada tulisan ini, saya menggunakan metode identifikasi alamat IP yang dikombinasikan dengan metode HTB sebagai contohnya. Jadi manajemen pembagian bandwidth ini berdasarkan alamat IP dari kliennya. Untuk aplikasi yang digunakan, penulis menggunakan aplikasi TC (Traffic Control).

Sebagai studi kasus untuk manajemen bandwidth dengan Ubuntu Server, penulis mengilustrasikan kondisi seperti di bawah:


Ada sebuah jaringan yang memiliki bandwidth internet sebesar 4 Mbps, kemudian dari 4 Mbps tersebut akan dibagi ke 4 klien dengan skenario:

Klien 1 (PC Direktur) mendapatkan bandwidth internet minimal sebesar 1 Mbps, maksimal 4Mbps (jika masih sisa)
Klien 2 (PC Manager) mendapatkan bandwidth internet minimal sebesar 512Kbps dan maksimal 1Mbps (jika masih sisa)

Klien 3 (PC Finance) mendapatkan bandwidth internet minimal sebesar 512Kbps dan maksimal juga 512Mbps

Klien 4 (Wireless Router) mendapatkan bandwidth internat minimal sebesar 2Mbps dan maksimal sebesar 2Mbps (yang nanti akan diberikan kepada seluruh klien yang terhubung pada router wireless untuk mengakses internet).

*Bagi rekan-rekan yang belum begitu paham tentang cara mendapatkan subnet /29 dan apa alasannya, mungkin bisa membaca tulisan saya sebelumnya yang berjudul “Efisiensi alokasi alamat IP di jaringan komputer dengan teknik VLSM”.

Maka saya akan membuat metode hirarki (HTB) pembagian bandwidth di router dengan mekanisme seperti di bawah:


kemudian setelah dibuat hirarkinya, saya akan membuat script manajemen bandwidth seperti di bawah, merujuk pada HTB di atas dengan menjalankan perintah:

 vim htb

*Bagi rekan rekan yang belum begitu familiar menggunakan editor vim yang saya gunakan, anda bisa membaca tulisan saya yang berjudul “tutorial dasar menggunakan editor vim”.

kemudian saya masukkan script di bawah:

 #Delete konfigurasi sebelumnya 
 /sbin/tc qdisc del dev eth0 root  
 #HTB Root Qdisc device  
 /sbin/tc qdisc add dev eth0 root handle 1:0 htb 
 #HTB Root Class  
 /sbin/tc class add dev eth0 parent 1:0 classid 1:1 htb rate 4Mbit ceil 4Mbit  
 #HTB Direktur Class dev eth0  
 /sbin/tc class add dev eth0 parent 1:1 classid 1:2 htb rate 1024Kbit ceil 4Mbit  
 /sbin/tc qdisc add dev eth0 parent 1:2 handle 20: prio  
 /sbin/tc filter add dev eth0 parent 1:0 prio 1 protocol ip u32 match ip dst 192.168.0.1 flowid 1:2  
 #HTB Manager Class dev eth0  
 /sbin/tc class add dev eth0 parent 1:1 classid 1:3 htb rate 512Kbit ceil 1024Kbit 
 /sbin/tc qdisc add dev eth0 parent 1:3 handle 30: prio  
 /sbin/tc filter add dev eth0 parent 1:0 prio 4 protocol ip u32 match ip dst 192.168.0.2 flowid 1:3
 #HTB Finance Class dev eth0  
 /sbin/tc class add dev eth0 parent 1:1 classid 1:4 htb rate 512Kbit ceil 512Kbit 
 /sbin/tc qdisc add dev eth0 parent 1:4 handle 40: prio 
 /sbin/tc filter add dev eth0 parent 1:0 prio 3 protocol ip u32 match ip dst 192.168.0.3 flowid 1:4
 #HTB Wireless Router Class dev eth0  /sbin/tc class add dev eth0 parent 1:1 classid 1:5 htb rate 2Mbit ceil 2Mbit  
 /sbin/tc qdisc add dev eth0 parent 1:5 handle 50: prio  
 /sbin/tc filter add dev eth0 parent 1:0 prio 2 protocol ip u32 match ip dst 192.168.0.5 flowid 1:5

setelah disimpan, saya mengkopi file htb tersebut ke lokasi /etc/ di dalam ubuntu server, dengan menjalankan perintah:
 sudo cp htb /etc/

lalu saya ubah kepemilikan dan file permisinya dengan perintah chmod dan chown, seperti dibawah, untuk kepemilikan file:

 sudo chown root:root /etc/htb

untuk mengubah hak aksesnya:

 sudo chmod 755 /etc/htb

jalankan dulu script htb tersebut untuk mengaktifkan manajemen bandwidth anda, dengan menjalankan perintah di bawah:

 sudo /etc/./htb

agar konfigurasi anda menjadi permanen, tambahkan perintah menjalankan script tersebut di dalam file /etc/rc.local agar selalu di panggil router setiap kali restart.

Mudah bukan? Semoga membantu anda dalam memanajemen bandwidth di jaringan yang anda kelola. Terima kasih telah berkunjung :-)

Beberapa artikel terkait:

No comments: