Выделение отдельной QoS очереди для обработки приоритетного трафика и очереди для отправки пакетов
Выделение отдельной QoS очереди для обработки приоритетного трафика и очереди для отправки пакетов по направлениям
По умолчанию работают две пары очередей (на обработку и отправку пакетов) - для приоритетных пакетов и неприоритетных пакетов. Сначала на обработку и отправку выбираются приоритетные пакеты, и только при их отсутствии - неприоритетные. Приоритетная очередь по умолчанию включена.
В случае необходимости отключения отдельной Qos-очереди для обработки приоритетного трафика необходимо для параметра IPsec драйвера use_priority_queue в конфигурационном файле /etc/modprobe.d/vpndrvr.conf указать соответствующее значение.
Помимо выделения отдельной очереди для обработки приоритетного трафика, по умолчанию создаются раздельные очереди для входящих и исходящих пакетов. Данная настройка регулируется параметром use_inout_sendqs конфигурационного файла /etc/modprobe.d/vpndrvr.conf. Таким образом, при значении параметра use_priority_queue=1 и use_inout_sendqs=1, создаются 4 очереди на отправку пакетов: отдельно по приоритетам и по направлениям. Раздельные по направлениям очереди на отправку позволяют осуществлять одновременную отправку пакетов в разные направления, а уже обработанные пакеты одного направления не ждут готовности пакетов другого направления. Расходы на обслуживание очередей по направлениям невелики, поэтому рекомендуется использовать значение параметра use_inout_sendqs по умолчанию.
Размер очереди на обработку регулируется параметром pq_thread_q_size утилиты drv_mgr. Для приоритетных пакетов всегда используется полный лимит размера очереди. На производительность обработки трафика влияют следующие параметры утилиты drv_mgr: pq_thread_q_size, pq_send_q_size, pq_force_ordering, pq_tos_mask, pq_drop_low_pri_ifs, pq_drop_thres.
Наглядная схема описания работы при наличии четырех очередей (приоритетной и не приоритетной, для входящих и исходящих пакетов) представлена Рисунок 1. Логика работы:
- Сначала пакет попадает на сетевой LAN-интерфейс;
- Далее в блоке «предварительная умолчательная обработка пакетов драйвером «С-Терра»» на основе параметра pq_tos_mask утилиты drv_mgr определяется, является ли пакет приоритетным или нет;
- В зависимости от того, приоритетный пакет или нет, после пакет попадает в приоритетную или неприоритетную очередь на обработку;
- Обработка пакета осуществляется в блоке «обработка пакетов драйвером «С-Терра»» (межсетевое экранирование, маркирование, шифрование)», где производится обработка всех пакетов (в первую очередь, приоритетных).
Аналогичная обработка производится и в блоке «выходная обработка пакетов (pkt out)».
Логика работы при включенной предварительной классификации:
В рамках блока «предварительная умолчательная обработка пакетов драйвером «С-Терра»» также может выполняться предварительная классификация сетевых пакетов на основе записей кэша. Более подробное описание см. в разделе «Использование предварительной классификации». Логика работы при включенной предварительной классификации:
- Сначала пакет попадает на сетевой LAN-интерфейс;
- Осуществляется предварительная классификация пакета. В блоке «обработка пакетов драйвером «С-Терра» (межсетевое экранирование, маркирование, шифрование)» определяется есть ли правило маркирования для пакета. В случае нахождения такого, пакету выставляется значение ToS-байта согласно найденному правилу в политике безопасности.
- Далее в блоке «предварительная умолчательная обработка пакетов драйвером «С-Терра»» на основе параметра pq_tos_mask утилиты drv_mgr определяется является ли пакет приоритетным или нет;
- В зависимости от того, приоритетный пакет или нет, после пакет попадает в приоритетную или неприоритетную очередь на обработку;
- Обработка пакета осуществляется в блоке «обработка пакетов драйвером «С-Терра»» (межсетевое экранирование, маркирование, шифрование)», где производится обработка всех пакетов (в первую очередь, приоритетных).

Рисунок 1 Схема работы приоритизации