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

Политика Priority Queue

Обзор

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

Приоритет класса задается его идентификатором (от 1 до 32768): чем меньше идентификатор, тем выше приоритет. Для политики обязательно задается трафик по умолчанию (default): к нему относится трафик, не подошедший ни под один класс. Внутри класса работает очередь, дисциплина которой выбирается параметром queue-type (по умолчанию — FQ-CoDel).

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

Важно

В текущей версии ПО Факел не применяется параметр 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 (см. Ограничения).

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

Голосовой трафик передается первым, затем трафик SSH, затем остальной трафик.

Шаг

Команда

Описание

1

set qos policy priority-queue PRIO-OUT class 1 match VOICE ip dscp EF

Относит трафик с меткой EF к классу 1 с наивысшим приоритетом

2

set qos policy priority-queue PRIO-OUT class 2 match SSH ip destination port 22

Относит трафик на порт 22 к классу 2

3

set qos policy priority-queue PRIO-OUT default queue-type fq-codel

Создает для остального трафика очередь FQ-CoDel

4

set qos interface eth0 egress PRIO-OUT

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

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

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


qos policy priority-queue <policy-name>

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

Синтаксис:

  • set qos policy priority-queue <policy-name>

  • delete qos policy priority-queue <policy-name>

  • show qos policy priority-queue

Аргументы:

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

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


qos policy priority-queue <policy-name> description <description>

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

Синтаксис:

  • set qos policy priority-queue <policy-name> description <description>

  • delete qos policy priority-queue <policy-name> description <description>

  • show qos policy priority-queue <policy-name> description

Аргументы:

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

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

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


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

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

Синтаксис:

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

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

  • show qos policy priority-queue <policy-name> class

Аргументы:

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

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

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


qos policy priority-queue <policy-name> class <class-id> description <description>

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

Синтаксис:

  • set qos policy priority-queue <policy-name> class <class-id> description <description>

  • delete qos policy priority-queue <policy-name> class <class-id> description <description>

  • show qos policy priority-queue <policy-name> class <class-id> description

Аргументы:

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

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

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

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


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

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

Синтаксис:

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

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

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

Аргументы:

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

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

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

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


qos policy priority-queue <policy-name> class <class-id> flows <flows>

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

Синтаксис:

  • set qos policy priority-queue <policy-name> class <class-id> flows <flows>

  • delete qos policy priority-queue <policy-name> class <class-id> flows <flows>

  • show qos policy priority-queue <policy-name> class <class-id> flows

Аргументы:

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

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

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

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


qos policy priority-queue <policy-name> class <class-id> interval <interval>

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

Синтаксис:

  • set qos policy priority-queue <policy-name> class <class-id> interval <interval>

  • delete qos policy priority-queue <policy-name> class <class-id> interval <interval>

  • show qos policy priority-queue <policy-name> class <class-id> interval

Аргументы:

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

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

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

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


qos policy priority-queue <policy-name> class <class-id> target <target>

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

Синтаксис:

  • set qos policy priority-queue <policy-name> class <class-id> target <target>

  • delete qos policy priority-queue <policy-name> class <class-id> target <target>

  • show qos policy priority-queue <policy-name> class <class-id> target

Аргументы:

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

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

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

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


qos policy priority-queue <policy-name> class <class-id> codel-quantum <codel-quantum>

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

Синтаксис:

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

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

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

Аргументы:

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

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

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

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


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

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

Синтаксис:

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

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

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

Аргументы:

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

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

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

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


qos policy priority-queue <policy-name> default

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

Синтаксис:

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

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

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

Аргументы:

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

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


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

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

Синтаксис:

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

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

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

Аргументы:

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

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

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


qos policy priority-queue <policy-name> default flows <flows>

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

Синтаксис:

  • set qos policy priority-queue <policy-name> default flows <flows>

  • delete qos policy priority-queue <policy-name> default flows <flows>

  • show qos policy priority-queue <policy-name> default flows

Аргументы:

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

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

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


qos policy priority-queue <policy-name> default interval <interval>

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

Синтаксис:

  • set qos policy priority-queue <policy-name> default interval <interval>

  • delete qos policy priority-queue <policy-name> default interval <interval>

  • show qos policy priority-queue <policy-name> default interval

Аргументы:

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

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

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


qos policy priority-queue <policy-name> default target <target>

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

Синтаксис:

  • set qos policy priority-queue <policy-name> default target <target>

  • delete qos policy priority-queue <policy-name> default target <target>

  • show qos policy priority-queue <policy-name> default target

Аргументы:

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

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

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


qos policy priority-queue <policy-name> default codel-quantum <codel-quantum>

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

Синтаксис:

  • set qos policy priority-queue <policy-name> default codel-quantum <codel-quantum>

  • delete qos policy priority-queue <policy-name> default codel-quantum <codel-quantum>

  • show qos policy priority-queue <policy-name> default codel-quantum

Аргументы:

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

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

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


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

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

Синтаксис:

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

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

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

Аргументы:

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

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

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