Приоритизация трафика что это

Quality of Service: приоритизация трафика

Для обеспечения улучшенного качества передачи данных, имеющих повышенное значение, в сетях применяется специальный механизм Quality of Service (QoS). Поэтому любой специалист, занимающийся сетями, должен знать, что это — QoS, и как работает эта технология.

О технологии

Технология QoS используется для предотвращения потери и увеличения скорости обработки важных данных при отправке по сети. Ее суть заключается в приоритизации трафика. Умное распределение QoS — это предоставление деление трафика на классы с предоставлением им разных приоритетов в обслуживании. При этом трафик, которому присвоен более высокий класс, обрабатывается сетевым оборудованием в первую очередь. Поэтому он проходит по сети с минимальными задержками.

Что такое качество обслуживания?

При передаче данных по сетям качество обслуживания оценивается по следующим ключевым параметрам:

Поддержка QoS — это возможность сетевого оборудования контролировать все эти параметры. Этот механизм, который выделяет для информации заданную полосу пропускания, снижает уровень джиттера и задержки, защищает важные пакеты от потери.

Использовать технологию QoS можно при условии, что она поддерживается всеми сетевыми устройствами между получателем и отправителем.

Зачем использовать приоритизацию трафика?

Приоритизация трафика что это

По сетям проходит трафик разных видов. В том числе передаются данные электронной почты, веб-приложений, мессенджеров, голосовых сообщений, видео, телеметрии и других типов. Для каждого из вида трафика существуют определенные требования по качеству передачи. Так, для видео или голосового трафика характерна особая чувствительность к задержкам. Телеметрический трафик намного более устойчив к задержкам, но он должен гарантированно доставляться. Для выполнения всех требований каждому виду трафика присваивается определенный приоритет, в соответствии с которым определяется очередность его обработки сетевым оборудованием.

Приоритизация трафика дает следующие плюсы:

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

Механизм работы QoS

Чтобы понять, что такое QoS в сетях, необходимо разобрать механизм его работы. Для реализации технологии применяется маркировка трафика, благодаря которой каждый передаваемый пакет имеет поле с указанной отметкой о его приоритете.

В сетевых коммутаторах применяются два стандартных способа маркировки:

Особенности маркировки IEEE 802.1p — Class of Service

Стандарт IEEE 802.1Q предусматривает тегирование трафика, что необходимо для передачи данных о принадлежности к VLAN. В кадр Ethernet включается тег 802.1Q размерностью 4 байта. Он содержит информацию о VLAN, а также сведения об установленном уровне приоритета трафика. Таким образом, IEEE 802.1p можно назвать частью IEEE 802.1Q.

В стандарте IEEE 802.1p предусматривается 8 классов приоритета трафика, которые приведены в таблице:

Качество передачи не гарантировано, но поддерживается на лучшем уровне из возможного

Приоритетный трафик. Не критичные к задержке, но критичные к потерям данные. Менее приоритетные, чем контролируемый трафик

Excellent Effort (business critical)

Контролируемый трафик. Критичный к потерям, но не критичный к задержке. Мультимедийные потоки

Controlled Load (streaming multimedia)

Видеопотоки. Критичной является задержка свыше 100 мс

Голосовой трафик. Критичной является задержка свыше 10 мс

Данные управления сетью

Network Control Reserved traffic

Несмотря на достаточно частое использование в локальных сетях, приоритизация по стандарту IEEE 802.1p имеет ряд существенных ограничений:

Особенности маркировки Differentiated Services (DiffServ) — Type of Service

QoS Type of Service — это маркировка, которая применяется в коммутаторах 3 уровня и маршрутизаторах. Она предусматривает включение специального байта ToS (Type of Service) в заголовок IP. В этом байте прописаны сведения о приоритете трафика.

Преимущества DiffServ перед IEEE 802.1p:

Очереди трафика

В коммутаторах поступающие на порт пакеты помещаются в несколько очередей трафика для ожидания их обработки устройством. Наиболее важный трафик помещается в первую очередь, менее важный — в последующие очереди по убыванию степени важности. Чем большее количество очередей поддерживает коммутатор, тем точнее он балансирует передачу данных.

Порядок работы коммутатора:

Существую разные механизмы очередей. Управляемыми коммутаторами применяется два типа таких механизмов: Weighted Fair Queuing (WFQ) и Strict Priority Queuing (SPQ).

При использовании механизма WFQ (взвешенная справедливая очередь) выполняется циклическое обслуживание очередей. Объем трафика, передаваемого за цикл, определяется в зависимости от приоритета очереди. Из высокоприоритетных очередей в единицу времени на выходной порт выдается больше пакетов, чем из очередей с меньшим приоритетом. Плюс этого механизма заключается в выделении определенного минимума пропускной способности всем классам трафика при полной загруженности полосы пропускания. Это исключает потерю менее приоритетного трафика при перегрузках.

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

В неуправляемых коммутаторах применяется механизм Weighted Round Robin (WRR), или взвешенный циклический алгоритм. Он предусматривает последовательное и циклическое обслуживание очередей. Каждой из очередей, в соответствии с ее приоритетом, задается определенное время обработки. Плюсом алгоритм можно назвать гарантию доступа к передаче в установленных пропорциях для каждой очереди.

Настройка приоритизации трафика на коммутаторах TING

Понимая, что такое тип QoS, нужно разобраться с настройкой трафика на сетевом оборудовании.

Настройка приоритизации на коммутаторах TING предусматривает назначение коэффициентов типам трафика. Они вступают в силу при полной загрузке канала. В результате пропускная способность распределяется для разных типов трафика в соответствии с установленными значениями коэффициентов, которые могут варьироваться от 1 до 100. Чем более высокий коэффициент присвоен трафику, тем более высокая доля пропускной способности канала предоставляется ему в случае повышенной нагрузки.

Настройка выполняется путем задания правил, ссылающихся на очереди, которые, в свою очередь, ссылаются на каналы (пайпы).

Для создания канала нужно перейти по пути Межсетевой экран — Ограничитель трафика — Настройки. После этого необходимо вызывать окно редактирования канала, кликнув на «+» на вкладке «Каналы». Здесь задается пропускная способность канала.

Далее нужно перейти на вкладку «Очереди» и нажать на значок «+». В появившемся окне редактирования ввести данные для очереди. Основным параметром для очереди будет ее весовой коэффициент.

После задания весового коэффициента для очереди приступают к созданию правил. Для этого нужно кликнуть на «+» на вкладке «Правила». Предусматривается возможность создания правил для трафика SMTP, HTTP, HTTPS — в таблицах прописывают соответствующие порты и IP-адреса. При этом трафик HTTP и HTTPS попадают в одну очередь и одинаково обрабатываются со скоростью до 1 Мбит/c.

Использование QoS в кольцевых топологиях Turbo Ring/Chain

При работе в топологиях Turbo Ring/Turbo Chain самый высокий приоритет всегда должен иметь служебный трафик протоколов резервирования. Если при настройке QoS наивысший приоритет задан другому трафику, это может привести к несвоевременной доставке служебных сообщений. Поэтому в резервированных сетях Turbo Ring/Chain не рекомендуется назначать наивысший приоритет никакому трафику в настройках, чтобы не допустить ухудшения работы и увеличения времени восстановления.

Источник

Quality of Service: приоритизация трафика

Quality of Service: приоритизация трафика

В статье рассказываем о том, что такое QoS в целом и об особенностях его работы в коммутаторах MOXA.

О технологии QoS

Для того, чтобы повысить вероятность доставки важных данных, в коммутаторах MOXA реализована поддержка технологии Quality of Service (QoS).

QoS – технология приоритизации трафика, т.е. предоставление различным классам трафика различных приоритетов в обслуживании. Это означает, что более важный трафик будет обработан коммутатором быстрее, и задержки при его прохождении по сети будут минимальны.

Что такое качество обслуживания?

Все эти параметры позволяет контролировать механизм QoS: выделяет определенную полосу пропускания, уменьшает задержку и джиттер при передаче пакетов, предотвращает отбрасывание важных пакетов.

Важно: для работы QoS все сетевые устройства между отправителем и получателем должны поддерживать эту технологию.

Зачем использовать приоритизацию трафика?

Трафик в сети бывает нескольких видов: данные от web-приложений, электронной почты, видео, голоса, мессенджеров, телеметрии и т.д. Голосовой и видео трафик чувствителен к задержкам, а трафик телеметрии нет, но требует гарантированной доставки. Чтобы учесть и обеспечить все эти требования, каждому типу трафика присваивается свой приоритет, который и определяет очередность обработки его коммутатором.

Стоит отметить, что приоритизация требуется в основном только в узких, загруженных местах, когда пропускной способности канала не хватает для передачи всех поступающих пакетов и нужно каким-то образом дифференцировать их обработку. Кроме того, приоритизация необходима для предотвращения влияния всплесков сетевой активности на чувствительный к задержкам трафик.

Механизм работы QoS

Маркировка трафика по стандарту IEEE 802.1p – Class of Service

Можно сказать, что IEEE 802.1p как бы является частью IEEE 802.1Q.

Приоритизация трафика что это

Структура Ethernet кадра. Тег 802.1p внутри тега 802.1Q

Стандарт IEEE 802.1p описывает 8 различных классов приоритета

Уровень приоритета IEEE 802.1pУровень обслуживанияТип трафика
0 (наименьший)Best EffortВариант по умолчанию. Качество не гарантируется, но поддерживается лучшим из возможного
1BackgroundФоновый
2Standard (spare)Стандартный
3Excellent Effort (business critical)Приоритетный. (Данные не критичные к задержке, но критичные к потерям, но менее приоритетные, чем Контролируемая нагрузка)
4Controlled Load (streaming multimedia)Контролируемый. (Потоковые мультимедийные данные не критичные к задержке, но критичные к потерям)
5VideoВидео (данные, для которых критична задержка более 100 мс)
6VoiceГолос (данные, для которых критична задержка более более 10 мс)
7 (наивысший)Network Control Reserved trafficТрафик управления сетью.

На уровне 3 модели OSI: в маршрутизаторах и коммутаторах 3-го уровня, – применяется другой вид приоритизации, при котором в заголовок IP добавляется специальный байт ToS – Type of Service, в котором указывается информация о приоритете.

Поле ToS состоит из 6 бит DiffServ Code Point (DSCP) и 2 бит Explicit Congestion Notification.

DSCP использует 64 значения для уровней сервиса, что позволяет настроить приоритеты очень гибко.

Приоритизация трафика что это

Структура пакета IP. Расположение байта ToS в заголовке IP.

Структура байта ToS несколько раз пересматривалась, поэтому для совместимости с предыдущими версиями поля ToS первые 3 бита определяют приоритет.

Очереди трафика

Аппаратное обеспечение коммутаторов имеет несколько очередей трафика, в которые помещаются приходящие на порт коммутатора пакеты и ожидают, когда коммутатор их обработает. В коммутаторах MOXA таких очередей четыре. Вы можете увидеть этот параметр в спецификации устройства: Priority queues или Кол-во очередей приоритетов на порт. Чем больше очередей, тем более точно коммутатор может балансировать передачу трафика. Соответственно более важный трафик помещается в первую очередь, и так далее.

Приоритизация трафика что это

Схема обработки трафика коммутатором

Управляемые коммутаторы MOXA поддерживают два различных механизма организации очередей:

Weighted Fair Queuing (WFQ) – Взвешенная справедливая очередь:

В этом случае все очереди обслуживаются циклически, в зависимости от приоритета очереди определяется количество передаваемого трафика за цикл. В коммутаторах MOXA трафик обрабатывается в соотношении: 8-4-2-1. Это значит, что из высокоприоритетной очереди за единицу времени будет выдано на выходной порт больше пакетов, чем из низкоприоритетной.

Приоритизация трафика что это

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

Strict Priority Queuing (SPQ) – Строгая очередь приоритетов:

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

Приоритизация трафика что это

В неуправляемых коммутаторах MOXA реализован механизм

Weighted Round Robin (WRR) – Взвешенный циклический алгоритм:

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

Приоритизация трафика что это

Преимуществом такой организации является отсутствие монополизации полосы пропускания, все очереди получают доступ к полосе, в заданных пропорциях.

Настройка приоритизации трафика на коммутаторах MOXA

Настройка QoS в неуправляемых коммутаторах

Традиционно поддержка QoS была только у управляемых коммутаторов и ее можно было настроить только через командную строку или веб-интерфейс. Компания MOXA пошла дальше, и внедрила технологию QoS и в неуправляемые коммутаторы новой линейки.

Для настройки используются DIP-переключатели на корпусе устройства.

Приоритизация трафика что это

При установке переключателя QoS с положение ON, активируется механизм QoS – 4 очереди приоритетов по схеме WRR.

3 бита приоритета QoS7,65,43,21,0
Очереди3210
WRR8421

Настройка QoS в управляемых коммутаторах

Все настройки находятся в разделе QoS.

Вкладка QoS Classification

Приоритизация трафика что это

Egress Scheduling Setting (Планировщик выходных пакетов)

Scheduling Mechanism – выбор механизма обработки очередей: Weighted Fair Queuing (WFQ) или Strict Priority Queuing (SPQ).

Ingress Classification Setting (Классификатор входящих пакетов)

В этой таблице установлены правила обработки входящего трафика.

Т.е. сперва проверяется наличие тегов ToS и CoS в заголовках, а при их отсутствии в кадр добавляется тег CoS со значением из таблицы.

Если отключить галочками проверку ToS и CoS, тогда все входящие кадры будут маркироваться значением приоритета из таблицы.

Вкладка Port Priority

Тут можно настроить распределение входящего трафика по очередям в соответствии со значением в теге CoS.

В управляемых коммутаторах MOXA есть 2 типа настроек QoS в зависимости от модели.

ТипМодель
Тип 1EDS-510E, EDS-518E, EDS-G512E-8PoE EDS-G508E, EDS-G512E-4GSFP, EDS-G516E-4GSFP, IKS-6726A, IKS-6728A, IKS-6728A-8PoE
Тип 2IKS-G6524A, IKS-G6824A, ICS-G7526A, ICS-G7826A, ICS-G7528A, ICS-G7828A, ICS-G7748A, ICS-G7848A, ICS-G7750A, ICS-G7850A, ICS-G7752A, ICS-G7852A

Для моделей коммутаторов 1 типа можно задать отношение CoS Priority для 4 очередей.

Приоритизация трафика что это

Для моделей коммутаторов 2 типа можно задать отношение CoS Priority для 8 очередей:

Приоритизация трафика что это

Вкладка DSCP Mapping

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

Приоритизация трафика что это

Использование QoS в кольцевых топологиях Turbo Ring/Chain

Весь служебный трафик протоколов резервирования Turbo Ring/Turbo Chain всегда имеет наивысший приоритет. Поэтому, если в сети есть другой трафик с наивысшим приоритетом, то служебные сообщения могут не быть доставлены вовремя, что скажется на работе и времени восстановления резервированной сети, особенно в моменты перегрузок по высокоприоритетному трафику. В резервированных сетях Turbo Ring/Chain компания MOXA рекомендует не назначать никакому трафику в сети наивысший приоритет.

Источник

Mikrotik-Qos Приоритезация по типу трафика и деление скорости

Mikrotik-Qos Приоритезация по типу трафика и деление скорости

Приоритизация трафика что этоДоброго времени суток, сегодня речь пойдет о наболевшем, а именно о том, как грамотно разделить интернет канал, чтобы все ваши пользователи были максимально довольны.

Начнем с того, что я по традиции как и все остальные специалисты отправлю вас курить мануалы… Зачем? Да только для того чтобы вы хотя бы чуть-чуть образно представили как будут протекать процессы деления скорости. Потому что как показывает практика — любые действия без осознания принципов работы, приводит лишь к куче вопросов, потерянному времени и злому бухгалтеру, ну или директору у которого по вашей вине сегодня утром не открылась страничка с загорелыми блондинками 🙂

Замечательная статья Кузьмицкого Александра — Делим Интернет или QoS на Mikrotik
Читать раз десять, до полного понимания, если не понимаете — читайте еще раз…

Хорошая, но не законченная презентация от Мегиса (Megis), ну и ее перевод от white_crow за что ему огромное спасибо…
QoS_Megis.pdf
QoS_Megis_(Russian_translate_by_white_crow_rev.2).pdf

Данная презенташка содержит ошибку, подробнее о ней читайте в следующей доке.

Русский вариант Mikrotik Wiki
http://wiki.mikrotik.com/wiki/Руководства: Очередь_(Queue)
Не нужно сейчас брызгать слюной и говорить, что вы итак все знаете, присмотритесь, особенно в комментарии, откроете для себя чуточку нового, особенно того где находится SRC-NAT и почему из-за него неправильно режется исходящая скорость.

Ну что? Начитались? Уже появилась кучка вопросов?
Пошарив по просторам интернета, было выявлено, что у администраторов микротика возникает ряд схожих проблем и вопросов, связанных с QoS в целом, приоритезацией и нарезкой трафика, что в принципе одно и то же. Однако, как правило, это либо незаконченные статьи, либо брошенные на самом интересном месте ветки форумов.
Основные цели, проблемы и вопросы в них следующие:

И это только основные вопросы…

Почитав и немного поразмыслив, я пришел к выводу, что очень даже было бы ничего придумать, что-нибудь такое универсальное, легко масштабируемое, и крайне юзабильное для администратора. Через пару дней в голову пришел план реализации, а еще через неделю все уже было готово…

В общем, была поставлена задача:

Задача 1.

Разделить трафик по приоритету.
Шарив по интернету, натолкнулся на предупреждения, мол, p2p трудно пометить, скайп тоже. И вообще приоритезация по типу трафика не очень хорошая идея на микротике.

Ко всему смутили золотые слова о том, что мы не можем контроллировать входящий трафик который валится к нам из интернета, т.к. он УЖЕ ПРИШЕЛ на наш входящий интерфейс. Но у этих слов есть оговорка — Да, мы не можем контроллировать то, что уже пришло на интерфейс, но мы можем задержать этот трафик тем самым за счет контрольных полей пакетов которые прийдут с задержками, мы можем сообщить серверу что наш клиент не может так быстро принимать данные. В следствии чего сервер будет отправлять пакеты чуть-чуть медленнее.

Итак, вопрос закрыт, разделению трафика по приоритету быть!

Было принято взвешенное решение: «Если не получается пометить низкоприоритетный трафик, будем метить весь трафик как низкоприоритетный, а потом из этой кучи переразмечать и выдергивать высокоприоритетный»

Для разделения трафика было принято четыре группы (Класса) трафика:

CLASS-A
CLASS-B
CLASS-C
CLASS-D

Задача 2.

Разделение общего потока на группы пользователей с разным приоритетом.
Тут в принципе вопросов как таковых не возникало. Было принято решение сделать 5 групп пользователей с разным приоритетом, приоритеты очередей были распределены внахлест, чтобы трафик высокого класса нижней группы мог конкурировать с трафиком верхней группы среднего или низкого класса.
В итоге пять групп:

GROUP-A
GROUP-B
GROUP-C
GROUP-D
GROUP-E

GROUP-A — имеет самый высокий приоритет, клиенты этой группы распределяют очередь между собой поровну согласно указанным выше классам.
GROUP-E — имеет самый низкий приоритет, клиенты этой группы распределяют очередь между собой поровну согласно указанным выше классам. Если группы с более высоким приоритетом полностью займут весь лимит, данная группа сможет передавать только трафик высокого класса, согласно теории вероятности и закону подлости — данная группа вообще не сможет передавать никакого трафика, пока канал не станет посвободнее, поэтому для всех групп стоит установить параметр Limit-At который даст некоторую гарантию, что у людей, хотя бы аськи будут работать.

В итоге мы получаем дерево, слева имена, справа приоритеты:

GROUP-A
CLASS-A 1
CLASS-B 2
CLASS-C 3
CLASS-D 4
GROUP-B
CLASS-A 2
CLASS-B 3
CLASS-C 4
CLASS-D 5
GROUP-C
CLASS-A 3
CLASS-B 4
CLASS-C 5
CLASS-D 6
GROUP-D
CLASS-A 4
CLASS-B 5
CLASS-C 6
CLASS-D 7
GROUP-E
CLASS-A 5
CLASS-B 6
CLASS-C 7
CLASS-D 8

В точках пересечения приоритетов, классы разных групп при наличии на них трафика будут делить доступную им скорость.
К примеру,
GROUP-A CLASS-C PRIO 3 пытается полностью забить канал

Только следующие классы получат разрешение на передачу пакетов:
GROUP-A CLASS-A 1
GROUP-A CLASS-B 2
GROUP-B CLASS-A 2
GROUP-B CLASS-B 3
GROUP-С CLASS-A 3
причем классы с одинаковым приоритетом будут делить скорость поровну между собой, классы с более высоким приоритетом отнимают скорость у классов с более низким.

Задача 3.

Приоритезация доступа к определенным ресурсам.
После разметки трафика по типам, я добавил правила, которые будут отдавать приоритет определенным ресурсам, и разделил их на три класса:
CLASS-A-SITES
CLASS-B-SITES
CLASS-C-SITES
Добавляя списки в /ip firewall address-list под соответствующими именами, мы можем направить трафик в нужный нам класс.

Задача 4.

Ускорить потоки первых соединений.
Весьма двоякая польза от данной фишки, после маркировки по типу трафика и по направлению к ресурсам было решено добавить три правила.

Все закачки размером не более 5 килобайт помещаются в CLASS-A
Все закачки размером от 5 до 50 килобайт будут перемещены в CLASS-B
Все закачки размером от 50 до 100 килобайт будут перемещены в CLASS-C
После 100 килобайт пакеты перестанут помечаться и как правило попадут в CLASS-D, данные правила не действуют для трафика CLASS-A т.к. он итак самый приоритетный.

Все это работает как своеобразный Burst для коротких соединений, быстрая подгрузка страниц, шустрые соединения по удаленке, быстрый пролет im-сообщений и пр.
Обратная сторона медали, все соединения получат данный Burst в т.ч. и P2P.

Задача 5.
Задача 6.

Оставить администратору возможность управления профилями PCQ для каждой группы отдельно.
Для решения данной задачи было создано десять профилей, пять на загрузку, пять на отдачу, по два на группу.

Задача 7.

Слепить все это счастье вместе при следующих условиях:
Правила в /ip firewall mangle не должны блокировать пакеты в цепочках, т.е. passthrough=yes должен быть во всех правилах.
На микротике включен SRC-NAT что очень сильно скажется на просторах для творчества.

С задачами мы определились, теперь осталось дело за реализацией и результатом.

Реализовывать, учитывая условия и поставленные задачи мы будем с помощью очередей PCQ, помечать пакеты будем в цепочках forward и prerouting.

Итак, выдержка из справки:
QoS включает несколько возможностей, в следующем порядке:

1. mangle chain prerouting
2. HTB global-in
3. Mangle chain forward
4. Mangle chain postrouting
5. HTB global-out
6. HTB out interface

поэтому в пределах одного роутера можно дважды шейпить трафик:

a) #1 и #2 для первой маркировки трафика и последующего шейпинга, и #3+#5 для второй
b) #1 и #2 для первой маркировки трафика и последующего шейпинга, и #3+#6 для второй
c) #1 и #2 для первой маркировки трафика и последующего шейпинга, и #4+#5 для второй
d) #1 и #2 для первой маркировки трафика и последующего шейпинга, и #4+#6 для второй

Так же кто все таки не поленился и еще разок покурил мануалы о которых я говорил в самом начале. По презенташке от Мегиса видно что приоритезация по типу должна лежать в пределах PREROUTING-GLOBAL-IN а нарезка скорости FORWARD-HTB INTERFACE.

Первое и архиважное, не имеет смысла сначала делать приоритезцию а потом нарезать трафик к пользователю, т.к. это будет иметь смысл только при под завязку забитом интернет канале. А если пользователь заколотит свой канал то толку от такой приоритезации будет мало.

Второе и очень важное замечание.
Цепочка FORWARD-HTB INTERFACE не будет работать с исходящим каналом т.к. HTB INTERFACE находится после SRC-NAT, тоже самое относится и к цепочке FORWARD-GLOBAL-OUT, очереди PCQ по этим цепочкам не работают, кто не верит можете настроить пару правил и по экспериментировать.

Третье важное замечание.
При включенном SRC-NAT в цепочке PREROUTING-GLOBAL-IN не получится отловить входящий трафик, вернее получится с большим извратом и работать будет не очень хорошо.

И последнее, сейчас кину большой кирпич в огород тем, кто кричит, что использование Global-in, Global-out, Global-Total в качестве Parent это не правильно и вообще полная ересь. Так вот, уважаемые, представьте на секунду что к вам в огород прилетел кирпич, а к нему привязана витуха от вашего ВТОРОГО провайдера. Улавливаете о чем речь? Сколько можно тратить ресурсы роутера на дубляж правил? А если их не два а пять будет?

Ну и хватит критики…

Так вот, раз уж так получилось, что помечать, а потом резать нельзя, будем помечать и резать одновременно.
Раз в цепочке Forward не работает шейпер на исходящий трафик, значит, будем делать его в цепочке PREROUTING-GLOBAL-TOTAL
Раз в цепочке Prerouting мы не можем знать какому из серых адресов прилетел пакетег, значит помечать мы их будем в цепочке FORWARD-GLOBAL-OUT.

Как сказал Гагарин: «Поехали!»
Для начала добавим парочку L-7 наборов для определения типа трафика:

]* http/[01]\\.[019]»
add name=Jabber regexp=\
«

Пометим весь трафик в CLASS-D

/ip firewall mangle
add action=accept chain=forward comment=CLASS-D disabled=yes
add action=mark-connection chain=forward comment=ALLTRAFFIC disabled=no new-connection-mark=CLASS-D passthrough=yes
add action=mark-packet chain=forward comment=CLASS-D-GROUP-E-DL connection-mark=CLASS-D disabled=no dst-address-list=GROUP-E new-packet-mark=CLASS-D-GROUP-E-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-D-GROUP-D-DL connection-mark=CLASS-D disabled=no dst-address-list=GROUP-D new-packet-mark=CLASS-D-GROUP-D-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-D-GROUP-C-DL connection-mark=CLASS-D disabled=no dst-address-list=GROUP-C new-packet-mark=CLASS-D-GROUP-C-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-D-GROUP-B-DL connection-mark=CLASS-D disabled=no dst-address-list=GROUP-B new-packet-mark=CLASS-D-GROUP-B-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-D-GROUP-A-DL connection-mark=CLASS-D disabled=no dst-address-list=GROUP-A new-packet-mark=CLASS-D-GROUP-A-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=prerouting comment=CLASS-D-GROUP-E-UP connection-mark=CLASS-D disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-D-GROUP-E-UP passthrough=yes src-address-list=GROUP-E
add action=mark-packet chain=prerouting comment=CLASS-D-GROUP-D-UP connection-mark=CLASS-D disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-D-GROUP-D-UP passthrough=yes src-address-list=GROUP-D
add action=mark-packet chain=prerouting comment=CLASS-D-GROUP-C-UP connection-mark=CLASS-D disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-D-GROUP-C-UP passthrough=yes src-address-list=GROUP-C
add action=mark-packet chain=prerouting comment=CLASS-D-GROUP-B-UP connection-mark=CLASS-D disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-D-GROUP-B-UP passthrough=yes src-address-list=GROUP-B
add action=mark-packet chain=prerouting comment=CLASS-D-GROUP-A-UP connection-mark=CLASS-D disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-D-GROUP-A-UP passthrough=yes src-address-list=GROUP-A
add action=accept chain=forward comment=CLASS-D disabled=yes

Переразметим пакеты более высокого класса CLASS-C

add action=accept chain=forward comment=CLASS-C disabled=yes
add action=mark-connection chain=forward comment=Proxy disabled=no dst-port=3128 new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=HTTP disabled=no layer7-protocol=http new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=HTTPS disabled=no dst-port=443 new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=FTP disabled=no dst-port=20,21 new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SFTP disabled=no dst-port=22 new-connection-mark=CLASS-C packet-size=1400-1500 passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SMTP disabled=no dst-port=25 new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SMTPS disabled=no dst-port=465 new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=Imap disabled=no dst-port=143 new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=POP3 disabled=no dst-port=110 new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=POP3S disabled=no dst-port=995 new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=IMAPS disabled=no dst-port=993 new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=GIF_FILE disabled=no layer7-protocol=GIF_FILE new-connection-mark=CLASS-C passthrough=yes
add action=mark-connection chain=forward comment=PNG_FILE disabled=no layer7-protocol=PNG_FILE new-connection-mark=CLASS-C passthrough=yes
add action=mark-connection chain=forward comment=CLASS-C-SITES disabled=no new-connection-mark=CLASS-C passthrough=yes src-address-list=CLASS-C-SITES
add action=mark-connection chain=forward comment=CLASS-C-SITES disabled=no dst-address-list=CLASS-C-SITES new-connection-mark=CLASS-C passthrough=yes
add action=mark-connection chain=forward comment=»100Kb Connections» connection-bytes=0-100000 disabled=no new-connection-mark=CLASS-C passthrough=yes protocol=tcp
add action=mark-packet chain=forward comment=CLASS-C-GROUP-E-DL connection-mark=CLASS-C disabled=no dst-address-list=GROUP-E new-packet-mark=CLASS-C-GROUP-E-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-C-GROUP-D-DL connection-mark=CLASS-C disabled=no dst-address-list=GROUP-D new-packet-mark=CLASS-C-GROUP-D-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-C-GROUP-C-DL connection-mark=CLASS-C disabled=no dst-address-list=GROUP-C new-packet-mark=CLASS-C-GROUP-C-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-C-GROUP-B-DL connection-mark=CLASS-C disabled=no dst-address-list=GROUP-B new-packet-mark=CLASS-C-GROUP-B-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-C-GROUP-A-DL connection-mark=CLASS-C disabled=no dst-address-list=GROUP-A new-packet-mark=CLASS-C-GROUP-A-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=prerouting comment=CLASS-C-GROUP-E-UP connection-mark=CLASS-C disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-C-GROUP-E-UP passthrough=yes src-address-list=GROUP-E
add action=mark-packet chain=prerouting comment=CLASS-C-GROUP-D-UP connection-mark=CLASS-C disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-C-GROUP-D-UP passthrough=yes src-address-list=GROUP-D
add action=mark-packet chain=prerouting comment=CLASS-C-GROUP-C-UP connection-mark=CLASS-C disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-C-GROUP-C-UP passthrough=yes src-address-list=GROUP-C
add action=mark-packet chain=prerouting comment=CLASS-C-GROUP-B-UP connection-mark=CLASS-C disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-C-GROUP-B-UP passthrough=yes src-address-list=GROUP-B
add action=mark-packet chain=prerouting comment=CLASS-C-GROUP-A-UP connection-mark=CLASS-C disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-C-GROUP-A-UP passthrough=yes src-address-list=GROUP-A
add action=accept chain=forward comment=CLASS-C disabled=yes

Переразметим пакеты более высокого класса CLASS-B

add action=accept chain=forward comment=CLASS-B disabled=yes
add action=mark-connection chain=forward comment=ICQ disabled=no dst-port=5190 new-connection-mark=CLASS-B passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=»Mail.ru Agent» disabled=no dst-port=2041,2042 new-connection-mark=CLASS-B passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=Jabber disabled=no layer7-protocol=Jabber new-connection-mark=CLASS-B passthrough=yes
add action=mark-connection chain=forward comment=IRC disabled=no dst-port=6667-6669 new-connection-mark=CLASS-B passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SSH disabled=no dst-port=22 new-connection-mark=CLASS-B packet-size=0-1400 passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=TELNET disabled=no dst-port=23 new-connection-mark=CLASS-B passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=SNMP disabled=no dst-port=161-162 new-connection-mark=CLASS-B passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=PPTP disabled=no dst-port=1723 new-connection-mark=CLASS-B passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=L2TP disabled=no dst-port=1701 new-connection-mark=CLASS-B passthrough=yes protocol=udp
add action=mark-connection chain=forward comment=GRE disabled=no new-connection-mark=CLASS-B passthrough=yes protocol=gre
add action=mark-connection chain=forward comment=Skype disabled=no layer7-protocol=Skype new-connection-mark=CLASS-B passthrough=yes
add action=mark-connection chain=forward comment=CLASS-B-SITES disabled=no new-connection-mark=CLASS-B passthrough=yes src-address-list=CLASS-B-SITES
add action=mark-connection chain=forward comment=CLASS-B-SITES disabled=no dst-address-list=CLASS-B-SITES new-connection-mark=CLASS-B passthrough=yes
add action=mark-connection chain=forward comment=»50Kb Connections» connection-bytes=0-50000 disabled=no new-connection-mark=CLASS-B passthrough=yes protocol=tcp
add action=mark-packet chain=forward comment=CLASS-B-GROUP-E-DL connection-mark=CLASS-B disabled=no dst-address-list=GROUP-E new-packet-mark=CLASS-B-GROUP-E-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-B-GROUP-D-DL connection-mark=CLASS-B disabled=no dst-address-list=GROUP-D new-packet-mark=CLASS-B-GROUP-D-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-B-GROUP-C-DL connection-mark=CLASS-B disabled=no dst-address-list=GROUP-C new-packet-mark=CLASS-B-GROUP-C-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-B-GROUP-B-DL connection-mark=CLASS-B disabled=no dst-address-list=GROUP-B new-packet-mark=CLASS-B-GROUP-B-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-B-GROUP-A-DL connection-mark=CLASS-B disabled=no dst-address-list=GROUP-A new-packet-mark=CLASS-B-GROUP-A-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=prerouting comment=CLASS-B-GROUP-E-UP connection-mark=CLASS-B disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-B-GROUP-E-UP passthrough=yes src-address-list=GROUP-E
add action=mark-packet chain=prerouting comment=CLASS-B-GROUP-D-UP connection-mark=CLASS-B disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-B-GROUP-D-UP passthrough=yes src-address-list=GROUP-D
add action=mark-packet chain=prerouting comment=CLASS-B-GROUP-C-UP connection-mark=CLASS-B disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-B-GROUP-C-UP passthrough=yes src-address-list=GROUP-C
add action=mark-packet chain=prerouting comment=CLASS-B-GROUP-B-UP connection-mark=CLASS-B disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-B-GROUP-B-UP passthrough=yes src-address-list=GROUP-B
add action=mark-packet chain=prerouting comment=CLASS-B-GROUP-A-UP connection-mark=CLASS-B disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-B-GROUP-A-UP passthrough=yes src-address-list=GROUP-A
add action=accept chain=forward comment=CLASS-B disabled=yes

Переразметим пакеты более высокого класса CLASS-A

add action=accept chain=forward comment=CLASS-A disabled=yes
add action=mark-connection chain=forward comment=DNS disabled=no dst-port=53 new-connection-mark=CLASS-A passthrough=yes protocol=tcp src-port=53
add action=mark-connection chain=forward comment=DNS disabled=no dst-port=53 new-connection-mark=CLASS-A passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=DNS disabled=no dst-port=53 new-connection-mark=CLASS-A passthrough=yes protocol=udp
add action=mark-connection chain=forward comment=NNTP disabled=no dst-port=119 new-connection-mark=CLASS-A passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=Winbox disabled=no dst-port=8291 new-connection-mark=CLASS-A passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=ntp disabled=no dst-port=123 new-connection-mark=CLASS-A passthrough=yes protocol=udp
add action=mark-connection chain=forward comment=VNC disabled=no dst-port=5900-5901 new-connection-mark=CLASS-A passthrough=yes protocol=tcp
add action=mark-connection chain=forward comment=Radmin disabled=no layer7-protocol=radmin new-connection-mark=CLASS-A passthrough=yes
add action=mark-connection chain=forward comment=RDP disabled=no layer7-protocol=rdp new-connection-mark=CLASS-A passthrough=yes
add action=mark-connection chain=forward comment=PING disabled=no new-connection-mark=CLASS-A passthrough=yes protocol=icmp
add action=mark-connection chain=forward comment=CLASS-A-SITES disabled=no new-connection-mark=CLASS-A passthrough=yes src-address-list=CLASS-A-SITES
add action=mark-connection chain=forward comment=CLASS-A-SITES disabled=no dst-address-list=CLASS-A-SITES new-connection-mark=CLASS-A passthrough=yes
add action=mark-connection chain=forward comment=»5Kb Connections» connection-bytes=0-5000 disabled=no new-connection-mark=CLASS-A passthrough=yes protocol=tcp
add action=mark-packet chain=forward comment=CLASS-A-GROUP-E-DL connection-mark=CLASS-A disabled=no dst-address-list=GROUP-E new-packet-mark=CLASS-A-GROUP-E-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-A-GROUP-D-DL connection-mark=CLASS-A disabled=no dst-address-list=GROUP-D new-packet-mark=CLASS-A-GROUP-D-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-A-GROUP-C-DL connection-mark=CLASS-A disabled=no dst-address-list=GROUP-C new-packet-mark=CLASS-A-GROUP-C-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-A-GROUP-B-DL connection-mark=CLASS-A disabled=no dst-address-list=GROUP-B new-packet-mark=CLASS-A-GROUP-B-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=forward comment=CLASS-A-GROUP-A-DL connection-mark=CLASS-A disabled=no dst-address-list=GROUP-A new-packet-mark=CLASS-A-GROUP-A-DL passthrough=yes src-address-list=!ShaperExclude
add action=mark-packet chain=prerouting comment=CLASS-A-GROUP-E-UP connection-mark=CLASS-A disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-A-GROUP-E-UP passthrough=yes src-address-list=GROUP-E
add action=mark-packet chain=prerouting comment=CLASS-A-GROUP-D-UP connection-mark=CLASS-A disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-A-GROUP-D-UP passthrough=yes src-address-list=GROUP-D
add action=mark-packet chain=prerouting comment=CLASS-A-GROUP-C-UP connection-mark=CLASS-A disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-A-GROUP-C-UP passthrough=yes src-address-list=GROUP-C
add action=mark-packet chain=prerouting comment=CLASS-A-GROUP-B-UP connection-mark=CLASS-A disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-A-GROUP-B-UP passthrough=yes src-address-list=GROUP-B
add action=mark-packet chain=prerouting comment=CLASS-A-GROUP-A-UP connection-mark=CLASS-A disabled=no dst-address-list=!ShaperExclude new-packet-mark=CLASS-A-GROUP-A-UP passthrough=yes src-address-list=GROUP-A
add action=accept chain=forward comment=CLASS-A disabled=yes

Теперь пожалуй стоит забить пустые адрес-листы, так, для красоты.

/ip firewall address-list
add address=192.168.0.1 disabled=no list=GROUP-A
add address=192.168.0.2 disabled=no list=GROUP-B
add address=192.168.0.4 disabled=no list=GROUP-D
add address=192.168.0.3 disabled=no list=GROUP-C
add address=192.168.0.5 disabled=no list=GROUP-E
add address=0.0.0.0 disabled=no list=CLASS-A-SITES
add address=0.0.0.0 disabled=no list=CLASS-B-SITES
add address=0.0.0.0 disabled=no list=CLASS-C-SITES
add address=192.168.0.0/16 disabled=no list=ShaperExclude
add address=10.0.0.0/8 disabled=no list=ShaperExclude

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

Создадим типы очередей

/queue type
add kind=pcq name=GROUP-A-DL 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=64 pcq-limit=50 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000
add kind=pcq name=GROUP-B-DL 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=64 pcq-limit=50 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000
add kind=pcq name=GROUP-C-DL 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=64 pcq-limit=50 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000
add kind=pcq name=GROUP-D-DL 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=64 pcq-limit=50 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000
add kind=pcq name=GROUP-E-DL 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=64 pcq-limit=50 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000
add kind=pcq name=GROUP-A-UP 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=64 pcq-limit=150 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000
add kind=pcq name=GROUP-B-UP 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=64 pcq-limit=150 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000
add kind=pcq name=GROUP-C-UP 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=64 pcq-limit=150 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000
add kind=pcq name=GROUP-D-UP 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=64 pcq-limit=150 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000
add kind=pcq name=GROUP-E-UP 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=64 pcq-limit=150 pcq-rate=0 pcq-src-address-mask=32 pcq-src-address6-mask=64 pcq-total-limit=2000

Обратите пристальное внимание что парамтр PCQ Rate ничем не ограничен, т.к. скорость подпотока я оставил на ваше усмотрение, по умолчанию максимальная скорость подпотока будет ограничена параметром Max.Limit деленого на количество подпотоков, разделенной по классам.

Строим дерево:

/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=10M name=DOWNLOAD parent=global-out priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=10M name=UPLOAD parent=global-total priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-A-UP parent=UPLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AA-UP packet-mark=CLASS-A-GROUP-A-UP parent=GROUP-A-UP priority=1 queue=GROUP-A-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BA-UP packet-mark=CLASS-B-GROUP-A-UP parent=GROUP-A-UP priority=2 queue=GROUP-A-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CA-UP packet-mark=CLASS-C-GROUP-A-UP parent=GROUP-A-UP priority=3 queue=GROUP-A-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DA-UP packet-mark=CLASS-D-GROUP-A-UP parent=GROUP-A-UP priority=4 queue=GROUP-A-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-B-UP parent=UPLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AB-UP packet-mark=CLASS-A-GROUP-B-UP parent=GROUP-B-UP priority=2 queue=GROUP-B-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BB-UP packet-mark=CLASS-B-GROUP-B-UP parent=GROUP-B-UP priority=3 queue=GROUP-B-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CB-UP packet-mark=CLASS-C-GROUP-B-UP parent=GROUP-B-UP priority=4 queue=GROUP-B-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DB-UP packet-mark=CLASS-D-GROUP-B-UP parent=GROUP-B-UP priority=5 queue=GROUP-B-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-C-UP parent=UPLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AC-UP packet-mark=CLASS-A-GROUP-C-UP parent=GROUP-C-UP priority=3 queue=GROUP-C-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BC-UP packet-mark=CLASS-B-GROUP-C-UP parent=GROUP-C-UP priority=4 queue=GROUP-C-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CC-UP packet-mark=CLASS-C-GROUP-C-UP parent=GROUP-C-UP priority=5 queue=GROUP-C-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DC-UP packet-mark=CLASS-D-GROUP-C-UP parent=GROUP-C-UP priority=6 queue=GROUP-C-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-D-UP parent=UPLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AD-UP packet-mark=CLASS-A-GROUP-D-UP parent=GROUP-D-UP priority=4 queue=GROUP-D-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BD-UP packet-mark=CLASS-B-GROUP-D-UP parent=GROUP-D-UP priority=5 queue=GROUP-D-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CD-UP packet-mark=CLASS-C-GROUP-D-UP parent=GROUP-D-UP priority=6 queue=GROUP-D-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DD-UP packet-mark=CLASS-D-GROUP-D-UP parent=GROUP-D-UP priority=7 queue=GROUP-D-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-E-UP parent=UPLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AE-UP packet-mark=CLASS-A-GROUP-E-UP parent=GROUP-E-UP priority=5 queue=GROUP-E-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BE-UP packet-mark=CLASS-B-GROUP-E-UP parent=GROUP-E-UP priority=6 queue=GROUP-E-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CE-UP packet-mark=CLASS-C-GROUP-E-UP parent=GROUP-E-UP priority=7 queue=GROUP-E-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DE-UP packet-mark=CLASS-D-GROUP-E-UP parent=GROUP-E-UP priority=8 queue=GROUP-E-UP
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-A-DL parent=DOWNLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AA-DL packet-mark=CLASS-A-GROUP-A-DL parent=GROUP-A-DL priority=1 queue=GROUP-A-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BA-DL packet-mark=CLASS-B-GROUP-A-DL parent=GROUP-A-DL priority=2 queue=GROUP-A-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CA-DL packet-mark=CLASS-C-GROUP-A-DL parent=GROUP-A-DL priority=3 queue=GROUP-A-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DA-DL packet-mark=CLASS-D-GROUP-A-DL parent=GROUP-A-DL priority=4 queue=GROUP-A-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-B-DL parent=DOWNLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AB-DL packet-mark=CLASS-A-GROUP-B-DL parent=GROUP-B-DL priority=2 queue=GROUP-B-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BB-DL packet-mark=CLASS-B-GROUP-B-DL parent=GROUP-B-DL priority=3 queue=GROUP-B-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CB-DL packet-mark=CLASS-C-GROUP-B-DL parent=GROUP-B-DL priority=4 queue=GROUP-B-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DB-DL packet-mark=CLASS-D-GROUP-B-DL parent=GROUP-B-DL priority=5 queue=GROUP-B-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-C-DL parent=DOWNLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AC-DL packet-mark=CLASS-A-GROUP-C-DL parent=GROUP-C-DL priority=3 queue=GROUP-C-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BC-DL packet-mark=CLASS-B-GROUP-C-DL parent=GROUP-C-DL priority=4 queue=GROUP-C-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CC-DL packet-mark=CLASS-C-GROUP-C-DL parent=GROUP-C-DL priority=5 queue=GROUP-C-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DC-DL packet-mark=CLASS-D-GROUP-C-DL parent=GROUP-C-DL priority=6 queue=GROUP-C-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-D-DL parent=DOWNLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AD-DL packet-mark=CLASS-A-GROUP-D-DL parent=GROUP-D-DL priority=4 queue=GROUP-D-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BD-DL packet-mark=CLASS-B-GROUP-D-DL parent=GROUP-D-DL priority=5 queue=GROUP-D-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CD-DL packet-mark=CLASS-C-GROUP-D-DL parent=GROUP-D-DL priority=6 queue=GROUP-D-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DD-DL packet-mark=CLASS-D-GROUP-D-DL parent=GROUP-D-DL priority=7 queue=GROUP-D-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=GROUP-E-DL parent=DOWNLOAD priority=8
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-AE-DL packet-mark=CLASS-A-GROUP-E-DL parent=GROUP-E-DL priority=5 queue=GROUP-E-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-BE-DL packet-mark=CLASS-B-GROUP-E-DL parent=GROUP-E-DL priority=6 queue=GROUP-E-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-CE-DL packet-mark=CLASS-C-GROUP-E-DL parent=GROUP-E-DL priority=7 queue=GROUP-E-DL
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=CLASS-DE-DL packet-mark=CLASS-D-GROUP-E-DL parent=GROUP-E-DL priority=8 queue=GROUP-E-DL

На этом можно сказать реализация закончена.

Еще я думаю стоит сказать о необходимости использования параметров Limit-at и Max-limit в каждой группе хотя бы из соображений того, что интернет нужен всем 🙂
Так же полезно настроить профили групп, опять пну вас в сторону презентации от Мегиса в которой говорится о размере очереди, задержках и потерях пакетов.

Еще дополнительно для новичков скажу пару слов: Данный набор правил абсолютно бесполезен если не задать в корнях DOWNLOAD и UPLOAD значения Max-Limit
Значения Max-Limit стоит ставить МЕНЬШЕ реальной скорости вашего канала в интернет процентов на 5-10, в противном случае настройка будет абсолютно бессмысленной, т.к. ваш провайдер будет дропать или задерживать пакеты которые не помещаются в выходной поток.

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

При наличии нескольких каналов, в параметре Max.Limit задается сумма скоростей этих каналов.

Для вашего удобства выкладываю RSC файл импорта в систему, а так же скриншоты для более полного представления работы. Пользуйтесь на здоровье!

Mangle

Приоритизация трафика что это
Полноразмерная пикча

Queue

Приоритизация трафика что это
Полноразмерная пикча

Хочу выразить огромную благодарность всем тем гениальным людям, кто своими знаниями и ответами на форумах навел на правильные мысли и правильное направление.
Данная статья может содержать некоторые неточности в описании, в силу отсутствия высокой квалификации автора и недостатка свободного времени.

Буду очень рад вашим «Спасибо!» которые следует направлять лично мне, по координатам которые вы сможете найти в профиле.
Так же выслушаю и обдумаю конструктивную критику с вашей стороны, буду рад общению со специалистами работающими в подобном направлении, учту ваши поправки и дополнения.

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *