Berbicara mengenai HTB tidak terlepas dari istilah
Queue. Apa itu
Queue?
Queue digunakan untuk membatasi atau memprioritaskan traffik tertentu.
Queue mampu:
- Membatasi traffik yang ditentukan berdasarkan IP tertentu, subnet, port dan parameter lainnya.
- Membatasi traffik peer-to-peer.
- Memprioritaskan beberapa paket aliran data atas yang lainnya.
- Menggunakan traffik burst untuk browsing yang lebih cepat.
- Membatasi traffik berdasarkan waktu.
- Memiliki kemampuan bandwidth sharing.
Ada dua macam
Queue di Mikrotik RouterOS:
- Queue Simple: dirancang sesederhana mungkin dan mudah dalam melakukan konfigurasi antrian baik pada jaringan skala kecil sampai menengah. Mampu membatasi pemakaian client tunggal download/upload, membatasi traffik P2P, dan lain-lain.
- Queue Tree: mirip seperti queue simple tapi lebih rumit. Mampu melaksanakan tugas antrian yang lebih canggih dan kompleks, melakukan pembatasan bandwidth berdasarkan kelompok pengguna, penerapan prioritas antrian secara global, dan sebagainya. Kita harus mengaktifkan fitur Mangle pada Firewall jika ingin menggunakan Queue Tree.
Penerapan
Queue didasarkan pada
Hierarchical Token Bucket (HTB).
HTB (Hirarchical Token Bukcet) adalah metode pengelompokan
queue (antrian) yang berguna untuk menangani berbagai jenis traffik. HTB memungkinkan kita untuk membuat struktur antrian berjenjang serta kaitannya antar antrian seperti
parent-child atau
child-child
Setidaknya ada 3 langkah dasar yang harus kita ikuti sebelum membuat HTB:
- Klasifikasi dan menandai traffik - yaitu mengklasifikasikan traffik untuk digunakan lebih lanjut.
- Membuat aturan untuk menandai traffik - yaitu menempatkan traffik ke dalam kelompok tertentu, antrian tertentu, kemudian menentukan tindakan yang akan diambil untuk masing-masing kelompok tadi.
- Menerapkan aturan untuk antarmuka tertentu - aturan yang bisa ditambahkan (global-in, global-out, global-total) dapat diterapkan untuk seluruh antarmuka, atau antarmuka tertentu, atau jenis parent antrian terentu.
Di
Mikrotik RouterOS, struktur hirarki/berjenjang dapat dipasang pada 4 tempat yang berbeda yang biasanya digunakan sebagai pilihan
parent antrian:
- global-in: mewakili antarmuka input secara umum. Maksudnya, antrian yang masuk ke global-in berlaku untuk traffik sebelum difilter seperti traffik upload.
- global-out: mewakili semua antarmuka output secara umum. Maksudnya, antrian yang keluar dari global-out berlaku untuk traffik setelah difilter seperti traffik download.
- global-total: mewakili semua antarmuka input dan output bersama-sama (dengan kata lain itu adalah penyatuan global-in dan global-out). Digunakan dalam kasus ketika pelanggan memiliki batas untuk upload dan download.
- <interface name>: merupakan salah satu outgoing interface tertentu. Hanya traffik yang keluar dari antarmuka ini yang bisa diqueue/masuk kedalam daftar antrian.
Namun untuk versi 6 keatas parent
global-in,
global-out, dan
global-total untuk
Queue Tree diganti dengan
global yang setara dengan
global-total untuk versi sebelumnya. Lihat kembali
apa yang baru di versi 6.
Limitasi
Antrian pada HTB dibatasi oleh 2 rate:
- CIR (Comitted Information Rate) - batas bawah atau minimal traffik (limit-at) yang dapat diperoleh antrian. Limit-at membatasi minimal traffik suatu antrian, tidak peduli walau dalam kondisi apapun antrian tidak akan mendapat traffik dibawah batas ini.
- MIR (Maximal Information rate) - batas atas atau maximal traffik (max-limit) yang bisa diperoleh antrian. Max-limit membatasi maximal traffik suatu antrian, dan setiap antrian akan mencapai batas ini jika parent masih memiliki cadangan bandwidth.
Sederhananya, pertama-tama traffik yang lewat akan mendapat batas minimal traffik (
limit-at) kemudian setiap antrian mencoba mendekati batas maximal (
max-limit) dengan meminjam bandwidth yang tersisa dari
parent.
Oleh karenanya untuk mendapatkan hasil terbaik penggunaan fitur limitasi diatas sangat dianjurkan. Jika kita menggunakan
parent antrian, maka total jumlah
limit-at untuk
child antrian pada semua tingkatan harus kurang dari atau sama dengan jumlah traffik yang tersedia pada
parent.
CIR (parent) >= CIR (child1) + CIR (child2) + CIR (child)3+ ...
Dan
max-limit masing-masing
child antrian pada semua tingkatan harus kurang dari atau sama dengan traffik maksimal
parent.
MIR (parent) >= MIR (child1) & MIR (parent) >= MIR (child2) & MIR (parent) >= ...
Prioritas
Sudah kita ketahui bahwa semua antrian tidak akan mendapatkan traffik dibawah nilai
limit-at pada kondisi apapun. Maka nilai prioritas bertanggungjawab untuk mendistribusikan bandwidth yang tersisa dari
parent antrian kepada
child antrian sehingga mereka mampu mencapai nilai
max-limit.
Antrian dengan prioritas lebih tinggi akan mencapai nilai
max-limit daripada antrian dengan prioritas yang lebih rendah. 8 adalah prioritas terendah dan 1 adalah prioritas tertinggi. Perlu dicatat bahwa prioritas akan bekerja jika nilai
max-limit bukan nol (0). Untuk antrian yang melewati nilai
limit-at dan
max-limit parent antrian (
leaf queue), prioritas di dalam (
inner) antrian tidak akan memiliki arti.
Properti HTB
Properti yang sering dipakai pada HTB bisa dilihat pada contoh
Queue Simple dan
Queue Tree.