Queue Tree memiliki kemampuan lebih canggih dari
Simple Queue.
Queue Tree akan membuat satu arah koneksi pada antrian
HTB, setelah itu menambahkan antrian pada antarmuka yang ada secara terpisah. Namun sebelum menggunakan
Queue Tree kita harus melakukan konfigurasi
mangle terlebih dulu di
firewall.
Tidak seperti
Simple Queue yang menyediakan opsi target
download dan
upload, di
Queue Tree tidak ada pilihan
download dan
upload. Koneksi
upload dapat ditangkap pada antarmuka
public dan koneksi
download dapat ditangkap pada antarmuka
private/local.
Sebelum versi 6,
Queue Tree memungkinkan kita memiliki antrian ganda dalam satu antrian seperti memberi prioritas yang berbeda pada traffik
global-in dan
global-out, atau membatasi traffik download/upload per client pada satu antarmuka. Tapi sejak versi 6 parent
global-in dan
global-out sudah disatukan diganti dengan parent
global saja dan kita masih tetap bisa membatasi traffik download/upload client pada satu antarmuka. Lihat kembali
apa yang baru di versi 6.
Sebagai catatan, jika kita menerapkan 2 antrian yaitu
Simple Queue dan
Queue Tree pada satu
HTB maka
Simple Queue akan mendapatkan traffik yang pertama kali. Selain itu
Queue Tree tidak memiliki urutan, semua traffik akan dilewati secara bersama-sama, tidak seperti
Simple Queue yang memiliki aturan urutan yang sangat ketat. Silahkan baca kembali mengenai
Simple Queue disini.
Di
Queue Tree kita bisa memanfaatkan fitur
PCQ (Per Connection Queue) untuk mengenali arah arus. Jika classifier yang digunakan adalah src-address pada
private/local interface, maka aliran
pcq akan menjadi koneksi
upload. Begitu juga dengan dst-address akan menjadi koneksi download.
Bagaimana menggunakan
Queue Tree di Mikrotik? Silahkan perhatikan gambar dibawah ini.
1. Pertama-tama lakukan konfigurasi firewall mangle.
- Tandai koneksi yang terjadi di interface private.
/ip firewall mangle add chain=forward action=mark-connection new-connection-mark=client-conn passthrough=yes in-interface=private
- Tandai paket download client.
/ip firewall mangle add chain=postrouting action=mark-packet new-packet-mark=down-client passthrough=yes dst-address=192.168.12.0/24 connection-mark=client-conn
- Tandai paket download client01. Lakukan juga untuk client02, client03, dst
/ip firewall mangle add chain=postrouting action=mark-packet new-packet-mark=down-client-01 passthrough=no dst-address=192.168.12.1 connection-mark=client-conn
- Tandai paket upload client
/ip firewall mangle add chain=prerouting action=mark-packet new-packet-mark=up-client passthrough=yes src-address=192.168.12.0/24 connection-mark=client-conn
- Tandai paket upload client0. Lakukan juga untuk client02, client03, dst
/ip firewall mangle add chain=prerouting action=mark-packet new-packet-mark=up-client-01 passthrough=no src-address=192.168.12.1 connection-mark=client-conn
2. Buat PCQ di Queue Type.
Mikrotik versi 6.0 ke atas sudah tersedia pengaturan default pcq yang diberi nama
pcq-download-default dan
pcq-upload-default.
/queue type add name="pcq-upload-default" kind=pcq pcq-rate=0 pcq-limit=50 pcq-classifier=src-address pcq-total-limit=2000 pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-src-address-mask=32 pcq-dst-address-mask=32 pcq-src-address6-mask=128 pcq-dst-address6-mask=128
/queue type add name="pcq-download-default" kind=pcq pcq-rate=0 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000 pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-src-address-mask=32 pcq-dst-address-mask=32 pcq-src-address6-mask=128 pcq-dst-address6-mask=128
3. Kemudian lakukan limitasi untuk masing-masing IP di Queue Tree.
- Parent antrian untuk koneksi download
/queue tree add name="down" parent=private packet-mark=down-client limit-at=1M queue=default priority=8 max-limit=1M burst-limit=0 burst-threshold=0 burst-time=0s
- Child antrian untuk koneksi download client01. Lakukan langkah yang sama untuk client02, client03, dst
/queue tree add name="down-01" parent=down packet-mark=down-client-01 limit-at=128k queue=pcq-download-default priority=8 max-limit=1M burst-limit=0 burst-threshold=0 burst-time=0s
- Parent antrian untuk koneksi upload
/queue tree add name="up" parent=public packet-mark=up-client limit-at=1M queue=pcq-upload-default priority=8 max-limit=1M burst-limit=0 burst-threshold=0 burst-time=0s
- Child antrian untuk koneksi upload client01. Lakukan langkah yang sama untuk client02, client03, dst
/queue tree add name="up-01" parent=up packet-mark=up-client-01 limit-at=128k queue=pcq-upload-default priority=8 max-limit=1M burst-limit=0 burst-threshold=0 burst-time=0s
Sekarang coba lakukan pengujian, seharusnya sekarang setiap client saling berbagi koneksi. Semoga berhasil...
Properti HTB
- parent (Name of, or none): menetapkan antrian ini sebagai child antrian dengan memilih antrian lainnya sebagai parent.
- priority (1..8) : digunakan untuk menentukan prioritas antara satu child antrian dengan child antrian lainnya. Setidaknya kita harus memiliki minimal dua child antrian dan prioritas ini tidak berlaku untuk parent antrian. Nilai 8 adalah prioritas terendah dan 1 adalah prioritas tertinggi. Child antrian dengan prioritas yang lebih tinggi memiliki kesempatan untuk mencapai nilai limit-at lebih dulu sebelum child antrian lainnya dengan prioritas lebih rendah. Begitu juga child antrian dengan prioritas lebih tinggi memiliki kesempatan untuk mencapai nilai max-limit sebelum child antrian dengan prioritas yang lebih rendah.
- queue (SOMETHING) : dipilih untuk menentukan jenis antrian download/upload. Jenis antrian dapat dibuat pada /queue type.
- limit-at (NUMBER) : normal bandwidth yang dijamin untuk target.
- max-limit (NUMBER) : maximal bandwidth yang diizinkan untuk dicapai target.
- burst-limit (NUMBER) : maximal bandwidth yang bisa dicapai target saat burst aktif.
- burst-time (TIME) : periode waktu dalam hitungan detik yang ditentukan berdasarkan nilai rata-rata bandwidth download/upload.
- burst-threshold (NUMBER) : batas burst, ketika rata-rata bandwidth dibawah ini maka burst diizinkan, sebaliknya jika tidak maka ditolak. Untuk burst yang lebih optimal, nilai ini harus diatas nilai limit-at dan dibawah nilai max-limit.