qos mikrotik что это
Микротик ограничение скорости. Настройка приоритета трафика (QoS)
В статье подробно описано, как настроить на Микротике ограничение скорости по отдельному ip или на целую сеть, ограничение на интерфейсе и физическом порту. А также настройка приоритета трафика (QoS), для sip, tv и других сервисов. Все настройки будут производиться через программу winbox.
Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.
Если у Вас версия RouterOS выше 6.29, то перед настройкой шейпера убедитесь. что в firewall отключен fasttrack, эта технология позволяет увеличить производительность маршрутизатора, но если она включена, то шейпить скорость не получится. Заходим в меню на вкладке Filter Rules, ищем правило fasttrack connection. Если такое правило существует, то отключаем или удаляем его.
Ограничение скорости интернета на все ip адреса в подсети.
Предположим, провайдер предоставляет нам интернет канал 50 Мбит/сек. Стоит задача: для каждого пользователя ограничить канал до 5 Мбит/с.
Создадим новый тип. Для этого заходим в меню Queue вкладка Queue Types. И нажимаем на кнопку «+» добавить.
Type Name – имя нового типа
Kind – тип, принимает следующие значения
bfifo – тип основанный на алгоритме First-In First-Out, Первый-пришел первый ушел, размер очереди определяется в байтах параметром queue size, если очередь переполнена, то остальные пакеты отбрасываются.
pfifo – то же самое что и bfifo, только размер не в байтах, а в пакетах
mq pfifo – тот же pfifo с поддержкой нескольких очередей
red — Random Early Drop — это механизм очередей, который пытается избежать перегрузки сети, контролируя средний размер очереди. Средний размер сравнивается с двумя порогами: минимальным (минимальным) и максимальным (максимальным) порогом. Если средний размер (avgq) меньше минимального порога, пакеты не отбрасываются. Когда средний размер очереди больше максимального порога, все входящие пакеты удаляются.
sfq — Stochastic Fairness Queuing (SFQ) обеспечивается хешированием и циклическими алгоритмами. Трафик может быть однозначно идентифицирован с помощью 4 параметров (src-адрес, dst-адрес, src-порт и dst-порт), поэтому эти параметры используются алгоритмом хэширования SFQ для классификации пакетов в один из 1024 возможных подпотоков. Затем алгоритм round-robin начнет распространять доступную пропускную
способность для всех подпотоков, причем каждый раунд дает байты трафика sfq-allot. Вся очередь SFQ может содержать 128 пакетов и доступно 1024 подпотока.
pcq – то же что sfq, но с возможностью ограничить скорость потоков
Для ограничения ширины канала выбираем тип pcq, в поле Rate указываем значение скорости. В нашем случае 3M. Нам нужно ограничить 3 Мбит/c на вход и на выход, поэтому ставим галочки напротив Dst. Address и Src.Address. Если нам нужно не симметрично ограничить канал, скажем на загрузку 3Мбит/c, а на отдачу 5Мбит/c, то нужно создать два типа, на загрузку и на отдачу с соответствующими параметрами. Остальные поля оставляем как есть.
Остальные поля pcq типа
Limit — размер одного подпотока
Total limit — максимальное количество данных в во всех подпотоках
Burst Rate, Burst Threshold, Burst Time — довольно интересные параметры, рассмотрим их более подробно.
Burst Rate – дословно «взрыв скорости» если мы сделаем настройки как показаны на рисунке.
Следующим шагом применим наши созданные правила. Заходим на вкладку Simple Queues и добавляем очередь.
Name – имя нашей очереди
Target – цель. Здесь прописываем нашу подсеть
Остальные поля не заполняем, если вы встречали статьи где нужно прописывать Max Limit, то могу сказать что это не обязательно, работать будет и с параметром unlimited. Далее переходим на вкладку advanced и выбираем в качестве Queue type. Созданные выше типы.
Нажимаем кнопку ОК. На этом настройки закончены. Теперь любой компьютер c ip адресом из подсети 192.168.7.0/24 будет ограничен шириной канала в 3Мбит/с.
Ограничение на интерфейсе
Для ограничения на порту зайдите на вкладку Interface Queue, выберите нужный интерфейс и примените к нему созданное выше правило.
В примере на порту eth6 будет применено ограничение в 3Мбит/с
Ограничение скорости с помощью маркировки пакетов и Queues Tree на всю сеть
Также в этот лист можно добавить и отдельные ip адреса, а не сеть, скажем если они идут не по порядку, допустим 192.168.7.11, 192.168.7.87, 192.168.7.199.
Переходим в advanced и в поле Src. Address List выбираем лист созданный на первом шаге
Аналогично создаем еще одно правило на download. Только уже будет Dst. Address List и маркировка download.
Нажимаем Ок. Теперь все пакеты идущие из сети 192.168.7.0/24 будут маркироваться как upload, а пакеты идущие в эту сеть как download.
Теперь идем в меню Queues, вкладка Queues tree и добавляем правило.
Name – имя
Parent – выбираем global
Packet Marks – выбираем маркировку созданную ранее upload
Limit AT – гарантированная скорость, т.е если у нас скажем общий канал 10 Мбит/c и мы создаем две очереди с максимальной шириной канала по 10 Мбит. То если вторая очередь заняла скажем канал на 8 Мбит, то нашей остается всего 2 Мбит, параметром Limit AT мы указываем, что гарантируем канал в 5 Мбит. т.е если в нашей очереди начнут интенсивно использовать интернет, то приоритет у нашей очереди увеличится, а у второй очереди уменьшится и скорость поделится по 5 Мбит
Max Limit – максимальная скорость. Это и есть наше ограничение скорости.
Нажимаем ОК и аналогично создаем очередь на загрузку
Если все сделали правильно, то мы увидим наши созданные queue и загрузку по ним.
Этот способ удобно использовать когда список сетей или адресов на ограничение часто меняется, тогда их просто можно добавлять или удалять в адресных листах. Если же адреса для ограничения меняются не часто, то удобнее использовать simple queus.
Simple Queues
Более простой способ ограничения скорости делается через вкладку Simple Queues. Заходим на эту вкладку нажимаем добавить
В поле name пишем имя в target нашу сеть. Max Limit ограничения на загрузку и на отдачу
Приоритезация трафика на Mikrotik
Если нужно настроить приоритизацию трафика на Mikrotik то это делается через параметр Priority в настройка Queues tree.
Или на вкладке Advanced в Simple Queues.
Приоритет принимает значение от 1 до 8. Чем меньше значение, тем выше приоритет, т.е очередь с priority 1 будет обрабатываться самой первой, а с 8 последней. Например если у вас есть сервер ip телефонии asterisk с ip 192.168.7.10, то для него лучше сделать настройки такие.
Если нам нужно настроить приоритет определенного типа трафика, например SIP, VoIP или IpTV не привязываясь к ip адресам. То сделать это можно с помощью Mangle и Queues Tree, как это сделать я писал выше, только маркируем пакеты не по ip а по протоколу и порту. Например для маркировки пакетов на порт 5060 будет выглядеть так.
Комбинируя выше указные способы можно очень гибко настроить шейпинг скорости и приоритет трафика. Также надо отметить что настройки в Queue Tree имеют больший приоритет чем в simple Queues.
Обучающий курс по настройке MikroTik
Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Queues в RouterOS: Simple Queues MikroTik (часть 1)
Ближайшие
тренинги Mikrotik
Места
проведения
г. Санкт-Петербург, Крестовский остров, Северная дорога, дом 12.
г. Санкт-Петербург, ст. м. «Приморская»,
ул. Одоевского, д. 24 к. 1, 2 этаж
В первой части статьи будет рассмотрен один из механизмов QoS, реализованный в RouterOS, по управлению очередями и пропускной способностью, а именно Simple Queues.
Введение
Одним из способов управления качеством обслуживания в сети является внедрение механизмов QoS (quality of service — качество обслуживания). Использование MikroTik QoS позволяет повысить приоритет трафика одного типа над другим, ограничить полосу пропускания для разных типов трафика. Распространённым сценарием является использование комбинированных методик. В этом случае из общего трафика выделяются потоки в соответствии с заданными критериями и между ними распределяются ресурсы: потокам, для которых важно время обработки, выделяется приоритет в обслуживании, а потокам, для которых важна пропускная способность, выделяется большая гарантированная полоса. Штатные средства RouterOS позволяют выполнить распределение ресурсов между потоками трафика с помощью инструментов Simple Queues (простые очереди) и Queue Tree (дерево очередей).
Следует упомянуть, что конфигурация QoS выполняется на каждом устройстве, поэтому, должна быть распространена на все устройства локальной сети. Эффект от внедрения QoS будет ограничен локальной сетью, поскольку смежные сети, находящиеся под управлением других лиц, работают в соответствии со своими политиками, которые могут не совпадать с вашей.
К важным методам обеспечения качества обслуживания также следует отнести архитектуру построения сети и административные меры. В блок административных мер входит контроль за пользовательским трафиком, в допустимых рамках, и контроль за утилизацией каналов связи и аплинков.
1. Типы очередей
В RouterOS существует несколько типов очередей, управление которыми выполняется в разделе /queue type. Пользователь может создавать свои типы очередей, однако за основу будет браться одна из существующих.
RouterOS поддерживает следующие типы очередей:
1.1 Очередь типа none
Очередь типа none подразумевает под собой использование только аппаратной очереди сетевого интерфейса, через который трафик будет отправлен. Данный тип очереди не позволяет выполнять дополнительные настройки по приоритизации трафика.
1.2 Очереди типа pfifo, bfifo, mq-pfifo
Алгоритм FIFO (first in — first out, первый пришёл — первый ушёл) заключается в том, что данные, попадающие в очередь первыми, будут первыми переданы на дальнейшую обработку. Такой подход не позволяет распределять между потоками данных временные ресурсы в соответствии с их приоритетом и применим, в первую очередь, в системах с невысокой утилизацией каналов передачи данных.
На рисунке 1.1 представлен механизм работы очереди типа FIFO: в очередь поступают пакеты трёх потоков данных. Пакет первого потока поступает в очередь первым и первым из неё выходит, первый пакет второго потока выходит вторым, пакет третьего потока — третьим и второй пакет второго потока — четвёртым.
Рисунок 1.1 — Принцип организации очередей FIFO
Разница между pfifo и bfifo заключается в том, что первый метод применяет алгоритм FIFO попакетно, а второй — побайтово. Очевидно, что данный тип очередей использует единый буфер хранения пакетов, определяемый параметром pfifo-limit и bfifo-limit.
Тип очереди mq-pfifo аналогичен pfifo с той лишь разницей, что использует несколько буферов хранения пакетов для каждого из потоков. Размер буфера определяется параметром mq-pfifo-limit.
В случае переполнения буфера, вновь пришедшие пакеты будут отброшены. Таким образом, размер очереди позволяет искать компромисс между высокой утилизацией канала (большой размер очереди) и низким уровнем задержки (малый размер очереди).
1.3 Очередь типа red
Центральным понятием для очередей типа RED (random early drop — случайное превентивное отбрасывание) является средний размер очереди. Пользователь устанавливает значения минимального и максимального порогов red-min-threshold и red-max-threshold и, в зависимости от положения среднего размера очереди относительно этих порогов, выполняется управление потоком данных:
1.4 Очередь типа sfq
Формирование очереди типа SFQ (Stochastic fairness queuing — стохастическая честная очередь) происходит в три этапа: сначала для каждого из входящих пакетов рассчитывается хэш-функция (при расчёте используются значения IP-адресов и портов источника и назначения), потом, в соответствии с рассчитанной хэш-функцией, пакет распределяется в одну из 1024 очередей, а затем пакеты из очередей передаются на дальнейшую обработку по алгоритму round-robin (один пакет из первой очереди, один пакет из второй и т.д.).
Рисунок 1.2 — Принцип организации очередей SFQ
Очередь использует два параметра: sfq-allot — размер каждой из 1024 очередей в байтах, sfq-perturb — время, по истичении которого следует сменить хэширующий алгоритм.
Таким образом удаётся достичь равноправного распределения пропускной способности между всеми потоками данных. Однако у этого алгоритма есть недостаток: в случае, если какой-то из хостов будет оперировать множеством потоков данных, то получит приоритет трафика перед остальными, т.к. его трафик будет помещаться в различные очереди. В некоторых случаях этого можно избежать, выбрав параметры, участвующие в расчёте хэш-функции, но для этого потребуется сменить тип очереди на PCQ.
1.5 Очередь типа pcq
Очередь PCQ (per-connection queuing — распределение очередей по соединениям) является расширенным вариантом SFQ. Как уже было упомянуто, для PCQ можно выбрать параметры участвующие в расчёте хэш-функции (параметр pcq-classifier). Кроме того, можно задать размер каждой из подочередей через параметр pcq-limit.
Одним из преимуществ очередей типа PCQ является возможность гибкого управления доступной полосой для подочередей с помощью параметров pcq-rate и pcq-total-limit. Параметр pcq-rate устанавливает пороговую величину пропускной способности для каждой из подочередей, а pcq-total-limit – суммарный порог для всех подочередей. Полоса, указанная в параметре pcq-total-limit равномерно распределяется между всеми потоками, однако, пропускная способность потока не может превысить pcq-rate, даже если утилизация канала имеет запас. Если для очереди не установлены пороговые значения, то доступная полоса будет распределяться равномерно между подпотоками.
Наглядная демонстрация влияния размера очереди с иллюстрациями представлена в официальной документации — https://wiki.mikrotik.com/wiki/Manual:Queue_Size.
2. Принципы ограничения скорости
Поток данных проходящий через интерфейс, независимо от того входящий или исходящий, может быть обработан двумя способами: ограничение и выравнивание (см. рисунок 2.1).
Рисунок 2.1 — Принцип ограничения и выравнивания трафика
Ограничение трафика подразумевает, что весь трафик свыше заданного ограничения будет отброшен. Этот механизм представлен на рисунке 2.1а — данные, превосходящие порог отбрасываются. Такой тип ограничения скорости уместен для трафика, который чувствителен к задержкам: поскольку данные не хранятся в буфере, а передаются далее либо отбрасываются.
Выравнивание предполагает наличие буфера данных, через который проходят все пакеты в рамках потока данных. В случае, если поток превышает заданные ограничения, то пакеты сохраняются в буфере до того момента, пока не будет возможности их передать далее. Такой механизм представлен на рисунке 2.1б — трафик выше порога не отбрасывается, а сохраняется в буфере и передаётся далее с задержкой. Если поток достиг заданного ограничения и буфер полностью заполнен, входящие пакеты будут отброшены. Такой подход используется для типов трафика нечувствительного к задержкам. Кроме того, подобный механизм выравнивает утилизацию каналов связи, выравнивая поток передачи данных.
Исходя из этого, применяют два понятия, связанных с ограничением скорости: CIR и MIR. CIR (committed information rate — гарантированная скорость) — скорость, которая выделяется очереди в самом худшем случае, но гарантированно. MIR (maximum information rate — максимальная скорость) — скорость, которая выделяется очереди в лучшем случае, если эта полоса не используется другими очередями.
В синтаксисе RouterOS CIR обозначается как limit-at, а MIR — max-limit.
2.1 Использование Burst
Помимо механизмов ограничения скорости через CIR и MIR, в RouterOS существует возможность кратковременного увеличения полосы пропускания для очереди, называемая burst (импульс, взрыв).
Работа в режиме burst определяется тремя параметрами, значения которых устанавливает пользователь:
Результатом использования режима burst является значение текущей скорости передачи данных (actual-rate), выделяемая потоку данных.
Рассмотрим пример, в котором пользователь выполняет загрузку двух файлов, размер каждого из файлов 4 Мбайт (32 Мбит) (см. рисунок 2.2). Загрузка первого файла начинается на нулевой секунду, второго – на семнадцатой. На сетевом устройстве пользователя выполнена следующая конфигурация:
Рисунок 2.2 — Демонстрация работы burst-режима
По оси асбцисс отложены временные отрезки, а по оси ординат — пропускная способность. Проанализируем выделенную пользователю полосу канала поэтапно:
Таким образом, применение burst оказывается полезным для повышения кратковременной скорости, например при открытии веб-страниц, и повышает лояльность пользователей. Однако, для правильной работы burst, необходимо продумать его конфигурацию и иметь запас пропускной способности.
3. Hierarchical token bucket (HTB)
Организация очередей и их взаимосвязи в RouterOS выполнены с использованием логики алгоритма HTB (hierarchical token bucket — иерархическое распределение).
Основным достоинством HTB является возможность установки отношений между очередями и организация их в иерархическую структуру. Таким образом, между очередями могут быть установлены отношения «родительский-дочерний» с наследованием распределяемых ресурсов. В рамках алгоритма HTB выделяют понятия входящей очереди (inner queue) и конечной (leaf queue). Очередь, у которой есть хотя бы одна дочерняя очередь является входящей и она отвечает за распределение трафика, тогда как конечная, у которой нет дочерних, является потребителем трафика.
Для каждой из очередей могут быть заданы следующие параметры: CIR, MIR и приоритет. Приоритет будет использован только в том случае, если удовлетворены CIR для всех конечных очередей и осталась часть пропускной способности. Очередь обладающая большим приоритетом (8 — наименьший приоритет, 1 — наивысший приоритет) получит дополнительную пропускную способность в первую очередь. В случае, если приоритеты конечных очередей совпадают, пропускная способность сверх CIR будет распределяться между ними равномерно. Распределение доступной полосы сверх CIR будет выполнено только в случае, если для конечных очередей установлены значения приоритетов, при этом приоритет входящей очереди не берётся в расчёт.
При построении иерархии необходимо руководствоваться следующими принципами:
В официальной документации приведены несколько примеров распределения пропускной способности между очередями в соответствии с иерархией (https://wiki.mikrotik.com/wiki/Manual:HTB), разберём один из них (см. рисунок 3.1).
Рисунок 3.1 — Пример организации структуры очередей
Распределение пропускной способности будет выполняться в соответствии со следующим алгоритмом:
1. Очереди Queue03, Queue04, Queue05 резервируют по 2Мбит/с в соответствии со значениями CIR;
2. Очередь Queue02 резервирует 8 Мбит/с;
3. Поскольку Queue02 зарезервировала 8 Мбит/с из которых конечные очереди Queue04 и Queue05 суммарно потребляют 4 Мбит/с, то оставшиеся 4 Мбит/с должны быть распределены между ними. Для этого выполняется анализ установленных значений приоритетов и 4 Мбит/с выделяется очереди Queue04 (Queue04 более приоритетна, чем Queue05);
4. Распределена вся доступная полоса, установленная в качестве MIR для очереди Queue01: Queue03 получает 2 Мбит/с, Queue04 — 6 Мбит/с, Queue05 — 2 Мбит/с.
При работе с HTB следует руководствоваться следующим алгоритмом: на первом этапе необходимый трафик выделяется и маркируется, далее промаркированный трафик ассоциируется с одной из созданных очередей, и на последнем этапе очередь закрепляется за конкретным интерфейсом.
4. MikroTik Simple Queues
Как уже было упомянуто, одним из способов организации MikroTik QoS в RouterOS является настройка Simple Queues, конфигурация которого будет рассмотрена в этом разделе.
MikroTik Simple Queues является достаточно гибким инструментом, позволяющим быстро выполнить ограничение полосы для какого-то хоста, либо, используя комплексный подход, продумать структуру и выполнить конфигурацию для множества сетей и потоков данных.
Настройка простых очередей выглядит как набор правил и связанных с ними политик. Пакет, обрабатываемый блоком Simple Queues, последовательно проверяется на соответствие всем правилам до того момента, пока правило не сработает. После срабатывания, к пакету будут применены политики, определённые этой записью. Механизм проверки соответствия схож с механизмом в Filter, рассмотренным в другом цикле статей. Отсюда следует, что большое число правил приводит к росту нагрузки на аппаратные ресурсы маршрутизатора.
В простых правилах может быть использована маркировка пакетов, выполняемая в Mangle. На рисунке 4.1 представлена упрощённая схема прохождения пакетов в RouterOS. Обработка пакетов блоком Simple Queues выполняется на двух этапах: Input для входящих пакетов и Postrouting — для исходящих (см. рисунок 4.2). Важно отметить, что применение Simple Queues MikroTik является одним из последних этапов обработки, поэтому маркировка выполняется на любом из предшествующих ему этапов. Также, важно обратить внимание на то, что использование Fasttrack влияет на работу очередей, поэтому, в рамках демонстрационных примеров эта опция будет отключена.
Рисунок 4.1 — Простая схема прохождения пакетов в RouterOS
Рисунок 4.2 — Схема прохождения пакетов для цепочек Input и Postrouting в RouterOS
4.1 Параметры Simple Queues
Конфигурация простых правил выполняется в разделе /queue simple и при создании правил можно настроить следующие параметры: