Untuk mempermudah pemantauan dan pembuktian, kita akan menggunakan queue tree.
Cara paling mudah untuk melakukan queue dengan queue tree, adalah dengan menentukan parameter :
- parent (yang harus diisi dengan outgoing-interface),
- packet-mark (harus dibuat terlebih dahulu di ip-firewall-mangle),
- max-limit (yang merupakan batas kecepatan maksimum), atau dikenal juga dengan MIR (Maximum Information Rate)
Karena alokasi bandwidth yang tersedia hanya 400kbps, sedangkan total akumulasi
ketiga client melebihinya (600 kbps), maka ketiga client akan saling berebut,
dan tidak bisa diprediksikan siapa yang akan menang (menggunakan bandwidth secara
penuh) dan siapa yang akan kalah (tidak mendapatkan bandwidth yang sesuai).
Misalkan q1 adalah client dengan prioritas tertinggi, dan q3 adalah client dengan
prioritas terbawah. Kita akan mencoba memasukkan nilai prioritas untuk masing-masing
client sesuai dengan prioritasnya.
Tampak pada gambar di atas, meskipun sekarang q1 sudah memiliki prioritas tertinggi, namun ketiga client masih berebutan bandwidth dan tidak terkontrol.
Gambar berikut akan mencoba mengimplementasikan nilai limit-at. Seharusnya, limit-at
adalah CIR (Committed Information Rate), merupakan parameter di mana suatu client akan mendapatkan bandwidthnya, apapun
kondisi
lainnya, selama bandwidthnya memang tersedia.
Ternyata q1 masih tidak mendapatkan bandwidth sesuai dengan limit-at (CIR) nya. Padahal, karena bandwidth yang tersedia adalah 400kbps, seharusnya mencukupi untuk mensuplai masing-masing client sesuai dengan limit-at nya.
Berikutnya, kita akan menggunakan parent queue, dan menempatkan ketiga queue
client tadi sebagai child queue dari parent queue yang akan kita buat. Pada parent
queue, kita cukup memasukkan outgoing-interface pada parameter parent, dan untuk
ketiga child, kita mengubah parameter parent menjadi nama parent queue. Pertama-tama,
kita belum akan memasukkan nilai max-limit pada parent-queue, dan menghapus semua
parameter limit-at pada semua client.
Tampak pada contoh di atas, karena kita tidak memasukkan nilai max-limit pada
parent, maka priority pada child pun belum bisa terjaga.
Setelah kita memasang parameter max-limit pada parent queue, barulah prioritas
pada client akan berjalan.
Tampak pada contoh di atas, q1 dan q2 mendapatkan bandwidth hampir sebesar max-limitnya,
sedangkan q3 hampir tidak kebagian bandwidth. Prioritas telah berjalan dengan
baik. Namun, pada kondisi sebenarnya, tentu kita tidak ingin ada client yang sama
sekali tidak mendapatkan bandwidth.
Untuk itu, kita perlu memasang nilai limit-at pada masing-masing client. Nilai
limit-at ini adalah kecepatan minimal yang akan di dapatkan oleh client, dan tidak
akan terganggu oleh client lainnya, seberapa besarpun client lainnya 'menyedot'
bandwidth, ataupun berapapun prioritasnya. Kita memasang nilai 75kbps sebagai
limit-at di semua client.
Tampak bahwa q3, yang memiliki prioritas paling bawah, mendapatkan bandwidth
sebesar limit-at nya. q1 yang memiliki prioritas tertinggi, bisa mendapatkan bandwidth
sebesar max-limitnya, sedangkan q2 yang prioritasnya di antara q1 dan q3, bisa
mendapatkan bandwidth di atas limit-at, tapi tidak mencapai max-limit. Pada contoh
di atas, semua client akan terjamin mendapatkan bandwidth sebesar limit-at, dan
jika ada sisa, akan dibagikan hingga jumlah totalnya mencapai max-limit parent,
sesuai dengan prioritas masing-masing client.
Jumlah akumulatif dari limit-at tidaklah boleh melebihi max-limit parent. Jika
hal itu terjadi, seperti contoh di bawah ini, jumlah limit-at ketiga client adalah
600kbps, sedangkan nilai max-limit parent hanyalah 400kbps, maka max-limit parent
akan bocor. Contoh di bawah ini mengasumsikan bahwa kapasitas keseluruhan memang
bisa mencapai nilai total limit-at. Namun, apabila bandwidth yang tersedia tidak
mencapai total limit-at, maka client akan kembali berebutan dan sistem prioritas
menjadi tidak bekerja.
Sedangkan, mengenai max-limit, max-limit sebuah client tidak boleh melebihi max-limit parent. Jika hal ini terjadi, maka client tidak akan pernah mencapai max-limit, dan hanya akan mendapatkan kecepatan maksimum sebesar max-limit parent (lebih kecil dari max-limit client).
Jika semua client memiliki prioritas yang sama, maka client akan berbagi bandwidth
sisa. Tampak pada contoh di bawah ini, semua client mendapatkan bandwidth yang
sama, sekitar 130kbps (total 400kbps dibagi 3).
Yang perlu diingat mengenai HTB:
- HTB hanya bisa berjalan, apabila rule queue client berada di bawah setidaknya 1 level parent, setiap queue client memiliki parameter limit-at dan max-limit, dan parent queue harus memiliki besaran max-limit.
- Jumlah seluruh limit-at client tidak boleh melebihi max-limit parent.
- Max-limit setiap client harus lebih kecil atau sama dengan max-limit parent.
- Untuk parent dengan level tertinggi, hanya membutuhkan max-limit (tidak membutuhkan parameter limit-at).
- Untuk semua parent, maupun sub parent, parameter priority tidak diperhitungkan.
Priority hanya diperhitungkan pada child queue.
- Perhitungan priority baru akan dilakukan setelah semua limit-at (baik pada child queue maupun sub parent) telah terpenuhi.
- Berapa jumlah maksimal client yang menggunakan internet pada saat yang bersamaan.
Jumlah ini belum tentu sama dengan jumlah komputer yang ada, apabila semua client
tidak pernah terkoneksi secara bersamaan. Sebagai contoh, untuk kasus ini kita
asumsikan adalah
50.
- Berapa jumlah minimal client yang menggunakan internet pada saat yang bersamaan. Sebagai contoh, untuk kasus ini kita asumsikan adalah 10
Posting Komentar