Документация: ПО Факел — разрабатываемая версия
Политика Fair Queue¶
Обзор¶
Политика 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 |
Задает для политики |
2 |
set qos policy shaper |
Задает для трафика по умолчанию гарантированную полосу пропускания 100 Мбит/с |
3 |
set qos policy shaper |
Встраивает политику Fair Queue в трафик по умолчанию |
4 |
set qos policy shaper |
Ограничивает очередь трафика по умолчанию значением 1000 пакетов |
5 |
set qos interface |
Применяет политику |