HTB bandwidth management with Ubuntu

Mungkin temen-temen pernah ketemu sama user bandel yang selalu menyedot bandwidth internet tanpa peduli sekitarnya (yang lagi sama-sama ngenet dengan si user bandel), untuk mengatasi user bandel tersebut biasanya saya selalu menggunakan aplikasi TC (traffic Control) yang sudah terinstall default di Ubuntu Server 8.04 LTS, sebenernya ada beberapa cara untuk mengatur bandwidth tiap-tiap user, seperti penggunaan Proxy (Squid) yang dipadukan dengan delay_pools sebagai salah satunya,  di TC bisa juga dipadukan dengan marking (penanda) iptables di rantai MANGLE, atau bisa juga langsung diarahkan pada alamat IP yang dipake si User “bandel” tersebut. Pada tulisan saya ini, saya simulasikan penggunaan TC dengan metode HTB untuk mengatur bandwidth suatu ruangan kecil yang terdiri dari 1 router dan 4 klien


(Klien1)eth0————-|
(Klien2)eth0————-|
(Klien3)eth0————-|—————-eth1(Router)eth0 ————Internet
(Klien4) eth0————-|
dengan alamat IP seperi di bawah:
Router eth1: 192.168.0.1
Klien 1 eth0: 192.168.0.11 (Jatah Bandwidth 64 Kbps Max 256Kbps)
Klien 2 eth0: 192.168.0.12 (Jatah Bandwidth 128 Kbps Max 256Kbps)
Klien 3 eth0: 192.168.0.13 (Jatah Bandwidth 32 Kbps Max 256Kbps)
Klien 4 eth0: 192.168.0.14 (Jatah Bandwidth 32 Kbps Max 256Kbps)
Dari klasifikasi di atas maka dapat dibuat 3 kelas pada TC, mari kita mulai:

Langkah pertama adalah hapus semua aturan pada TC sebelumnya (kalo ada) dengan perintah:
/sbin/tc qdisc del dev eth1 root
Kemudian bikin 1 rantai root yang menjadi parentnya dengan maksimum bandwidth yang ada adalah 256Kbps:
/sbin/tc qdisc add dev eth1 root handle 1:0 htb
/sbin/tc class add dev eth1 parent 1:0 classid 1:1 htb rate 256Kbit ceil 256Kbit
kemudian bikin kelasnya dengan perintah
/sbin/tc class add dev eth1 parent 1:1 classid 1:2 htb rate 64Kbit ceil 256Kbit
/sbin/tc class add dev eth1 parent 1:1 classid 1:3 htb rate 128Kbit ceil 256Kbit
/sbin/tc class add dev eth1 parent 1:1 classid 1:4 htb rate 32Kbit ceil 256Kbit
Kemudian baru kita klasifikasikan setiap user untuk masuk ke tiap kelasnya
Untuk Klien 1 dengan perintah:
/sbin/tc qdisc add dev eth1 parent 1:2 handle 20: prio
/sbin/tc filter add dev eth1 parent 1:0 prio 1 protocol ip u32 match ip dst 192.168.0.11 flowid 1:2
Untuk Klien 2 dengan perintah:
/sbin/tc qdisc add dev eth1 parent 1:3 handle 30: prio
/sbin/tc filter add dev eth1 parent 1:0 prio 1 protocol ip u32 match ip dst 192.168.0.12 flowid 1:3
Untuk Klien 3 dan klien 4 dengan perintah:
/sbin/tc qdisc add dev eth1 parent 1:4 handle 40: prio
/sbin/tc filter add dev eth1 parent 1:0 prio 1 protocol ip u32 match ip dst 192.168.0.13 flowid 1:4
/sbin/tc filter add dev eth1 parent 1:0 prio 1 protocol ip u32 match ip dst 192.168.0.14 flowid 1:4
dengan begitu setiap klien akan mendapat jatah masing-masing tanpa harus berebut, selain itu saat jaringan sedang tidak padat, maka setiap klien dapat meminjam bandwidth klien yang tidak terpakai hingga mencapai bandwidth maksimum 256Kbps.

Silakan mencoba dan semoga berhasil.

0 comments:

Post a Comment

Please Enable JavaScript!
Mohon Aktifkan Javascript![ Enable JavaScript ]
close
iklan 120 x 600 kanan
close