Содержание

Назначение приоритетов в зависимости от протокола

Приоритизация по протоколам используется как для внутренней обработки трафика на DPI, так и для Настройка разметки трафика. Наследование и преобразование DSCP.
Приоритеты по протоколам описываются глобально на DPI устройство через файл /etc/dpi/protocols.dscp. Возможно задать уникальную приоритизацию на абонента через 18 услугу, описание в разделе: Полисинг по сессии и переопределение классов трафика

Подготовка файла состоит из двух этапов:
Создается тестовый файл со списком протоколов с приоритетами, который затем конвертируется во внутренний формат с помощью специальной утилиты.

Для применения изменений достачно перечитать конфигурацию DPI командой

service fastdpi reload

Формат файла со списком протоколов и приоритетов:

Каждая строка файла представляется в формате имя_протокола <пробел> значение_dscp, например:

dns         0x3F
skype       drop
compressnet 010
ftp         keep
http        cs0
default     keep

Ключевое слово означает:

Для того чтобы применение drop произошло только после разбора TLS и определения SNI, необходимо добавить в fastdpi.conf параметр smartdrop = 1. Это означает: если для протокола задан drop, то он будет отложен, пока не будет разобран TLS или ошибка разбора TLS. Параметр горячий, достаточно reload.

Настройка разметки

1. Создаем файл protocols.txt c описанием групп протоколов, которые мы хотим выделить из общего трафика, и назначенных им приоритетов (классов):

dns cs0
ICMP cs0
http cs0
https cs0
QUIC cs1
default cs2
bittorrent cs7

где

Данная разметка учитывается в правилах полисинга по классам.

2. Конвертируем его в формат dscp, который понимает fastDPI

cat protocols.txt|lst2dscp /etc/dpi/protocols.dscp
Есть возможность во входных файлах утилиты lst2dscp добавлять комментарии (#) и пустые линии.

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

service fastdpi reload

Перенос настроек в рабочий каталог в случае сохранения backup конфигурации, необходимо сделать reload после переноса:

mv protocols.dscp  /etc/dpi/protocols.dscp
Используйте только команду mv - она атомарная, не используйте копирование