Документация: ПО Факел — разрабатываемая версия

Политика Shaper

Обзор

Политика Shaper ограничивает исходящий трафик интерфейса заданной полосой пропускания и распределяет ее между классами. Каждому классу гарантируется его полоса пропускания (bandwidth); свободную полосу политики класс может занимать до значения ceiling. Трафик, не подошедший ни под один класс, обрабатывается как трафик по умолчанию (default).

Внутри класса и для трафика по умолчанию работает очередь, дисциплина которой выбирается параметром queue-type: FQ-CoDel (по умолчанию) или очередь с приоритетами.

Политика реализована иерархическим шейпером (HTB) плоскости передачи данных FVE и применяется только к исходящему трафику (egress).

Важно

В текущей версии ПО Факел не применяются параметры priority и codel-quantum; передача параметра queue-limit в FVE не подтверждена. Группы правил match-group применяются, но условия max-length, tcp, ether, mark и vif в них не учитываются. Сводный список — на странице Ограничения.

Состояние примененных политик отображает команда show qos; команды show qos shaper и show qos cake interface <interface> читают дисциплины очередей ядра Linux и не отображают политики FVE (см. Ограничения).

Пример настройки

В примере исходящий трафик интерфейса eth0 ограничивается полосой 50 Мбит/с: голосовому трафику гарантируется 10 Мбит/с, трафику сети 192.168.30.0/24 — 5 Мбит/с.

Шаг

Команда

Описание

1

set qos policy shaper WAN-OUT bandwidth 50mbit

Создает политику WAN-OUT с полосой пропускания 50 Мбит/с

2

set qos policy shaper WAN-OUT class 10 bandwidth 10mbit

Гарантирует классу 10 полосу 10 Мбит/с

3

set qos policy shaper WAN-OUT class 10 match VOICE ip dscp EF

Относит к классу 10 трафик с меткой DSCP EF

4

set qos policy shaper WAN-OUT class 10 queue-type fq-codel

Создает для класса 10 очередь FQ-CoDel

5

set qos policy shaper WAN-OUT class 20 bandwidth 5mbit

Гарантирует классу 20 полосу 5 Мбит/с

6

set qos policy shaper WAN-OUT class 20 ceiling 25mbit

Разрешает классу 20 занимать свободную полосу до 25 Мбит/с

7

set qos policy shaper WAN-OUT class 20 match LAN30 ip source address 192.168.30.0/24

Относит к классу 20 трафик из сети 192.168.30.0/24

8

set qos policy shaper WAN-OUT default bandwidth 5mbit

Гарантирует трафику по умолчанию полосу 5 Мбит/с

9

set qos policy shaper WAN-OUT default ceiling 50mbit

Разрешает трафику по умолчанию занимать свободную полосу до 50 Мбит/с

10

set qos interface eth0 egress WAN-OUT

Применяет политику к исходящему трафику интерфейса eth0

Список команд

Режим «Конфигурирование»


qos policy shaper <policy-name>

Описание:
Создает политику Shaper с заданным именем.

Синтаксис:

  • set qos policy shaper <policy-name>

  • delete qos policy shaper <policy-name>

  • show qos policy shaper

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов.

Режим: «Конфигурирование».


qos policy shaper <policy-name> description <description>

Описание:
Добавляет описание политики.

Синтаксис:

  • set qos policy shaper <policy-name> description <description>

  • delete qos policy shaper <policy-name> description <description>

  • show qos policy shaper <policy-name> description

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <description> — описание. Формат: строка.

Режим: «Конфигурирование».


qos policy shaper <policy-name> bandwidth <bandwidth>

Описание:
Задает полосу пропускания политики — общую скорость, которую классы делят между собой.

Синтаксис:

  • set qos policy shaper <policy-name> bandwidth <bandwidth>

  • delete qos policy shaper <policy-name> bandwidth <bandwidth>

  • show qos policy shaper <policy-name> bandwidth

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <bandwidth> — полоса пропускания. Формат: число с единицей измерения bit, kbit, mbit, gbit или tbit (например, 50mbit); число без единицы измерения — килобиты в секунду (см. Единицы измерения).

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id>

Описание:
Создает класс трафика с заданным идентификатором. Трафик относится к классу по правилам классификации (см. Классификация трафика).

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id>

  • delete qos policy shaper <policy-name> class <class-id>

  • show qos policy shaper <policy-name> class

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768.

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> description <description>

Описание:
Добавляет описание класса.

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> description <description>

  • delete qos policy shaper <policy-name> class <class-id> description <description>

  • show qos policy shaper <policy-name> class <class-id> description

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <description> — описание. Формат: строка.

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> bandwidth <bandwidth>

Описание:
Задает гарантированную полосу пропускания класса. Параметр обязателен для каждого класса.

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> bandwidth <bandwidth>

  • delete qos policy shaper <policy-name> class <class-id> bandwidth <bandwidth>

  • show qos policy shaper <policy-name> class <class-id> bandwidth

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <bandwidth> — полоса пропускания. Формат: число с единицей измерения bit, kbit, mbit, gbit или tbit (например, 50mbit); число без единицы измерения — килобиты в секунду (см. Единицы измерения).

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> ceiling <ceiling>

Описание:
Задает максимальную скорость класса: если у политики есть свободная полоса, класс может занять ее до этого значения. По умолчанию равна полосе пропускания класса.

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> ceiling <ceiling>

  • delete qos policy shaper <policy-name> class <class-id> ceiling <ceiling>

  • show qos policy shaper <policy-name> class <class-id> ceiling

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <ceiling> — максимальная скорость. Формат: число с единицей измерения bit, kbit, mbit, gbit или tbit (например, 50mbit); число без единицы измерения — килобиты в секунду (см. Единицы измерения).

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> priority <priority>

Описание:
Задает приоритет класса при распределении свободной полосы пропускания. В текущей версии ПО Факел параметр не применяется (см. Ограничения).

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> priority <priority>

  • delete qos policy shaper <policy-name> class <class-id> priority <priority>

  • show qos policy shaper <policy-name> class <class-id> priority

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <priority> — приоритет. Формат: целое число. Диапазон значений: от 0 до 20.

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> set-dscp <set-dscp>

Описание:
Заменяет метку DSCP в IP-заголовке пакетов класса на заданную. Именованные метки DSCP в текущей версии ПО Факел передаются в FVE как значения байта ToS, поэтому результат для имен не подтвержден (см. Ограничения).

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> set-dscp <set-dscp>

  • delete qos policy shaper <policy-name> class <class-id> set-dscp <set-dscp>

  • show qos policy shaper <policy-name> class <class-id> set-dscp

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <set-dscp> — метка DSCP: 0–63 или имя: default, reliability, throughput, lowdelay, priority, immediate, flash, flash-override, critical, internet, network, AF11–AF43, CS1–CS7, EF (см. Метки DSCP).

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> queue-type <queue-type>

Описание:
Выбирает дисциплину очереди для трафика класса.

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> queue-type <queue-type>

  • delete qos policy shaper <policy-name> class <class-id> queue-type <queue-type>

  • show qos policy shaper <policy-name> class <class-id> queue-type

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <queue-type> — дисциплина очереди. Возможные значения: fq-codel — справедливая очередь с алгоритмом CoDel; priority — очереди с приоритетами; drop-tail и fair-queue — принимаются, но очередь не создается; random-detect — приводит к ошибке при фиксации конфигурации (см. Ограничения). Значение по умолчанию: fq-codel.

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> flows <flows>

Описание:
Задает количество потоков, на которые распределяются пакеты в очереди FQ-CoDel. Применяется, если для очереди выбрана дисциплина fq-codel (значение по умолчанию).

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> flows <flows>

  • delete qos policy shaper <policy-name> class <class-id> flows <flows>

  • show qos policy shaper <policy-name> class <class-id> flows

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <flows> — количество потоков. Формат: целое число. Диапазон значений: от 1 до 65536. Значение по умолчанию: 1024.

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> interval <interval>

Описание:
Задает интервал измерения задержки в очереди FQ-CoDel в миллисекундах. Применяется, если для очереди выбрана дисциплина fq-codel (значение по умолчанию).

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> interval <interval>

  • delete qos policy shaper <policy-name> class <class-id> interval <interval>

  • show qos policy shaper <policy-name> class <class-id> interval

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <interval> — интервал в миллисекундах. Формат: целое число. Значение по умолчанию: 100.

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> target <target>

Описание:
Задает допустимую минимальную задержку в очереди FQ-CoDel в миллисекундах. Применяется, если для очереди выбрана дисциплина fq-codel (значение по умолчанию).

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> target <target>

  • delete qos policy shaper <policy-name> class <class-id> target <target>

  • show qos policy shaper <policy-name> class <class-id> target

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <target> — задержка в миллисекундах. Формат: целое число. Значение по умолчанию: 5.

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> codel-quantum <codel-quantum>

Описание:
Задает квант (дефицит) алгоритма справедливой очереди FQ-CoDel в байтах. В текущей версии ПО Факел параметр не применяется (см. Ограничения).

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> codel-quantum <codel-quantum>

  • delete qos policy shaper <policy-name> class <class-id> codel-quantum <codel-quantum>

  • show qos policy shaper <policy-name> class <class-id> codel-quantum

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <codel-quantum> — квант в байтах. Формат: целое число. Диапазон значений: от 0 до 1048576. Значение по умолчанию: 1514.

Режим: «Конфигурирование».


qos policy shaper <policy-name> class <class-id> queue-limit <queue-limit>

Описание:
Задает максимальный размер очереди в пакетах. В текущей версии ПО Факел передача параметра в FVE не подтверждена (см. Ограничения).

Синтаксис:

  • set qos policy shaper <policy-name> class <class-id> queue-limit <queue-limit>

  • delete qos policy shaper <policy-name> class <class-id> queue-limit <queue-limit>

  • show qos policy shaper <policy-name> class <class-id> queue-limit

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <class-id> — идентификатор класса. Формат: целое число. Диапазон значений: от 2 до 32768;

  • <queue-limit> — размер очереди. Формат: целое число. Диапазон значений: от 1 до 4294967295.

Режим: «Конфигурирование».


qos policy shaper <policy-name> default

Описание:
Задает параметры трафика по умолчанию — трафика, не подошедшего ни под один класс.

Синтаксис:

  • set qos policy shaper <policy-name> default

  • delete qos policy shaper <policy-name> default

  • show qos policy shaper <policy-name> default

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов.

Режим: «Конфигурирование».


qos policy shaper <policy-name> default bandwidth <bandwidth>

Описание:
Задает гарантированную полосу пропускания трафика по умолчанию — трафика, не подошедшего ни под один класс. Параметр обязателен.

Синтаксис:

  • set qos policy shaper <policy-name> default bandwidth <bandwidth>

  • delete qos policy shaper <policy-name> default bandwidth <bandwidth>

  • show qos policy shaper <policy-name> default bandwidth

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <bandwidth> — полоса пропускания. Формат: число с единицей измерения bit, kbit, mbit, gbit или tbit (например, 50mbit); число без единицы измерения — килобиты в секунду (см. Единицы измерения).

Режим: «Конфигурирование».


qos policy shaper <policy-name> default ceiling <ceiling>

Описание:
Задает максимальную скорость трафика по умолчанию. По умолчанию равна его полосе пропускания.

Синтаксис:

  • set qos policy shaper <policy-name> default ceiling <ceiling>

  • delete qos policy shaper <policy-name> default ceiling <ceiling>

  • show qos policy shaper <policy-name> default ceiling

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <ceiling> — максимальная скорость. Формат: число с единицей измерения bit, kbit, mbit, gbit или tbit (например, 50mbit); число без единицы измерения — килобиты в секунду (см. Единицы измерения).

Режим: «Конфигурирование».


qos policy shaper <policy-name> default priority <priority>

Описание:
Задает приоритет трафика по умолчанию при распределении свободной полосы пропускания. В текущей версии ПО Факел параметр не применяется (см. Ограничения).

Синтаксис:

  • set qos policy shaper <policy-name> default priority <priority>

  • delete qos policy shaper <policy-name> default priority <priority>

  • show qos policy shaper <policy-name> default priority

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <priority> — приоритет. Формат: целое число. Диапазон значений: от 0 до 7.

Режим: «Конфигурирование».


qos policy shaper <policy-name> default set-dscp <set-dscp>

Описание:
Заменяет метку DSCP в IP-заголовке пакетов трафика по умолчанию на заданную. Именованные метки DSCP в текущей версии ПО Факел передаются в FVE как значения байта ToS, поэтому результат для имен не подтвержден (см. Ограничения).

Синтаксис:

  • set qos policy shaper <policy-name> default set-dscp <set-dscp>

  • delete qos policy shaper <policy-name> default set-dscp <set-dscp>

  • show qos policy shaper <policy-name> default set-dscp

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <set-dscp> — метка DSCP: 0–63 или имя: default, reliability, throughput, lowdelay, priority, immediate, flash, flash-override, critical, internet, network, AF11–AF43, CS1–CS7, EF (см. Метки DSCP).

Режим: «Конфигурирование».


qos policy shaper <policy-name> default queue-type <queue-type>

Описание:
Выбирает дисциплину очереди для трафика по умолчанию.

Синтаксис:

  • set qos policy shaper <policy-name> default queue-type <queue-type>

  • delete qos policy shaper <policy-name> default queue-type <queue-type>

  • show qos policy shaper <policy-name> default queue-type

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <queue-type> — дисциплина очереди. Возможные значения: fq-codel — справедливая очередь с алгоритмом CoDel; priority — очереди с приоритетами; drop-tail и fair-queue — принимаются, но очередь не создается; random-detect — приводит к ошибке при фиксации конфигурации (см. Ограничения). Значение по умолчанию: fq-codel.

Режим: «Конфигурирование».


qos policy shaper <policy-name> default flows <flows>

Описание:
Задает количество потоков, на которые распределяются пакеты в очереди FQ-CoDel. Применяется, если для очереди выбрана дисциплина fq-codel (значение по умолчанию).

Синтаксис:

  • set qos policy shaper <policy-name> default flows <flows>

  • delete qos policy shaper <policy-name> default flows <flows>

  • show qos policy shaper <policy-name> default flows

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <flows> — количество потоков. Формат: целое число. Диапазон значений: от 1 до 65536. Значение по умолчанию: 1024.

Режим: «Конфигурирование».


qos policy shaper <policy-name> default interval <interval>

Описание:
Задает интервал измерения задержки в очереди FQ-CoDel в миллисекундах. Применяется, если для очереди выбрана дисциплина fq-codel (значение по умолчанию).

Синтаксис:

  • set qos policy shaper <policy-name> default interval <interval>

  • delete qos policy shaper <policy-name> default interval <interval>

  • show qos policy shaper <policy-name> default interval

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <interval> — интервал в миллисекундах. Формат: целое число. Значение по умолчанию: 100.

Режим: «Конфигурирование».


qos policy shaper <policy-name> default target <target>

Описание:
Задает допустимую минимальную задержку в очереди FQ-CoDel в миллисекундах. Применяется, если для очереди выбрана дисциплина fq-codel (значение по умолчанию).

Синтаксис:

  • set qos policy shaper <policy-name> default target <target>

  • delete qos policy shaper <policy-name> default target <target>

  • show qos policy shaper <policy-name> default target

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <target> — задержка в миллисекундах. Формат: целое число. Значение по умолчанию: 5.

Режим: «Конфигурирование».


qos policy shaper <policy-name> default codel-quantum <codel-quantum>

Описание:
Задает квант (дефицит) алгоритма справедливой очереди FQ-CoDel в байтах. В текущей версии ПО Факел параметр не применяется (см. Ограничения).

Синтаксис:

  • set qos policy shaper <policy-name> default codel-quantum <codel-quantum>

  • delete qos policy shaper <policy-name> default codel-quantum <codel-quantum>

  • show qos policy shaper <policy-name> default codel-quantum

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <codel-quantum> — квант в байтах. Формат: целое число. Диапазон значений: от 0 до 1048576. Значение по умолчанию: 1514.

Режим: «Конфигурирование».


qos policy shaper <policy-name> default queue-limit <queue-limit>

Описание:
Задает максимальный размер очереди в пакетах. В текущей версии ПО Факел передача параметра в FVE не подтверждена (см. Ограничения).

Синтаксис:

  • set qos policy shaper <policy-name> default queue-limit <queue-limit>

  • delete qos policy shaper <policy-name> default queue-limit <queue-limit>

  • show qos policy shaper <policy-name> default queue-limit

Аргументы:

  • <policy-name> — имя политики. Формат: строка из латинских букв, цифр, символов «-» и «_», начинается с буквы или цифры. Имя должно быть уникальным среди политик всех типов;

  • <queue-limit> — размер очереди. Формат: целое число. Диапазон значений: от 1 до 4294967295.

Режим: «Конфигурирование».