Panduan Antrian Sederhana di Mikrotik

Ada banyak artikel di Internet yang ditujukan untuk pembatasan kecepatan dan berbagi lalu lintas pada peralatan MikroTik, tetapi hampir semua menganggap hanya Pohon Antrian, yang membutuhkan pemahaman mendalam dan berlebihan dalam banyak tugas dan dapat digantikan oleh Antrian Sederhana.


Antrian yang disederhanakan - mekanisme untuk membagi kapasitas saluran dan memprioritaskan lalu lintas yang terkait dengan target tertentu. Lalu lintas masuk dan keluar dihitung relatif terhadap target.


Ada tiga opsi untuk sasaran: ip, subnet, antarmuka. Anda dapat menambahkan beberapa target untuk satu aturan.


Bagian teoretis


Pembentuk, Perencana, dan Antrian


Kecepatan data diukur dalam kaitannya dengan informasi yang ditransmisikan dalam bit per detik waktu - bit / detik. Unit bit kecil, sehingga mereka menggunakan awalan kilo (kbit / detik), mega (Mbit / detik), pertunjukan (Gbit / detik).


Kecepatan pengiriman paket melalui jaringan komunikasi selalu sama dengan kecepatan transmisi medium (misalnya, 100Mbit / detik untuk Ethernet 100BASE-TX). Jika perlu untuk mengurangi kecepatan ini, perangkat perantara, seperti router, menerima paket dari satu antarmuka pada kecepatan maksimum mengirimkannya dari yang lain dengan penundaan tertentu, jika paket melebihi batas kecepatan yang ditetapkan, mereka disimpan dalam antrian dan dikirim sesuai dengan Masuk Pertama, Keluar Pertama ( FIFO), jika antrian penuh (ukuran hilang atau nol), router membuang paket.


Limit - batas kecepatan administratif untuk lalu lintas yang datang dari antarmuka.
Shaper (Shaper) - algoritma perangkat lunak yang menunda dan membuang paket berlebih.
Penjadwal (Sheduler) - suatu algoritma yang memutuskan bagaimana menyimpan dan mengirim paket yang melampaui batas.
Antrian - algoritma penyimpanan dan penentuan prioritas untuk lalu lintas yang lewat.


Contoh grafis dari karya pembentuk dan penjadwal.


Menggunakan Shaper Out of Line



Menggunakan Pembentuk dengan Penjadwal



Antrian Sederhana pada Aliran Paket


Antrian Sederhana muncul setelah Antrian Pohon, kadang-kadang antrian sederhana digunakan untuk dengan cepat membatasi lalu lintas ke satu (atau beberapa) pengguna, tanpa mengganggu Pohon Antrian.


Aliran Paket Sederhana untuk mereka yang tertarik


Mekanika antrian: tidak ada, pfifo, pcq


tidak ada - tidak ada antrian, jika batas terlampaui, semua paket baru dibuang.


pfifo adalah algoritma fifo berorientasi paket. Menyimpan jumlah paket yang ditentukan dalam pengaturan. Digunakan secara default di Antrian Sederhana.



pcq (Per Koneksi Antrian) - semua lalu lintas dibagi menjadi sub-antrian tergantung pada serangkaian kondisi. Dari setiap sub-antrian, sebagian dari lalu lintas dikirim secara bergantian. Ruang kosong ditempati oleh lalu lintas yang baru tiba. Jika tempat di sub-antrian habis, maka paket yang ditujukan untuk itu akan dibuang.



Pertimbangkan sebagian kecil pengaturan:
Nilai : batas kecepatan untuk masing-masing sub-antrian.
Batas : Ukuran antrian dalam kilobyte.
Batas total : ukuran total semua sub-antrian dalam kilobyte.
Batas rasio / batas Total dipilih berdasarkan situasi. Secara default, 40 antrian (2000/50), tunduk pada pengisian lalu lintas maksimum.
Burst : tentang dia akan lebih rendah.
Pengklasifikasi : berdasarkan pada apa yang membagi lalu lintas ke dalam antrian.
Pengklasifikasi mengambil bergantian koneksi yang berbeda, jika Anda pergi [IP] -> [Firewall] -> [Koneksi], maka dapat dicatat bahwa sebagian besar koneksi berisi alamat dan port pengirim (alamat src., Port src.) Dan penerima ( alamat dst, port dst).


Kami membahas antrian sederhana, jadi untuk kesederhanaan kami akan mempertimbangkan bahwa kami hanya menyaring lalu lintas yang datang dari antarmuka, dalam hal ini, relatif terhadap target, lalu lintas keluar (unggah) akan diklasifikasikan oleh src. alamat, dan masuk (unduh) oleh dst. alamat


Klasifikasi berdasarkan port akan membantu menghindari situasi menyumbat antrian dengan lalu lintas dari satu aplikasi, jika satu aplikasi menghasilkan banyak koneksi keluar (misalnya, torrent atau web. Browser dengan banyak tab), maka src mereka akan berbeda. pelabuhan dan lalu lintas juga akan dibagi menjadi antrian.


Pembentukan dinamis menggunakan PCQ


Jika Nilai ditetapkan secara ketat, maka setiap sub-aliran akan memiliki kecepatan yang diberikan dan tidak akan dapat melampauinya hingga kecepatan total semua sub-aliran melebihi batas yang lebih tinggi (dalam Antrian Sederhana ini adalah Batas Total), dalam hal ini kecepatan semua sub-aliran akan berkurang secara proporsional.



Jika Nilai diatur ke 0, maka batasan yang lebih tinggi akan dibagi di antara semua sub-aliran. Sebenarnya, ini adalah pembentukan dinamis.



Jika Nilai diatur ke 0 dan Batas Total untuk Antrian Sederhana tidak ditentukan, maka kecepatan antara sub-utas akan dibagi berdasarkan batas yang lebih tinggi, jika antrian tidak disarangkan, ini adalah batasan antarmuka fisik. Jika rencana tarif Anda lebih rendah, maka sebagian dari lalu lintas akan terbunuh pada peralatan penyedia dan tidak akan ada manfaat dari antrian.



Jenis antrian yang tersisa (SFQ, RED) memiliki karakteristik dan aplikasi mereka sendiri dan dapat digunakan untuk Antrian Sederhana juga, tetapi sekarang mereka tidak menarik bagi kami.


Pelabelan Paket


Ya, dalam antrian sederhana Anda dapat menggunakan lalu lintas berlabel. Ini bukan prasyarat (tidak seperti Antrian Pohon), tetapi memungkinkan Anda untuk menjauh dari keterbatasan target.


Pelabelan lalu lintas terjadi di [IP] -> [Firewall] -> [Mangle], secara total ada tiga jenis label: Koneksi, Paket, Rute. Setiap paket dapat berisi satu label dari setiap jenis. Setelah di mangle, paket melewati satu per satu sesuai dengan semua aturan, jika ada dua label set yang meleleh, aturan yang lebih rendah akan menimpa label dari yang atas. Untuk mencegah overwriting, Anda bisa menonaktifkan jalannya paket ke rantai di aturan pertama ( passtrought=no ).


Saat mengatur antrian, Anda hanya dapat menggunakan label paket ( action=mark-packet ). Tetapi untuk meningkatkan kinerja (label koneksi diperiksa lebih cepat daripada memeriksa kondisi di setiap paket), disarankan untuk menandai koneksi ( action=mark-connection ) terlebih dahulu, dan kemudian paket dalam koneksi ini ( action=mark-package ). Aturan dengan koneksi pra-penandaan tidak selalu benar, tetapi jika Anda sampai pada pemahaman ini ketika membangun antrian, maka Anda harus menggunakan Pohon Antrian.


Anda dapat menandai lalu lintas transit di salah satu rantai Packet Flow, tetapi dalam kebanyakan kasus saya lebih suka menggunakan forward, karena Pada tahap ini, alamat penerima dengan pengirim dan nama-nama antarmuka masuk dan keluar dikenal.


Contoh Pelabelan Lalu Lintas


 /ip firewall mangle add action=mark-connection chain=forward connection-state=new dst-port=5060,10000-20000 new-connection-mark=output-sip-and-rtp passthrough=yes protocol=udp src-address=192.168.100.0/24 add action=mark-packet chain=forward connection-mark=output-sip-and-rtp new-packet-mark=output-packet-sip-and-rtp passthrough=no 

Apa yang meledak


Biasanya, batas kecepatan dipahami sebagai nilai statis tertentu dari batas per detik setelah mencapai paket mana yang dibuang atau diantrekan. Burst beroperasi dengan nilai rata-rata per satuan waktu, ini memungkinkan untuk menggunakan kecepatan (puncak) yang lebih tinggi dalam waktu singkat dan membatasi kecepatan dengan beban konstan pada saluran.


Batas Maks adalah batasan utama.
Burst Limit - kecepatan puncak, mengambil prioritas di atas Batas Maks saat mengamati kecepatan rata-rata yang ditentukan.
Burst Threshold - kecepatan batas.
Burst Time - waktu.


Target mendapatkan kecepatan dari Burst Limit, tetapi setiap detik kecepatan rata-rata untuk waktu Burst akan dihitung. Jika kecepatan rata-rata untuk waktu tertentu melebihi Burst Threshold, maka pengguna akan dibatasi hingga Batas Maks, jika kecepatan rata-rata kembali ke normal, maka target akan kembali menerima Batas Burst.


Studi Kasus Burst

Aturan Burst:



Diagram alir menunjukkan perubahan kecepatan target:



Dan seperti apa perubahan kecepatan target terlihat:



Jika Anda tertarik dengan tema Burst, saya sarankan membaca informasi di wiki , ada grafik dan tabel berdasarkan yang mana akan menjadi lebih baik untuk memahami bagaimana Nilai Ambang dan Waktu mempengaruhi batas kecepatan.


Batas Perbedaan pada dan Batas Maks



Batasi pada - kecepatan dijamin untuk aturan. Sangat diinginkan bahwa jumlah semua Batas di tidak melebihi bandwidth saluran. Selalu kurang dari maksimal.
Batas Maks - kecepatan maksimum untuk aturan. Jika "anggaran" antrian memungkinkan, maka bandwidth maksimum akan dialokasikan.


Biasanya hanya Batas Maksimum yang ditunjukkan dalam antrian yang disederhanakan dan ini berfungsi dengan baik, tetapi dalam konfigurasi antrian bertingkat, kedua batas harus ditentukan.


Bagian praktis


Antrian sederhana dikonfigurasikan dalam [Antrian] -> [Antrian Sederhana].
Aturan diproses secara bergantian dari atas ke bawah, aturan pertama yang cocok diterapkan pada paket yang lewat. Bahkan, pengecualian dapat dibuat dari aturan apa pun dengan menempatkan aturan yang lebih spesifik di atas.


Batas Kecepatan Host / Subnet / Antarmuka


Biasanya digunakan ketika perlu untuk membunuh kecepatan pengguna tertentu.
Nama: nama apa saja
Target: alamat, subnet, atau antarmuka.
Unggahan Target: batas kecepatan keluar.
Targer Download: batas kecepatan masuk.


Batas kecepatan hingga 1Mbit / detik:



 /queue simple add max-limit=1M/1M name=Limit-For-100.200 queue=default/default target=192.168.100.200/32 

Dalam Statistik, Anda dapat melihat kecepatan saat ini untuk target, jumlah paket dalam antrian, dan jumlah paket yang dijatuhkan.


Batas kecepatan untuk sumber daya jarak jauh


Opsi tanpa label paket.


Di bidang dst, mirip dengan target dapat ditentukan: ip, subnet, antarmuka. Dalam kondisi Internet modern ini tidak cukup, tetapi dapat bermanfaat bagi perusahaan kecil dan batas kecepatan antar kantor.



 /queue simple add dst=192.168.200.10/32 max-limit=10M/10M name=Limit-For-Fileserver target=192.168.100.0/24 

Pembagian saluran yang sama antara peserta subnet (pcq)


Satu aturan yang akan menyelamatkan subnet rumah atau kantor Anda dari tangkapan saluran eksklusif (dalam contoh 50Mb / detik, sesuaikan dengan saluran Anda) oleh satu pengguna.



Antrian pcq yang ditentukan hadir dalam konfigurasi dasar, tetapi saya lampirkan tangkapan layar jika terjadi perubahan.



 # /queue type add kind=pcq name=pcq-upload-default pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-classifier=src-address pcq-dst-address-mask=32 pcq-dst-address6-mask=128 pcq-limit=50KiB pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=128 pcq-total-limit=2000KiB add kind=pcq name=pcq-download-default pcq-burst-rate=0 pcq-burst-threshold=0 pcq-burst-time=10s pcq-classifier=dst-address pcq-dst-address-mask=32 pcq-dst-address6-mask=128 pcq-limit=50KiB pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=128 pcq-total-limit=2000KiB # Simple queues /queue simple add max-limit=50M/50M name=Limit-Equivalent queue=pcq-upload-default/pcq-download-default target=192.168.100.0/24 

Pada tab Statistik, Anda dapat melihat berapa banyak utas pcq saat ini dalam antrian.



Lalu lintas yang ditandai


Opsi pertama sangat terbatas dan jika Anda ingin menggunakan nama domain atau daftar alamat, Anda harus menggunakan penandaan lalu lintas. Sebagai contoh, kami akan menghapus batasan untuk domain yandex.ru (ya, banyak cdn'ok terhubung di sana dan hal-hal lain, dan untuk operasi normal, Anda perlu menambahkannya).


Dalam versi terbaru, menjadi mungkin untuk menambahkan nama domain ke daftar alamat, mikrotik akan secara otomatis menyelesaikannya dan menambahkan entri dinamis.



Menandai lalu lintas http / https (koneksi dan paket dalam koneksi) untuk alamat yang ditentukan:





Aturan dalam Antrian Sederhana:



 #   /ip firewall address-list add address=yandex.ru list=ForQueues add address=yastatic.net list=ForQueues #    /ip firewall mangle add action=mark-connection chain=forward connection-state=new dst-address-list=ForQueues dst-port=80,443 new-connection-mark=Mark-ForQueues passthrough=yes protocol=tcp src-address=192.168.100.0/24 add action=mark-packet chain=forward connection-mark=Mark-ForQueues new-packet-mark=Mark-Packet-ForQueues passthrough=no #  Simple Queue /queue simple add max-limit=1M/1M name=Limit-For-Yandex packet-marks=Mark-Packet-ForQueues target=192.168.100.0/24 

Antrian Cascading


Semua yang dikatakan di atas mengacu pada membatasi dan membagi kecepatan antara peserta jaringan, saatnya menyentuh topik tentang prioritas lalu lintas. Biasanya diperlukan untuk lalu lintas interaktif (voip, vcs, ssh, rdp, ...) di saluran terbatas dan sibuk.


Untuk antrian cascading, parameter Parent bertanggung jawab, yang mengacu pada antrian "induk". Agar berfungsi, semua lalu lintas dari antrian "anak" harus ditangkap oleh orang tua.


Parameter Prioritas bertanggung jawab atas lalu lintas apa yang akan ditambahkan ke antrian sebelumnya, hanya berfungsi dalam antrian anak (atau dalam "induk" jika mereka tidak memiliki "anak"), dapat mengambil nilai dari 1 (prioritas tertinggi) ke 8 dan tidak memiliki apa-apa umum dengan tag QoS (DSCP; TOS).


Pra-penandaan lalu lintas:



 /ip firewall mangle add action=mark-connection chain=forward connection-state=related,new dst-port=5060,10000-20000 in-interface=br-lan new-connection-mark=mark-conn-voip passthrough=yes protocol=udp add action=mark-packet chain=forward connection-mark=mark-conn-voip new-packet-mark=mark-pkg-voip passthrough=no add action=mark-connection chain=forward connection-state=new dst-port=80,443 in-interface=br-lan new-connection-mark=mark-conn-web passthrough=yes protocol=tcp 

Antrian di SimpleQueue:







 /queue simple add limit-at=24M/24M max-limit=25M/25M name=main target=10.10.10.0/24 add limit-at=5M/5M max-limit=8M/8M name=voip packet-marks=mark-pkg-voip parent=main priority=1/1 queue=pcq-upload-default/pcq-download-default target="" add limit-at=10M/10M max-limit=20M/20M name=web packet-marks=mark-pkg-web parent=main priority=2/2 queue=pcq-upload-default/pcq-download-default target="" add limit-at=10M/10M max-limit=20M/20M name=other packet-marks=mark-pkg-other parent=main priority=3/3 queue=pcq-upload-default/pcq-download-default target="" 

Sekarang, jika Anda perlu membuat batasan untuk satu IP, cukup taruh aturan di depan riam antrian.


Kata penutup


Antrian Sederhana adalah alat yang agak menarik dan fungsional untuk konfigurasi rumah dan SOHO, dengan satu aturan (tanpa menggunakan label lalu lintas) Anda dapat memecahkan masalah penangkapan saluran oleh satu perangkat. Tapi, jika Anda menggunakan FastTrack, lupakan antrian - lalu lintas akan melewati mereka.


Untuk konfigurasi yang lebih kompleks, ada pohon Antrian (HTB tree).

Source: https://habr.com/ru/post/id420117/


All Articles