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

Приоритеты протоколов загружаются из файла /etc/dpi/protocols.dscp

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

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

service fastdpi reload

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

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

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

Полный список протоколов. Значение DSCP задается в числовом (10-,16- или 8-ричном) формате или с помощью текстовой аббревиатуры.

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

drop - пакеты дальше передавать не нужно (их нужно отбрасывать)

keep - значение приоритета изменять не нужно, т.е. сохранить его текущее значение (обычно 0)

default - означает "для всех остальных протоколов" и его позволяет существенно упростить и сократить процесс создания конфигурационного файла

Для того чтобы применение 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

где

cs0 соответствует приоритету 0, class0 соответственно

cs1 - приоритету 1, class1

cs7 - приоритету 7, низший класс

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

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 - она атомарная, не используйте копирование