Sabtu, 27 Oktober 2018

Simple Queue, HTB, dan Queue Tree

1. Penjelasan

a. Simple Queue

     Merupakan metode bandwidth management termudah yang ada di Mikrotik. Menu dan konfigurasi yang dilakukan untuk menerapkan simple queue cukup sederhana dan mudah dipahami. Walaupun namanya simple queue sebenarnya parameter yang ada pada simple queue sangat banyak, bisa disesuaikan dengan kebutuhan yang ingin diterapkan pada jaringan. 

Parameter dasar dari simple queue adalah Target dan Max-limit. Target dapat berupa IP address, network address, dan bisa juga interface yang akan diatur bandwidthnya. Max-limit Upload / Download digunakan untuk memberikan batas maksimal bandwidth untuk si target. 

 

Simple Queue mampu melimit Upload, download secara terpisah atau Total(Upload+download) sekaligus dalam satu rule menggunakan tab Total.

Setiap rule pada Simple Queue dapat berdiri sendiri ataupun dapat juga disusun dalam sebuah hierarki dengan mengarahkan Parent ke rule lain. Parameter-parameter lain juga bisa dimanfaatkan untuk membuat rule semakin spesifik seperti Dst, Priority, Packete Mark dan sebagainya.


b. Queue Tree

Merupakan fitur bandwidth management di Mikrotik yang sangat fleksibel dan cukup kompleks. Pendefinisian target yang akan dilimit pada Queue Tree tidak dilakukan langsung saat penambahan rule Queue namun dilakukan dengan melakukan marking paket data menggunakan Firewall Mangle.


 

Inilah yang menjadikan penerapan Queue Tree menjadi lebih kompleks. Langkah ini menjadi tantangan tersendiri, sebab jika salah pembuatan Mangle bisa berakibat Queue Tree tidak berjalan. 

Namun disisi lain penggunaan Mangle Packet-Mark ini juga menguntungkan, sebab akan lebih fleksible dalam menentukan traffic apa yang akan dilimit, bisa berdasar IP Address, Protocol, Port dan sebagainya. Setiap service pada jaringan dapat diberikan kecepatan yang berbeda.

c. HTB ( Hierarchical Token Bucket )

Implementasi QoS (Quality of Services) di Mikrotik banyak bergantung pada sistem HTB (Hierarchical Token Bucket), HTB adalah sebuah sistem untuk mengatur dan mengontrol kapasitas bandwidth. Pada sebuah service provider harus memiliki pengaturan bandwidth yang efisien dan efektif. Untuk mendapatkan hasil tersebut diperlukan sebuah system dan HTB inilah merupakan sistem yang memilki efisiensi untuk menghasilkan pengaturan bandwidth yang optimum.
HTB memungkinkan kita membuat queue menjadi lebih terstruktur, dengan melakukan pengelompokan - pengelompokan bertingkat. Yang banyak tidak disadari adalah, jika kita tidak mengimplementasikan HTB pada Queue (baik Simple Queue maupun Queue Tree), ternyata ada beberapa parameter yang tidak bekerja seperti yang kita inginkan. Beberapa parameter yang tidak bekerja adalah priority, dan dual limitation (CIR / MIR).

2. Kekurangan dan Kelebihan

a. Simple Queue

Adapun kelebihan yang terdapat pada Metode Simple Queues adalah tidak tidak dapat ditembus oleh Download Manager dan merupakan metode yang cukup sederhana dalam melakukan konfigurasinya. Kekurangan yang terdapat pada metode Simple Queues adalah, kita tidak bisa mengalokasikan bandwith khusus buat ICMP (Internet Control Message Protocol), sehingga apabila pemakaian bandwith pada klien sudah penuh, ping time nya akan naik dan bahkan RTO (request time out)

b. Queue Tree

Kelebihan dari Queue Tree :
  • Dapat membuat beberapa parent queue
  • Dapat menandai sebuah paket data menggunakan mangle dan memproses paket tersebut berdasarkan queuenya
  • Dapat melakukan limitasi bandwidth dan skala prioritas
Kekurangan dari Queue Tree :
  • Jika ada traffic yang sama padasimple queue, traffic tersebut akan berjalan pada simple queue dan tidak dapat dijalankan di queue tree.
  • Membutuhkan konfigurasi yang cukup rumit.

c. Metode HTB

Metode HTB mempunyai kelebihan dalam pembatasan trafik pada tiap level maupun klasifikasi, sehingga bandwidth yang tidak dipakai oleh level yang tinggi dapat digunakan atau dipinjam oleh level yang lebih rendah.

3. Perbandingan SImple Queue, Queue Tree, dan HTB

Queue Simple
  • Simple Queue melimit secara fix dan memiliki aturan yang ketat.
  • Simple Queue akan memproses dari antrian secara terurut mulai dari atas hingga ke bawah.
  • Simple Queue melakukan limit dua arah sekaligus traffic Upload dan Download.
  • Simple Queue akan lebih di proses atau prioritaskan terlebih dahulu dibandingkan Queue Tree jika digunakan secara bersamaan. 
  • Simple Queue dapat memproses antrian yang di tandai oleh paket mangle.
  • Simple Queue sangat cocok bagi admin yang tidak mau ribet dengan adanya traffic control pada mangle.


Queue Tree


  • Queue Tree membagi bandwidth secara fixed dan tidak memiliki aturan yang ketat.
  • Queue Tree tidak memperhatikan antrian sehingga proses akan dijalankan secara bersamaan. 
  • Queue Tree melakukan limit secara directional (satu arah).
  • Queue Tree sangat bergantung pada firewall mangle jika melakukan pembatasan trafik dan membedakan proses upload/download.
  • Queue Tree akan di nomer duakan setelah simple queue.
  • Untuk melakukan konfigurasi queue tree admin harus mengetahui traffic control lalu lintas yang ada.
Perbandingan Simple Queue dan HTB

Dari hasil rakpitulasi data yang telah diambil, perbandingan kecepatan download dan upload pada jaringan simple queue dan HTB dapat dilihat pada tabel berikut:
Berdasarkan tabel dan grafik di atas, dapat dilihat bahwa kecepatan download rata-rata simple queue sebesar 0,92 Mbps dan upload sebesar 0,47 Mbps. Sementara nilai download rata-rata HTB sebesar 4,17 Mbps dan upload sebesar 0,73 Mbps. Grafik simple queue terlihat lebih statis dibandingkan dengan grafik HTB, karena simple queue memiliki nilai max-limit yang sudah ditentukan peruser. Berbeda dengan HTB, memiliki grafik yang lebih dinamis sebagai bukti bahwa HTB mampu mengoptimalkan penggunaan bandwidth yang tersedia. HTB memiliki nilai max-limit pada parent maupun child, dan user-user yang ada pada level child bisa menggunakan bandwidth jaringan secara full disaat kondisi jaringan sedang tidak sibuk. Pada saat jaringan sedang dalam kondisi sibuk, user akan mendapatkan nilai kecepatan di bawah max-limit karena bandwidth akan dibagi secara merata kepada seluruh user yang sedang online secara bersamaan.

4. Cara Pakai (Penggunaan)

a. Melimitasi Bandwidth Menggunakan Simple Queue

Silakan buka Winbox nya dan pilih menu Queues, maka akan muncul tampilan berikut :



Sebelum kita mulai membatasi Bandwidth internet dengan mikrotik, pastikan dulu berapa Bandwidth Internet yang anda dapat dari ISP yang anda pakai. Sehingga nantinya nilai Bandwidth yang dilimit tidak melebihi alokasi Bandwidth dari ISP. Misalnya bandwidth dari ISP sebesar 1 Mbps, maka limit bandwidth nya diset lebih kecil atau sama dengan 1 Mbps.

Untuk menambahkan Simple Queue baru klik tombol +, maka akan muncul tempilan seperti berikut :



Ada beberapa tab di jendela Simple Queue tersebut, namun kita hanya akan menggunakan tab General dan Advanced saja.

Tab General
Pada tab General ada beberapa pilihan yang dapat diseting. Yang perlu kita perhatikan dengan seksama yaitu pilihan Target Address dan Max Limit.

Target Address
Anda dapat mengisis Target Address dengan IP address tertentu yang ingin anda batasi Bandwidth nya, misal 192.168.100.0/24. Dari gambar di atas bisa dilihat untuk Target Address kosong, ini berarti konfigurasi limit Bandwidth ini berlaku untuk semua alamat IP.

Max Limit
Max Limit adalah alokasi bandwidth maksimal yang bisa didapatkan user, dan biasanya akan didapatkan user jika ada alokasi bandwidth yang tidak digunakan lagi oleh user lain. Jangan lupa centang Target Upload dan Target Download untuk mengaktifkan fitur ini, pilih besar Bandwidth yang ingin dilimit pada Max Limit. Misalnya upload : 256kbps download : 1Mbps.

Besar limit Bandwidth untuk upload lebih rendah daripada download nya karena memang user biasanya lebih banyak melakukan download (browsing, download musik, file, dll) daripada upload. Anda dapat memilih sesuai keinginan.

Anda juga dapat menentukan waktu kapan dan berapa lama Simple Queue ini akan mulai berjalan dengan memilih opsi Time.

Tab Advanced



Pada tab Advanced hal yang perlu diperhatikan pada opsi Interface dan Limit At.

Interface
Pilih interface mana yang ingin dibatasi bandwidth nya, misalnya interface Wlan1 untuk membatasi koneksi internet via wireless. Jika ingin membatasi bandwidth di semua Interface pilih all.

Limit At
Limit At adalah alokasi bandwidth trendah yang bisa didapatkan oleh user jika traffic jaringan sangat sibuk. Seburuk apapun keadaan jaringan, user tidak akan mendapat alokasi bandwidth dibawah nilai Limit At ini. Jadi Limit At ini adalah nilai bandwidth terendah yang akan didapatkan oleh user. Nilai nya terserah anda mau diisi berapa. Misalnya diisi upload 128kbps download : 512kbps.

Nah, dari konfigurasi tersebut, maka hasilnya jika semua user sedang memakai koneksi internet dan kondisi jaringan sibuk maka tiap user akan mendapatkan bandwidth sebesar 128kbps/512kbps. Jika satu atau beberapa user tidak sedang menggunakan koneksi maka alokasi bandwidth akan diberikan ke user yang sedang terkoneksi. Dan jika hanya satu user yang menggunakan koneksi maka user itu akan mendapatkan alokasi bandwidth maksimal 256kbps/1Mbps.


Klik ok untuk menambahkan Simple Queue tersebut, sehingga akan muncul di queue list.



b. Melimitasi Bandwidth Menggunakan Queue Tree

Tahap 1 : Membuat mangle untuk menandai paket

Langsung saja kita menuju Firewall -> Mangle
untuk yang pertama kita akan menandai paket icmp dari client menuju internet dan kita beri nama icmp, berikut capturenya.



Selanjutnya kita tandai paket icmp yang mengarah ke client dan diberi nama icmp, berikut capturenya.






Selanjutnya kita akan menandai paket internet untuk upload dari user kecuali paket icmp dan kita berinama lan_up. capturenya sebagai berikut.



untuk yang terakhir kita konfigurasi untuk menandai paket downloadnya kecuali paket icmp dan diberi nama lan_dn. Capture sebagai berikut.





Berikut capture untuk ke 4 manggle yang sudah kita buat tadi.



Tahap 2 : Membuat limiternya di Queues Tree


Untuk melakukan konfigurasi tersebut kita bisa langsung menuju menu Queues -> Simple Tree

  • Konfigurasi limit untuk paket ICMP
  • Konfigurasi limit untuk Download
  • Konfigurasi limit untuk Upload


  • Berikut capture untuk keseluruhan limit yang sudah kita buat.



Berikut hasil pengetesan yang saya lakukan dengan menggunakan speedtest.cbn.net.id.


Download

Upload

Ping setelah speedtest


Dari pengetesan diatas kita ketahui walaupun bandwidth sudah mencapai maksimal untuk ping stabil tidak ada perubahan walaupun traffik ke user sudah full.

c. Mendalami HTB pada QoS RouterOS Mikrotik

Implementasi QoS (Quality of Services) di Mikrotik banyak bergantung pada sistem HTB (Hierarchical Token Bucket). HTB memungkinkan kita membuat queue menjadi lebih terstruktur, dengan melakukan pengelompokan-pengelompokan bertingkat. Yang banyak tidak disadari adalah, jika kita tidak mengimplementasikan HTB pada Queue (baik Simple Queue maupun Queue Tree), ternyata ada beberapa parameter yang tidak bekerja seperti yang kita inginkan.Beberapa parameter yang tidak bekerja adalah priority, dan dual limitation (CIR / MIR).

Pada pembahasan artikel ini, kita akan mengambil contoh sebuah sistem QoS sederhana, di mana kita ingin mengalokasikan bandwidth sebesar 400kbps untuk 3 client, di mana masing-masing client bisa mendapatkan maksimal 200kbps. Di antara ketiga client tersebut, memiliki prioritas yang berbeda, yaitu: 1,2, dan 3.

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) 
Untuk percobaan awal, semua priority diisi angka yang sama: 8, dan parameter limit-at tidak kita isi. Gambar berikut ini adalah ilustrasi apa yang akan terjadi dengan konfigurasi di atas. 


 
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:

  1. 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.
  2. Jumlah seluruh limit-at client tidak boleh melebihi max-limit parent.
  3. Max-limit setiap client harus lebih kecil atau sama dengan max-limit parent.
  4. Untuk parent dengan level tertinggi, hanya membutuhkan max-limit (tidak membutuhkan parameter limit-at).
  5. Untuk semua parent, maupun sub parent, parameter priority tidak diperhitungkan. Priority hanya diperhitungkan pada child queue. 
  6. Perhitungan priority baru akan dilakukan setelah semua limit-at (baik pada child queue maupun sub parent) telah terpenuhi. 
Panduan praktis cara perhitungan limit-at dan max-limit 

Di asumsikan bandwidth yang tersedia sebesar 1000kbps. Dan jumlah seluruh client adalah 70. Yang perlu diketahui adalah : 

  1. 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. 
  2. Berapa jumlah minimal client yang menggunakan internet pada saat yang bersamaan. Sebagai contoh, untuk kasus ini kita asumsikan adalah 10
Maka, untuk setiap client (1 client dibuatkan 1 rule queue), limit-at nya adalah 1000 / 50 = 20kbps, dan max-limit nya adalah 1000 / 10 = 100 kbps.

Jangan lupa untuk menambahkan parent dengan max-limit sebesar 1000kbps (tidak perlu limit-at), dan memasukkan semua queue client di bawah parent queue. Jika untuk terminal tertentu membutuhkan priority lebih besar, maka kita bisa menggunakan priority yang berbeda-beda, tergantung dengan urutan prioritasnya.

Daftar Pustaka

1 komentar: