В пятой части из цикла статей по очередям на 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 (Приоритет) | ||
Download | 80 Мбит/с | |||
sip | 79 Мбит/с | 5 Мбит/с | 1 | |
rdp | 79 Мбит/с | 5 Мбит/с | 2 | |
web | 79 Мбит/с | 30 Мбит/с | 3 | |
all the rest (все остальное) | 79 Мбит/с | 5 Мбит/с | 8 | |
Upload | 80 Мбит/с | |||
sip | 79 Мбит/с | 5 Мбит/с | 1 | |
rdp | 79 Мбит/с | 5 Мбит/с | 2 | |
web | 79 Мбит/с | 30 Мбит/с | 3 | |
all the rest (все остальное) | 79 Мбит/с | 5 Мбит/с | 8 |
Всего мы гарантировано выделили 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.
Другие статьи из этого цикла доступны по ссылкам:
В MikroTik приоритетов намного больше, чем 2 высокий и низкий. Хотелось бы посмотреть и работу с другими приоритетами.
Я бе рекомендовал маркировать траффик не по типу привязок, а по приоритету. 1-8 и т.д.
Так получается нагляднее
Слишком много всего, хотя не спорю — работает!
А теперь представьте, в примере одна подсеть а у меня 6! Обожаю микротик за его гибкость и возможность прийти к одному и тому-же результату разными способами.