Генератор PCQ для MikroTik
Поделите канал между всеми клиентами одной очередью Per Connection Queue: задайте скорость на клиента и общую скорость, а в ответ получите типы очередей и simple queue или queue tree.
Работает в браузере; введённые вами данные не покидают устройство
Создаёт синтаксис RouterOS v7 (подходит и для v6) для IPv4. Метод queue tree помечает соединения, которые клиенты локальной сети открывают в сторону WAN; остальной трафик идёт без ограничений. Параметры pcq-limit и pcq-total-limit остаются по умолчанию. MikroTik и RouterOS являются товарными знаками SIA Mikrotīkls. Этот инструмент независим и не связан с MikroTik и не одобрен компанией.
Как настроить PCQ на MikroTik
- Выберите метод: одна simple queue на подсеть локальной сети (проще всего) или queue tree с метками mangle (больше возможностей).
- Укажите скорость на клиента (или 0, чтобы делить общую скорость поровну), а также общую скорость отдачи и загрузки чуть ниже реальной скорости канала.
- Скопируйте скрипт или скачайте файл .rsc и убедитесь, что FastTrack отключён для ограничиваемого трафика.
Per Connection Queue на практике
PCQ — это тип очереди: он задаётся в разделе /queue type с kind=pcq, а затем его используют simple queue или queue tree. Параметр pcq-classifier определяет, что считать одним потоком: dst-address для загрузки, чтобы загрузка каждого клиента была отдельным потоком, и src-address для отдачи. RouterOS создаёт подпотоки на лету и удаляет их, когда они затихают, так что при появлении и уходе клиентов ничего поддерживать не нужно.
Результат определяют две настройки. pcq-rate ограничивает каждый поток; если оставить 0, потоки просто делят поровну то, что позволяет max-limit очереди. Значение max-limit очереди с PCQ должно быть немного ниже реальной пропускной способности канала: PCQ может честно делить полосу только тогда, когда пакеты ждут в очереди на маршрутизаторе, а не в модеме выше по цепочке.
Simple queue или queue tree?
Метод simple queue не требует маркировки: одна очередь с подсетью локальной сети в качестве target и queue=upload-type/download-type. Метод queue tree использует mangle, чтобы пометить соединения из LAN в WAN, и две очереди с parent=global; он не ограничивает трафик между локальными сетями и служит отправной точкой для классов приоритета. В любом случае настройки burst для каждого клиента относятся к simple queue; сравните их с помощью инструментов Генератор Simple Queue для MikroTik и Калькулятор Burst для MikroTik.
Вопросы и ответы
Что делает PCQ?
Тип очереди PCQ раскладывает пакеты по подочередям с помощью классификатора, как правило адреса клиента, и обслуживает подочереди по кругу. Если задан pcq-rate, скорость каждой подочереди ограничена этим значением; при pcq-rate 0 лимит родительской очереди делится поровну между клиентами, активными в данный момент. Так одна очередь даёт честную долю сотням клиентов, хотя иначе понадобились бы сотни simple queue.
Почему загрузка классифицируется по dst-address, а отдача по src-address?
Пакеты загрузки идут к клиенту, поэтому адрес клиента в них является адресом назначения; пакеты отдачи идут от клиента, и он в них источник. Если поменять их местами, все клиенты попадут в одну подочередь по адресам удалённых серверов.
Почему в queue tree используются parent=global и цепочка forward?
Пакеты отдачи нужно классифицировать до того, как source NAT заменит адрес клиента адресом WAN, а глобальная очередь отрабатывает до source NAT. Маркировка в цепочке forward видит пакеты загрузки уже после того, как destination NAT вернул адрес клиента. Если маркировать на интерфейсе WAN, вся отдача окажется в одной подочереди.
Для чего нужна маска адреса?
При /32 каждый адрес образует отдельную подочередь. WISP, который выдаёт каждому абоненту небольшую подсеть, например /29, может задать маску 29, и тогда вся подсеть будет делить одну подочередь и одну скорость.
PCQ ничего не меняет. Что проверить?
Сначала FastTrack: пакеты с FastTrack обходят mangle и все очереди. Затем общие значения: если max-limit выше, чем реально даёт линия, очередь никогда не заполняется, и очередь формирует оборудование провайдера, а не ваш маршрутизатор.
Отправляется ли моя конфигурация куда-либо?
Нет. Всё создаётся в вашем браузере.