MikroTik. Пример создания простых очередей

В четвёртой части из цикла статей по очередям на MikroTik я на практике покажу пример создания простых очередей.















Пример простых очередей




Для того чтобы работали простые очереди или деревья очередей нужно чтобы ваши лимиты были меньше чем лимиты выданные вам провайдером. Например, провайдер выдаёт мне 100 Мбит/с. Я с помощью сервиса speedtest несколько раз замерил скорость своего интернет соединения. И она оказалась от 85 Мбит/с до 95 Мбит/с. Чтобы точно не упереться в ограничение провайдера я себя буду ограничивать до 80 Мбит/с.




Для начала решим на какие типы трафика мы будем делить весь наш трафик. У себя я выделю следующее:




  • SIP трафик. IP-телефония потребляет очень мало трафика, но она чувствителен к потерям пакетов. Для выделения этого трафика я буду использовать порты 5060 и 10000-10200. Так как я сам обслуживаю сервер ip-телефонии, то я знаю какие порты у меня используются. А если у вас нет этой информации, то вы легко можете узнать её у вашего провайдера ip-телефонии. Техподдержка провайдера телефонии должна легко ответить на этот вопрос.
  • RDP трафик. По работе мне приходится подключаться к Windows серверам по протоколу RDP, поэтому выделю этот трафик тоже. По умолчанию RDP использует порт 3389, но этот порт часто меняется, поэтому вы должны использовать тот порт, который у вас используется для подключения.
  • WEB трафик. Здесь используются порты 80 и 443, а также можно указать порт 8080, который в своей работе использует сервис speedtest.
  • Весь остальной трафик. Все остальное также следует учесть, иначе оно обойдет наши приоритеты и забьёт наш канал. Сюда, например, будет попадать torrent.




Теперь нужно составить такую табличку:




Максимальный лимитГарантированная скоростьПриоритет
sip80 Мбит/с10 Мбит/с1
rdp80 Мбит/с10 Мбит/с2
web80 Мбит/с30 Мбит/с3
all-ather 80 Мбит/с10 Мбит/с8
Таблица QOS




Всего мы гарантировано выделили 60 Мбит/с, а остальные 20 Мбит/с будут распределятся в зависимости надобности и по приоритетам. Вот например, понадобилось WEB еще 15 Мбит/с, он их получил и осталось свободных 5 Мбит/с. Затем, понадобилось RDP 10 Мбит/с, а осталось только 5 Мбит/с. Но у RDP приоритет выше чем у WEB, поэтому он 5 Мбит/с заберет от WEB и 5 Мбит/с из свободных. Надеюсь это понятно.




Создание родительской очереди




Simple Queue позволяет создавать деревья очередей, что я и буду делать. Итак, нажимаем на пункт меню «Queues» и переходим на вкладку «Simple Queues«. Затем нажимаем на знак «+» чтобы создать новое правило.







При создания нового правила на вкладке «General» укажем следующие настройки:







  • Во-первых очередь называем Parent, для этого правим параметр Name.
  • С помощью параметров Target и Dst мы задаём направление трафика. В Target нужно указать интерфейс или подсеть для источника трафика, я указал бридж для локальной сети. В Dst нужно указать интерфейс или подсеть, куда трафик направляется, здесь я указал интерфейс интернета. При таких настройках уходящий трафик в интернет это Upload, а скачиваемый трафик из интернета в локальную сеть это Download.
  • В параметр Max Limit для Upload и для Download я указал 80 Мбит/с. Так мы создали локальное ограничение, чтобы не попасть в ограничение провайдера.




Затем переходим на вкладку «Advanced«:







  • Поменяем тип очереди (Queue Type) на pcq-upload-default и pcq-download-default, для того чтобы трафик в очереди честно делился между всеми клиентами (компьютерами подключенными к маршрутизатору).
  • В параметре Parent оставляем none, так как эта очередь будет родительской для остальных.




Маркировка web, rdp и sip трафика




Здесь я буду использовать маркировку пакетов, чтобы выделить web трафик. Как вам известно web использует порты 80 и 443. А сервис speedtest использует порт 8080. Эти порты в итоге мы и будем использовать при маркировке трафика.




Для маркировки пакетов нужно перейти по меню «IP / Firewall» и в открывшемся окне «Firewall» открыть вкладку «Mangle«.







Лучше маркировать вначале коннект, а уже в рамках этого коннекта можно промаркировать пакеты. Это снизит нагрузку на процессор маршрутизатора.




Добавляем первое правило для маркировки web коннектов. На вкладке «General» укажите следующие настройки:







  • В параметре «Chain» выберите Forward (так как мы маркируем проходящий трафик).
  • В «Src.Address» я указываю свою локальную подсеть.
  • Выбираю протокол TCP и Dst.Port — 80, 443, 8080. То-есть все что идет из локальной сети на указанные порты я маркирую.




Чтобы указать как маркировать такой трафик переходим на вкладку «Action«:







  • В качестве действия (Action) выберите mark connection.
  • Придумайте имя марки — я назвал web.
  • Поставьте галочку «Passthrough«, чтобы маркированный трафик мог спуститься на нижние правила.




Теперь создадим второе правило, которое маркирует пакеты для web соединений:







  • Для параметра «Chain» выберите Forward.
  • В параметре «Connection Mark» выберите созданную ранее марку web.




Затем перейдите на вкладку «Action«:







  • В качестве действия (Action) выберите «mark packet«.
  • Придумайте имя марки — у меня web.
  • Снимите галочку «Passthrough«, чтобы помеченные пакеты не пере-маркировались более нижними правилами.




Попробуйте по аналогии промаркировать sip и rdp трафик. Для подсказки можете смотреть на этот скриншот:







Мы всегда используем Chain=Forward. Маркируя коннект в качестве источника указываем свою локальную подсеть и удаленные TCP или UDP порты (Dst. Port). А маркируя пакеты мы тоже используем Chain=Forward и марку коннекта. Также при маркировке коннектов нужно ставить галочку «Passthrough«, а при маркировке пакетов эту галочку нужно снимать.




Создание очереди для web, rdp и sip трафика




После того как мы промаркировали пакеты относящиеся к web трафику, пришло время создать новую очередь. В меню нажимаем «Queues» и в окне «Queue List» переходим на вкладку «Simple Queues«. Там уже есть одно правило для всего трафика. Создадим новое нажав на «+«.




На вкладке «General» укажем следующие настройки:







  • Имя для очереди (Name) я придумал — web.
  • С помощью параметров «Target» и «Dst» указал направление трафика — от локальной сети в интернет.
  • Максимальный лимит (Max Limit) сделал чуть меньше чем общее ограничение — 79МБит/с.




Затем переходим на вкладку Advanced:







  • В параметре «Packet Marks» выбираем нужную марку пакетов — web.
  • Указываем гарантированную скорость (Limit At) для web-трафика — 30 Мбит/с.
  • Дальше укажем приоритет (Priority) для этого трафика — 3.
  • Изменим тип очереди (Queue Type): pcq-upload-default и pcq-download-default.
  • В качестве родителя (Parent) укажем Parrent.




Получилось следующее: веб трафик гарантировано получит 30МБит/с, и может получить 79МБит/с если ему позволит приоритет и другие типы трафика.




По подобию попробуйте самостоятельно сделать еще две очереди для sip и rdp трафика. Вам всего лишь нужно выбрать правильные марки пакетов.




  • Для sip укажите Приоритет = 1, гарантированную скорость (Limit At) = 10 Мбит/с и максимальную скорость (Max Limit) = 79 Мбит/с.
  • Для rdp укажите Приоритет = 2, гарантированную скорость (Limit At) = 10 Мбит/с и максимальную скорость (Max Limit) = 79 Мбит/с.




Вот что у вас должно получиться после проделанного:







Создание очереди для всего остального




Весь остальной трафик нужно тоже поместить в очередь. Для такой очереди можно указать наименьший приоритет = 8. Для этого не обязательно маркировать пакеты, просто делаете такую очередь:










То-есть указываете направление трафика (Target и Dst), максимальную скорость (Max Limit), некоторую гарантированную скорость (Limit At) и минимальный приоритет = 8. Измените тип очередей (Queue Type) на pcq-upload-default и pcq-download-default. Ну и не забудьте указать родительскую очередь (Parrent).




Итог




В итоге имеем следующую картину:







Расставьте очереди в правильном порядке, вначале Parrent, затем в любом порядке sip, rdp, web и в самом конце разместите all. После чего нажмите на «#» над очередями и у вас получится дерево.




Общее ограничение 80 Мбит/с. Каждая очередь может разогнаться до 79 Мбит/с. При этом мы гарантируем:




  • 30 Мбит/с для web-трафика;
  • 10 Мбит/с для:
    • sip-трафика;
    • для rdp-трафика;
    • для всего остального.




Остальные 19 Мбит/с может получить любая очередь по необходимости и в зависимости от приоритета. То-есть более приоритетная очередь скорее отхватит кусок от этих 19 Мбит/с, конечно если ей это понадобится.




Не обязательно делать всё как у меня. Можете, например, для sip гарантировано выделить всего 2 Мбит/с, для всего остального выделить 1 Мбит/с. Тогда для распределения у вас останется намного больше пропускной способность (57 Мбит/с). Можете по другому расставлять приоритеты. Также можете создавать и другие очереди.








Другие статьи из этого цикла доступны по ссылкам:






2021-12-10T14:14:34
MikroTik