MikroTik. Пример создания дерева очередей

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

Пример дерева очередей

В прошлой статье я уже рассказывал, чтобы работали приоритеты в ваших очередях вы должны не попадать в ограничение провайдера. Поэтому вы должны ограничить свой канал сильнее чем это делает провайдер. Я получаю от провайдера 85 — 95 Мбит/с, поэтому ограничиваю себя на 80 Мбит/с.

Итак, как и в предыдущей статье, из всего трафика я выделю следующие типы:

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

Особенности Queue Tree

В Queue Tree в отличии от Simple Queues нельзя задать направление трафика, и для помещения трафика в очередь можно использовать только маркировку. Поэтому для разных направлений (Download и Upload) нужно создать разные ветви очередей, притом указывать направление нужно при маркировке трафика.

Теперь составим QOS таблицу:

Max Limit
(Максимальный
лимит)
Limit At
(Гарантированная
скорость)
Priority
(Приоритет)
Download80 Мбит/с
sip79 Мбит/с5 Мбит/с1
rdp79 Мбит/с5 Мбит/с2
web79 Мбит/с30 Мбит/с3
all the rest
(все остальное)
79 Мбит/с5 Мбит/с8
Upload80 Мбит/с
sip79 Мбит/с5 Мбит/с1
rdp79 Мбит/с5 Мбит/с2
web79 Мбит/с30 Мбит/с3
all the rest
(все остальное)
79 Мбит/с5 Мбит/с8
Таблица QOS

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

Маркировка трафика

Если вы по предыдущей статье создавали у себя простые очереди (Simple Queues) не забудьте их все отключить. А также отключите все правила маркировки относящиеся к ним.

Деревья очередей создаваемые на вкладке «Queue Tree» для помещения трафика в очереди используют только марки пакетов. Поэтому вначале займёмся маркировкой.

Маркируем весь Upload

На самом деле это будет весь остальной Upload, но маркировать его нужно самым первым. А при маркировки пакетов мы просто поставим галочку «Passthroough«, чтобы трафик мог быть пере-маркирован правилами ниже. Тогда всё что не пере-маркируется и будет всем остальным Upload.

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

Итак, создаём новое правило маркировки соединения:

В цепочке (Chain) Forward, всё что идет из моей локальной сети, я маркирую соединение (mark connection) меткой «c-all-rest-upload«. Не забываем поставить галочку «Passthrough«.

Затем создаём правило для маркировки пакетов:

Также в цепочке «Forward» всё что помечено маркой соединения (Connection Mark) «c-all-rest-upload«, я маркирую пакеты (mark packet) меткой «all-rest-upload«. Оставляем галку «Passthrough«, так как этот трафик может пере-маркироваться правилами ниже, например это будет sip, rdp или web трафик.

Маркируем весь Download

Всё делается по аналогии, только направление трафика меняется.

Вот так маркируем соединение:

А так маркируем пакеты:

Маркируем исходящий web-трафик

В таком случае уже нужно указывать протокол (Protocol) и порты назначения (Dst Port). Web использует TCP порты 80 и 443, а сервис SpeedTest порт 8080. Также маркируя соединения всегда ставьте галочку «Passthrough«. Кстати, направление трафика я указываю с помощью Src. Address = моя локальная сеть, и Out. Interface = мой интерфейс интернета. То-есть всё что идет из локальной сети в интернет это Upload, а в обратную сторону — Download.

Затем маркируем пакеты в рамках соединения «c-web-upload«. Здесь уже можно снять галочку «Passthrough«, так как web трафик не может вдруг стать sip или rdp трафиком и не должен пере-маркироваться правилами ниже:

Маркируем входящий web-трафик

Здесь просто меняем направление трафика. Интернет — теперь это входящий интерфейс (In Interface), локальная сеть — это сеть назначения (Dst Address), а также порты теперь у нас исходящие (Src Ports):

И в рамках промаркированных соединений «c-web-download» метим пакеты меткой «web-download«:

Самостоятельная работа

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

Напомню что rdp использует TCP порт 3389, а sip 5060 и группу портов для голосового трафика. Все эти порты могут быть изменены, поэтому нужно указывать те порты, которые используются лично у вас.

Создание дерева очередей

Итак, для создания дерева очередей, открываем «Queues» и переходим на вкладку «Queue Tree«:

Создание первых ветвей дерева очередей — Download и Upload

Создаём две очереди без помещения туда трафика, т.е. без указания марки пакетов. Это будут просто родительские очереди для всех остальных очередей.

Создадим первую очередь с именем Download. В качестве родителя укажем global — это общий трафик на маршрутизаторе. Изменим тип очереди на pcq-download-default и укажем Max Limit = 80 Мбит/с.

Создадим вторую очередь с именем Upload. В качестве родителя также укажем global, изменим тип очереди на pcq-upload-default и укажем Max Limit = 80 Мбит/с.

Создание очередей для sip-трафика

Во-первых создаю очередь для входящего sip трафика. Назову эту очередь 1-sip-download (1 — это приоритет, я так называю очереди, чтобы было удобнее на них потом смотреть). В качестве родителя (Parent) укажу Download. А помещать в эту очередь буду трафик с меткой пакетов sip-download. Изменю тип очереди на «pcq-download-default«. Выставлю следующие настройки: Priority = 1, Limit At = 2 Мбит/с и Max Limit = 79 Мбит/с.

Аналогично создам очередь для исходящего sip трафика:

Самостоятельная работа

По аналогии создайте все остальные очереди: rpd входящий и исходящий трафик, web входящий и исходящий трафик, и всё остальное (all rest) входящий и исходящий трафик.

В качестве подсказки оставлю здесь этот скриншот:

Надеюсь вы с этим заданием справитесь!

Итог

Вот и закончился цикл статей по очередям на маршрутизаторах MikroTik. Если вдруг у вас остались вопросы, то задавайте их в комментариях. Возможно, я что-то не совсем правильно делаю, и вы знаете как сделать это оптимальнее, тогда тоже оставляйте комментарии. Я бы хотел получить обратную связь для улучшения этого цикла статей.

Оставлять комментарии можете здесь на сайте, или в группе VK.


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

3 комментария к “MikroTik. Пример создания дерева очередей”

  1. В MikroTik приоритетов намного больше, чем 2 высокий и низкий. Хотелось бы посмотреть и работу с другими приоритетами.

    Ответить
  2. Я бе рекомендовал маркировать траффик не по типу привязок, а по приоритету. 1-8 и т.д.
    Так получается нагляднее

    Ответить
  3. Слишком много всего, хотя не спорю — работает!
    А теперь представьте, в примере одна подсеть а у меня 6! Обожаю микротик за его гибкость и возможность прийти к одному и тому-же результату разными способами.

    Ответить

Оставьте комментарий