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

Политика Fair Queue

Обзор

Дисциплина очередей: Stochastic Fairness Queuing (SFQ).
Применяется к: исходящему трафику.

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

Для распределения трафика по очередям политика Fair Queue использует классификатор, основанный на адресе отправителя, адресе получателя и номере порта отправителя. Алгоритм распределения использует специальные хэш-корзины. Каждый пакет должен принадлежать уникальному потоку. Поскольку несколько потоков могут попасть в одну и ту же хэш-корзину, алгоритм хэширования задействуется через определенные интервалы времени, поэтому преобладание одного потока над другим возможно, но только в течение некоторого времени. Однако при использовании алгоритма хэширования возможно переупорядочение пакетов.

При завершении очереди каждая хэш-корзина с данными используется в кольцевом порядке следования.

Один из вариантов использования политики Fair Queue - снижение эффективности атак типа DoS.

Примечание

Политика Fair Queue - политика без шейпинга, поэтому она предназначена для случая, когда исходящий интерфейс перегружается трафиком. Если полоса пропускания свободна, очередь не накапливается и политика не оказывает эффекта. Значение fair-queue предназначено для классов политики Shaper: шейпер ограничивает скорость класса, и очередь класса должна распределяться между потоками.

Примечание

Значение fair-queue параметра queue-type принимается командной строкой, но в текущей версии ПО Факел очередь не создается (см. Ограничения).

Выбор дисциплины

Политика Fair Queue не является самостоятельной политикой обработки трафика: в разделе конфигурации qos policy нет типа политики fair-queue. Дисциплина выбирается как тип очереди (параметр queue-type) класса политики Shaper или Priority Queue, а также трафика по умолчанию (default) этих политик:

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

Максимальное количество пакетов, ожидающих обработки в очереди, задается параметром queue-limit того же класса или трафика по умолчанию. Параметр принимает значения от 1 до 4294967295. Любые другие пакеты будут отброшены. Параметр относится к классу политики Shaper, а не к очереди fair-queue, которая в текущей версии ПО Факел не создается; передается ли значение в FVE, не подтверждено (см. Ограничения).

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

Описание остальных команд политики Shaper приведено в разделе Политика Shaper, параметры класса перечислены в разделе Классы и трафик по умолчанию.

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

Далее представлен пример использования политики Fair Queue, встроенной в трафик по умолчанию политики Shaper. Политика FAIR-QUEUE-SHAPER применяется к исходящему трафику интерфейса eth0.

Предупреждение

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

Шаг

Команда

Описание

1

set qos policy shaper FAIR-QUEUE-SHAPER bandwidth 100mbit

Задает для политики FAIR-QUEUE-SHAPER полосу пропускания 100 Мбит/с

2

set qos policy shaper FAIR-QUEUE-SHAPER default bandwidth 100mbit

Задает для трафика по умолчанию гарантированную полосу пропускания 100 Мбит/с

3

set qos policy shaper FAIR-QUEUE-SHAPER default queue-type fair-queue

Встраивает политику Fair Queue в трафик по умолчанию

4

set qos policy shaper FAIR-QUEUE-SHAPER default queue-limit 1000

Ограничивает очередь трафика по умолчанию значением 1000 пакетов

5

set qos interface eth0 egress FAIR-QUEUE-SHAPER

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