Jumat, Februari 12

[Mikrotik] Perbedaan Simple Queue dan Queue Tree, serta penjelasan PCQ

Perbedaan antara Queue Simple dan Queue Tree adalah sebagai berikut :

1. Queue Simple
  • Memiliki aturan urutan yang sangat ketat, antrian diproses mulai dari yang paling atas sampai yang paling bawah.
  • Mengatur aliran paket secara bidirectional (dua arah).
  • Mampu membatasi trafik berdasarkan alamat IP.
  • Satu antrian mampu membatasi trafik dua arah sekaligus (upload/download).
  • Jika menggunakan Queue Simple dan Queue Tree secara bersama-sama, Queue Simple akan diproses lebih dulu dibandingkan Queue Tree.
  • Mendukung penggunaan PCQ sehingga mampu membagi bandwidth secara adil dan merata.
  • Bisa menerapkan antrian yang ditandai melalui paket di /firewall mangle.
  • Mampu membagi bandwidth secara fixed.
  • Sesuai namanya, pengaturannya sangat sederhana dan cenderung statis, sangat cocok untuk admin yang tidak mau ribet dengan traffic control di /firewall mangle.
2. Queue Tree
  • Tidak memiliki urutan, setiap antrian akan diproses secara bersama-sama.
  • Mengatur aliran paket secara directional (satu arah)
  • Membutuhkan pengaturan /firewall mangle untuk membatasi trafik per IP.
  • Membutuhkan pengaturan /firewall mangle terlebih dahulu untuk membedakan trafik download dan upload.
  • Dinomorduakan setelah Queue Simple.
  • Mendukung penggunaan PCQ sehingga mampu membagi bandwidth secara adil dan merata.
  • Pengaturan antrian murni melalui paket yang ditandai di /firewall mangle.
  • Mampu membagi bandwidth secara fixed.
  • Lebih fleksibel dan butuh pemahaman yang baik di /firewall mangle khususnya tentang traffic control.

Penjelasan beberapa argumen di Queue Tree :
1. Parent : berguna untuk menentukan apakah queue yang dipilih bertugas sebagai child queue
Ada beberapa pilihan default di parent queue tree yang biasanya digunakan untuk induk queue:
Global-in :
Mewakili semua input interface pada umumnya. Maksudnya disini interface yang menerima input data/trafik sebelum difilter seperti trafik upload
 - Global-out :
Mewakili semua output interface pada umumnya. Maksudnya disini interface yang mengeluarkan output data/trafik yang sudah difilter seperti trafik download
Global-total :
Mewakili semua input dan output interface secara bersama, dengan kata lain merupakan penyatuan dari global-in dan global-out.                                  
 - <interface name>: ex: lan atau wan :
Mewakili salah satu interface keluar. Maksudnya disini hanya trafik yang keluar dari interface ini yang akan diqueue.

2. Packet Mark : Digunakan untuk menandai paket yang sudah ditandai di /ip firewall mangle.

3. Priority ( 1 s/d 8) : Digunakan untuk memprioritaskan child queue dari child queue lainnya. Priority tidak bekerja pada induk queue. Child Queue yang mempunyai priority satu (1) akan mencapai limit-at lebih dulu dari pada child queue yang berpriority (2).

4. Queue Type : Digunakan untuk memilih type queue yang bisa dibuat secara khusus dibagianqueue types
- Limit At : Bandwidth minimal yang diperoleh oleh target/ip yang diqueue
- Max Limit : Bandwidth maksimal yang bisa dicapai oleh target/ip yang diqueue.
- Burst limit : Bandwidth maksimal yang bisa dicapai oleh target/ip yang diqueue ketika burst sedang aktif
- Burst time : Periode waktu dalam detik, dimana  data Rate rata-rata dikalkulasikan.
- Burst Threshold : Digunakan ketika data Rate dibawah nilai burst threshold maka burst diperbolehkan.Ketika data Rate sama dengan nilai burst threshold burst dilarang. Untuk mengoptimalkan burst nilai burst threshold harus diatas nilai Limit At dan dibawah nilai Max Limit.

PCQ (Per Connection Queuing) 

Digunakan untuk mengenali arah arus dan digunakan karena dapat membagai bandwidth secara adil, merata dan masif. PCQ pada mikrotik digunakan bersamaan dengan fitur Queue, baik Simple Queue maupun Queue Tree.

Untuk lebih mudah memahami konsep PCQ, silakan simak analogi berikut ini :
Saya punya 10 PC yang akan saya bagikan bandwidth maksimal 1 Mb dan bandwidth minimal tiap PC 256 kb. Jika hanya satu PC saya yang online maka dia akan dapat BW max 1 Mb, namun jika ada dua PC yang online BW dibagi 2, dan seterusnya hingga 10 dengan pembagian bandwidth yang merata.

Nah, untuk membuat konfigurasi seperti ini, saya harus membuat 1 rule parent Queue dan 10 rule child Queue untuk tiap client. Untuk kondisi sekarang yang hanya 10 PC it's ok, ga masalah. Namun bayangkan jika PC nya ada 100? 200? Gimana kalau yang saya kelola adalah jaringan WiFi Hotspot dengan client yg ga tentu jumlah nya? Apa iya saya harus membuat ratusan rule untuk tiap client? Capek dongg..

Oleh karena itu, saya dapat gunakan fitur PCQ ini untuk melakukan manajemen bandwidth secara massive kepada semua client secara besar-besaran. Dengan menggunakan PCQ ini, walaupun jumlah client tidak tentu dan sangat banyak, kita hanya perlu membuat satu atau dua konfigurasi Queue. Enak kan?



Penjelasan Beberapa Argumen di PCQ :

PCQ Classifier berfungsi mengklasifikasikan arah koneksi, Misalnya jika Classifier yang digunakan adalah src-address pada Local interface, maka aliran pcq akan menjadi koneksi upload. Begitu juga dgn dst-address akan menjadi pcq download.

PCQ rate berfungsi untuk membatasi bandwidth maksimum yang bisa didapatkan. Dengan memasukkan angka pada rate ini (default: 0) maka maksimal download yang akan didapatkan per IP akan dibatasi mis. 128k (kbps).


Limit berfungsi untuk membatasi jumlah koneksi paralel yang diperkenankan bagi tiap IP. artinya bila kita meletakkan nilai 50, maka cuma 50 koneksi simultan yang bisa didapat oleh 1 IP address (baik itu source / destination).

Total Limit adalah total keseluruhan koneksi paralel yang diperkenankan untuk seluruh ip addresss (baik itu source ataupun destination).



Jumat, Februari 5

[Mikrotik] Membedakan koneksi Browsing dengan Download

Contoh Kasus
Sering kita jumpai keadaan dimana ketika ada satu client yang melakukan download, terutama menggunakan IDM, maka client yang lain akan menjadi lambat. Client yang tidak mendapatkan bandiwdth sesuai tentu akan protes. Hal ini akan sangat berpengaruh ketika kita menjalankan bisnis warung internet. Apa kemudian kita memasang pengumuman larangan menggunakan Download Manager ?, saya rasa itu akan menjadi hal yang tidak begitu smart. Apalagi kita tahu bahwa browsing dan download biasanya menggunakan port yang sama, yaitu port 80. Jika kita menggunakan mikrotik, dengan simple qeuue sebenarnya masalah akan beres, namun ketika si pelaku download browsing, maka bandwidth yang di alokasikan untuk dia akan habis digunakan untuk download dan dia akan sedikit kesulitan untuk browsing. Benar begitu ?!.. Kemudian adakah cara yang menarik untuk mengatasi kasus seperti itu?. Dan ternyata mulai dari versi 3.30, mikrotik memiliki fitur Connection Rate
Connection Rate
Connection rate merupakan salah satu fungsi firewall yang memungkinkan untuk menangkap traffick berdasarkan kecepatan suatu koneksi. Setiap entri di table connection tracking, menginformasikan komunikasi dua arah. Dan setiap paket data yang terkait entry tertentu, nilai ukuran paket termasuk ip-header akan ditambahkan sebagai entry “connection-bytes”. Disini Connection Rate menghitung kecepatan koneksi berdasarkan perubahan pada “connection-bytes”. Connection Rate menghitung setiap detik dan tidak memiliki nilai rata-rata. Saat ini “connection-bytes” dan “connection-rate” hanya bekerja pada protokol TCP dan UDP.
Contoh Aplikasi (Prioritas Traffick Download vs Upload)
Dengan fitur connection-rate ini, kita bisa menentukan sebuah koneksi dengan kriteria tertentu untuk kemudian kita anggap sebagai traffick berat yang akan membebani bandwidth dalam contoh kasus ini kita anggap sebagi traffick Download. Kita asumsikan bahwa traffick browsing HTTP normal memiliki panjang koneksi kurang dari 500kB. Kemudian VOIP membutuhkan kecepatan koneksi kurang dari 200kbps. Dengan ini kita menentukan jika traffick memiliki koneksi pertama lebih dari 500kB dan masih membutuhkan speed diatas 200kbps, maka traffick ini akan kita anggap sebagai traffick Download atau traffick berat, terserah Anda ingin menyebutnya apa. P2P, FTP, HTTP Download biasanya akan membuat koneksi yang membutuhkan rate yang cepat dan waktu yang lama. Anda bisa menentukan “connection-bytes” dan “connection-rate” sesuai kebutuhan network Anda, Anda tidak harus membuatnya sama persis dengan rule di artikel ini. Kita akan membuat conoth implementasi di jaringan yang memiliki bandwidth 6mbps.
Quick Start Untuk Yang Sudah Tidak Sabar
/ip firewall mangle
add chain=forward action=mark-connection connection-mark=!traffic_download \
    new-connection-mark=traffic_browsing
add chain=forward action=mark-connection connection-bytes=500000-0 \
    connection-mark=traffic_browsing connection-rate=200k-100M \
    new-connection-mark=traffic_download protocol=tcp
add chain=forward action=mark-connection connection-bytes=500000-0 \
    connection-mark=traffic_browsing connection-rate=200k-100M \
    new-connection-mark=traffic_download protocol=udp
add chain=forward action=mark-packet connection-mark=traffic_download \
    new-packet-mark=mark_packet_traffic_download passthrough=no
add chain=forward action=mark-packet connection-mark=traffic_browsing \
    new-packet-mark=mark_packet_traffic_browsing passthrough=no

/queue tree
add name=upload parent=public max-limit=6M
add name=other_upload parent=upload limit-at=4M max-limit=6M \
    packet-mark=mark_packet_traffic_browsing priority=1
add name=heavy_upload parent=upload limit-at=128K max-limit=512K \
    packet-mark=mark_packet_traffic_download priority=8
add name=download parent=local max-limit=6M
add name=other_download parent=download limit-at=4M max-limit=6M \
    packet-mark=mark_packet_traffic_browsing priority=1
add name=heavy_download parent=download limit-at=128K max-limit=512K \
    packet-mark=mark_packet_traffic_download priority=8
Note : Anda bisa copy-paste rule diatas di menu “New Terminal” jika Anda menggunakan winbox.
Penjelasan
Pertama kita akan membuat mangle untuk membagi koneksi menjadi 2 kategori, Browsing dan Download. Rencananya kita akan memberikan bandwidth yang terbatas bagi user yang melakukan download. Dan kita berikan bandwith maksimum untuk user yang hanya browsing.
Rule Pertama :
/ip firewall mangle
add chain=forward action=mark-connection connection-mark=!traffic_download \
    new-connection-mark=traffic_browsing
Rule ini akan menandai setiap koneksi yang bukan merupakan koneksi download, maka akan dianggap sebagaikoneksi browsing. Contoh pembuatan rule jika Anda menggunakan Winbox, masuk ke Menu IP –> Firewall –> Tab Mangle –> Klik Tombol + (plus) :
Rule Yang Menandai Traffick Download (Protokol UDP maupun TCP):
/ip firewall mangle
add chain=forward action=mark-connection connection-bytes=500000-0 \
    connection-mark=traffic_browsing connection-rate=200k-100M \
    new-connection-mark=traffic_download protocol=tcp
add chain=forward action=mark-connection connection-bytes=500000-0 \
    connection-mark=traffic_browsing connection-rate=200k-100M \
    new-connection-mark=traffic_download protocol=udp
Rule diatas bisa diartikan, ketika ada sebuah koneksi baik TCP maupun UDP yang memiliki nilai connection-bytes lebih dari 500kB dan connection-rate lebih dari 200kbps, maka traffick tersebut akan dianggap traffick download.  Contoh pembuatan rule jika Anda menggunakan Winbox, masuk ke Menu IP –> Firewall –> Tab Mangle –> Klik Tombol + (plus) :




Selanjutnya, Anda tinggal buat rule mark-connection traffick download untuk protokol UDP. Stepnya sama seperti diatas, Anda tinggal ganti pada parameter protokol di tab general menjadi protokol UDP.
Mark Packet
/ip firewall mangle
add chain=forward action=mark-packet connection-mark=traffic_download \
    new-packet-mark=mark_packet_traffic_download passthrough=no
add chain=forward action=mark-packet connection-mark=traffic_browsing \
    new-packet-mark=mark_packet_traffic_browsing passthrough=no
Rule diatas merupakan mark-packet untuk mark-connection yang sudah kita buat sebelumnya. Contoh pembuatan rule jika Anda menggunakan Winbox, masuk ke Menu IP –> Firewall –> Tab Mangle –> Klik Tombol + (plus).
Pertama kita akan membuat rule packet -mark untuk menandai traffick Download.





Proses pembuatan mangle telah selesai. Hasil akhir mangle akan tampak seperti gambar berikut :

Hasil akhir pembuatan mangle.
Queue Tree
Setelah proses pembuatan mangle selesai, sekarang kita tinggal membuat Queue untuk melakukan limitasi berdasarkan paket yang sudah kita tandai. Disini saya menggunakan Queue Tree. Contoh command :
/queue tree
add name=upload parent=public max-limit=6M
add name=other_upload parent=upload limit-at=4M max-limit=6M \
    packet-mark=mark_packet_traffic_browsing priority=1
add name=heavy_upload parent=upload limit-at=128K max-limit=512K \
    packet-mark=mark_packet_traffic_download priority=8
add name=download parent=local max-limit=6M
add name=other_download parent=download limit-at=4M max-limit=6M \
    packet-mark=mark_packet_traffic_browsing priority=1
add name=heavy_download parent=download limit-at=128K max-limit=512K \
    packet-mark=mark_packet_traffic_download priority=8
Rule yang digunakan untuk membatasi bandwith untuk masing – masing tipe koneksi yang sudah kita kategorikan. Contoh setting jika Anda menggunakan winbox, klik gambar untuk mendapatkan resolusi yang lebih besar.
Queue Tree Parent

Queue Tree Download

Queue Tree Upload

Setting telah selesai, saatnya melakukan test. Coba dengan melakukan download menggunakan IDM. Hasil dari percobaan saya bisa Anda lihat di gambar berikut :


Mungkin ada yang bingung kenapa downloadnya dapat 66KBps padahal saya set di Queue max-limit nya 512kbps. Yang perlu Anda perhatikan adalah “B” besar dan “b” kecil. “B” besar merupakan identitas dari Bytes, sedangkan “b” kecil adalah bits. Perbandingan Bytes : Bits adalah 1:8 . Di winbox, parameter yang digunakan adalah Bits. Jika saya isi dengan 512kbps berarti traffick download yang bisa digunakan user adalah 512/8 jadi kurang lebih 64KBps. Sama seperti yang tertera di speed IDM.

sumber : https://candraaditama.wordpress.com/2013/02/12/membedakan-traffick-browsing-download/