UNIXAWESOME

QoS в роутерах Mikrotik. Настройка маркировки и приоритизации трафика.

Oct. 2, 2020

Общая информация о QoS

Quality of Service - это общая производительность сети, особенно производительность которую видят пользователи.

Что такое и для чего нужно.
Например у нас есть доступ в интернет со скоростью 10 Mbit/s, и также у нас есть 3 компьютера в нашей сети которые подключены к нашему маршрутизатору.

Получается что общая производительность нашей локальной сети 300 Mbit, но при этом выход ‘наружу’ в интернет у нас всего лишь 10 Mbit. Вот в этом и заключается основная проблема. Проблема бутылочного горлышка.

Проблема в том что есть некоторые типы трафика которые к подобному бутылочному горлышку относятся негативно. Это чаще всего какой-то трафик реального времени, то есть realtime трафик(sip, rdp, видео конференц-связь).

Стандартная ситуация которую можно наблюдать это когда один из трех компьютеров качает например через торрент что-то и в этот момент остальные два пользователя нашей локальной сети страдают. Лагает Skype, тормоза rdp соединений, долго грузятся сайты…

QoS поможет тем или иным способом решить вопрос с тем чтобы неприоритетный трафик(torrent или другой паразитный тип трафика) не занимал всю полосу пропускания, а давал выход в первую очередь полезному для нас трафику(без потери пакетов).


Настройки QoS имеют два ограничения скорости:

  • CIR (Committed Information Rate) - (limit-AT в RouterOS) в худшем случае, поток будет получать этот объем трафика.
  • MIR (Maximal Information Rate) - (Max limit в RouterOS) - наилучший сценарий, скорость, с которой поток может справится, если у родителя очереди есть запасная полоса пропускания.

Также есть возможность указать приоритет. Работает только для дочерних очередей. 8 - самый низкий приоритет, 1 - самый высокий.

В MikroTik есть несколько подходов к реализации QoS

  • Simple Queues(простая очередь)
  • Queue Tree(дерево очередей)
  • Ограничение скорости на интерфейс

Simple Queues

Указываем границы скоростей
Для начала мы должны указать на роутере границы наших скоростей. Например от провайдера у нас приходит 10Мбит на приём и отдачу, эти границы и нужно задать роутеру.

Переходим к настройке очередей.

Создаем ‘родителя’.

Здесь указываем Name, в поле Target я выбрал свою подсеть, для которой будут действовать ограничения и приоритеты. Можно прописать вручную, например 192.168.0.0/24. В Dst указал свой WAN интерфейс. То есть правила будут работать для указанной нами подсети трафик которой будет идти через WAN порт. И также пропишем нашу скорость, которую мы получаем от провайдера. Для примера будет 10 Мбит.

Добавляем наши устройства.

Указываем Name, в поле Target - ip адрес устройства. Max Limit указываем 10 Мбит.

Переходим во вкладку Advanced

Здесь Limit At - это минимально гарантированная скорость, которую устройство получит в любом случае.

И обязательно в Parent выбрать нашего родителя.

Если одно из сетевых устройств не использует в какой-то определённый момент свой Limit At, то его скорость будет распределятся между другими устройствами согласно Max Limit и установленных приоритетов.

Таким образом прописываем наши самые важные сетевые устройства. Потом добавляем ограничения для всех остальных, которые не в нашем списке.

Только в поле Target указываем нашу подсеть, а не конкретный ip адрес.

Сумма всех Limit At на всех наших устройствах должна быть меньше или равна скорости получаемой от провайдера.

Также при необходимости во вкладке Advanced можно выбрать приоритет.

В итоге у меня получился вот такой список, где скорость регулируется для двух устройств и всех остальных, которые не в списке.

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

Для примера я промаркирую весь VPN трафик, дам ему гарантированную скорость и укажу высокий приоритет.

По-правильному нужно сначала маркировать соединения, а уже потом все пакеты в нём.

Заходим в IP > Firewall > вкладка Mangle

Создаём новое правило.
Chain выбираем prerouting.
Protocol - udp.
Dst. Port - 1194

Дальше во вкладке Action
Action - mark connection
New Connection Mark - vpn

Жмём OK.

Теперь маркируем трафик.
Добавляем новое правило.
Chain - forward
Connection Mark - vpn

Во вкладке Advanced
Action - mark packet
New Packet Mark - vpn

Жмём OK.

Добавляем комментарий

Теперь возвращаемся к списку очередей и добавляем для vpn трафика.

Создаем новую очередь.

  • Name - vpn
  • Target - 192.168.10.0/24 (я указал подсеть, а можно например конкретный ip адрес на котором будем vpn трафик)
  • Max Limit - 10M

Заходим в Advanced

  • Packet Marks - vpn
  • Limit At - 1M (гарантированная скорость)
  • Priority - 1 (самый высокий приоритет)
  • Parent - Parent

По аналогии таким образом можно промаркировать и ограничить практически любой трафик(SSH, web и прочее)

И последним шагом будет передвинуть нашу очередь для vpn в самый верх списка.

Готово.