Это старая версия документа!
Список изменений и обновление СКАТ
Инструкция по обновлению
Если у вас установлена версия CentOS 6.x или CentOS 8.x, то однократно переключите репозиторий командой:
sed -i -e '/^mirrorlist=http:\/\//d' -e 's/^# *baseurl=http:\/\/mirror.centos.org/baseurl=http:\/\/vault.centos.org/' /etc/yum.repos.d/CentOS-*.repo
и далее производите обновления командой:
yum update fastdpi
Module yaml error, то следует обновить модуль dnf upgrade libmodulemd.
После обновления выполните рестарт DPI:
service fastdpi restart
и других зависимых процессов (PCRF/Radius), но только если они реально используются и их конфигурация валидна:
service fastpcrf restart service fdpi_radius restart
При необходимости можно обновить компоненты операционной системы. Не проводите обновление версии ядра и зависимых от него утилит!
Для CentOS 6.x:
yum --exclude=kernel*,util-linux-ng,libuuid,libblkid update
Для CentOS 8.x:
yum update
Пользователям, эксплуатирующим DPI на виртуальных машинах, старых процессорах (2009 года выпуска) и старых процессорах AMD (до Ryzen):
Выполните перед обновлением команду:
touch /etc/dpi/noprioadj
и процесс DPI будет запускаться с обычным (не realtime) приоритетом, что существенно снизит потребление системных (sys) ресурсов CPU, но немного увеличит latency на платформе.
Обновление платформы DPI до версии 13.0 Congo
13.0 Congo 1)
Проверить текущую установленную версию можно командой:
yum info fastdpi
Откат на 12.4:
yum downgrade fastdpi-12.4-0 fastpcrf-12.4-0
После обновления или смены версии требуется рестарт сервиса:
service fastdpi restart
Если используются PCRF и/или Radius, их тоже надо рестартовать. Для рестарта PCRF предпочтителен следующий порядок:
service fastdpi stop service fastpcrf restart service fastdpi start
Не проводите обновления ядра Linux. В новых версиях ядра может быть нарушена бинарная совместимость с Kernel ABI и сетевой драйвер после обновления не загрузится. Если вы все-таки произвели обновление, то на время решения проблемы настройте в загрузчике GRUB загрузку прежней версии ядра: в файле
/etc/grub.conf установите параметр default=1.
Если при обновлении появляется сообщение, что обновление не найдено или возникают проблемы с зависимостями, то перед обновлением выполните команду:
yum clean all
Изменения в версии 13.0
- [LAG] Поддержка LACP. Описание
- В описании LAG должны быть указаны только базовые девайсы для On-Stick. Смешение On-Stick и обычных девайсов в одном LAG не допускается. Описание
- [LAG] Применение балансировки к исходящему трафику LAG. Описание
Тип применяемого алгоритма балансировки задается параметромlag.balance_algo. Допустимые значения:0— балансировка по внутреннемуsession_id(это балансировка по умолчанию). В качестве хеша беретсяsession_id1— без балансировки — пакет будет отправлен в парный порт моста2— хеш отflow key <srcIP, dstIP, srcPort, dstPort, proto>. Если flow нет — балансируем поsession_id
Дополнительные параметры конфигурации хеша в секцииlag:hash_seed,hash_offset,hash_bits
Сколько значащих бит берем из 64-битного хеша при балансировке. Алгоритм балансировки в общем случае выглядит так:- вычисляем 64-битный хеш от тех или иных полей пакета и
hash_seed; - из 64-битного хеша берем
hash_bitsбит, начиная сhash_offsetбита; - по получившемуся числу N определяем номер порта в LAG:
port := N mod LAG_active_port_count, т.е.port := ((hash(packet, hash_seed) >> hash_offset) & (2^hash_bits - 1)) mod LAG_active_port_count
Пример:
// +------------------------------------------------+ // hash: | XXXXXXXXXX------| // +------------------------------------------------+ // ^ ^ // | hash_offset = 6 // hash_bits = 10 hash_seed=0 hash_offset=0 hash_bits=64
- [LAG] Добавлена трассировка балансировки трафика. Описание
- [DPDK] Переход на DPDK 23.11
- Изменено: для QUIC и QUIC_IETF: если не определили SNI — проверяем по AS
- Изменено: при анализе STUN проверяется AS от Facebook — определяем FACEBOOK_VIDEO, а не WHATSAPP_VOICE
- [DPDK][rss-engine] Задание RSS hash флагов для UDP и TCP
- Изменено: определение протокола openvpn
- [BRAS][DHCP] Добавлено: учет DHCP-пакетов от абонента в биллинговой статистике: абонентский CPE (то есть Wi-Fi роутер) без клиентов (например, ночью) — посылает только запросы на продление лицензии. Так как эти запросы перехватывались BRAS и не включались в аккаунтинг, происходило завершение сессии по idle timeout
- [BRAS][DHCP] Исправлено: действия при изменении QinQ/VLAN у абонента
- [DHCP] Исправлено:
framed-pool renew
В некоторых случаях формировались некорректные DHCP-ответы. Добавлена трассировка в лог DHCP-пакетов дляframed-pool renew - [DHCPv6] Исправлено: прием пакетов от relay. Ранее проверялось, что relay находится в сети fc::/7. Теперь эта проверка излишняя и удалена, — у relay может быть любой адрес.
- [PPPoE] Исправлено: разбор DHCPv6-опций от Радиуса
- Исправлено: обработка SIGHUP только если fastDPI полностью инициализирован. Возможно падение, если в процессе запуска fastDPI приходит SIGHUP
- [AJB][PCAP] Запись trace/debug пакетов переведена на новый API
- Добавлено: поддержка протокола wechat для UDP
- [DPI] Поддержка дополнительной разметки автономных систем
mark1,mark2,mark3. Описаниеvi test.txt 209446 mark1 cat test.txt|as2dscp /etc/dpi/asnum.dscp
- [DPI] Приоритет определения по SNI в кастомных сигнатурах для автономных систем, помеченных как
mark1. Описание - [DPI] Приоритет более специфичных кастомных SNI сигнатур.
Пример: для хостаa.b.c.dпри наличии сигнатур*.d,*.c.dи*.b.c.dбудет выбран протокол, определенный сигнатурой*.b.c.dработает только для сигнатур с
*. Описание - [DPI] Поддержка жестких блокировок (несмотря на имя хоста/SNI) — задается в дополнительном поле в черном списке адресов, пример:
1.1.1.1 443 hard - Улучшено детектирование YOUTUBE, SIGNAL
- Добавлен протокол DPITUNNEL, в который включены аномалии трафика, обычно применяемые для обхода DPI
- Обновление dpiutils
- [DPI] Новые протоколы VK_CDN_VIDEO, META_CHAT
- [DPI] Улучшение сигнатур протоколов FACEBOOK_VIDEO, META_CALLS
- [DPI] Исправлено имя протокола VK_CDN_VIDEO
- [DPI] Исправлено: декодирование SNI в QUIC IETF и возможность образования корки в исключительных случаях
- [DPI] Исправлено: очистка структур поиска при удалении CUSTOM протоколов
- [utils] Добавлена возможность добавлять комментарии (#) и пустые линии во входных файлах для утилит lst2dscp, lst2tbf
- [DPI] Добавлены протоколы QUIC_UNKNOWN - QUIC без SNI и QUIC_UNKNOWN_MARKED - QUIC без SNI и AS с пометкой MARK2. Описание
- [DPI] Исправлено: определение хар-к stun для TCP
- [DPI] Изменено: если достигли ограничения просмотра пакетов stun - устанавливаем этот протокол с учетом AS
- [DPIutils] Обновлены утилиты для поддержки новых протоколов
- [Router] Распределение mempool для emit-пакетов: не допускаем полного исчерпания пула, в пуле должно быть не менее 256 свободных элементов
- [Router] Ошибка удаления маршрута
errno=3(No record found) переведена в разряд TRACE, чтобы не засоряла лог - Добавлен режим L2 балансировщика трафика. Данная доработка позволяет использовать СКАТ как балансировщик трафика на основе IP-адресов, принадлежащих AS и определяемой как
localвasnum.dscp. В данном режиме функциональность DPI не работает. Для балансировки трафика используетсяmaglevалгоритм с фиксированным размером hash таблицы: определение выходного интерфейса по следующему алгоритму:
1 — если src и dst ip оба local, то рассчитывается hash на основании этих двух адресов;
2 — если только src ip local, то рассчитывается hash на основании src ip;
3 — если только dst ip local, то рассчитывается hash на основании dst ip;
4 — рассчитывается hash на основе src и dst ip.
На основании рассчитанного hash значения производится определение выходного интерфейса путем определения индекса ячейки hash таблицы, содержащей индекс интерфейса из массива выходных интерфейсов. Значение из массива выходных интерфейсов подставляется в текущий контекст и возвращаетсяpcs_accept.
Для корректной работы требуются следующие настройки:- Определение автономной системы с IP адресами, которые используются абонентами. Описание
- Отметка заданной автономной системы как local. Описание
- Определение входных и выходных интерфейсов в конфигурационном файле. Входные интерфейсы задаются в параметре in_dev, а выходные интерфейсы в out_dev. Интерфейсы не образуют пары и допускаются конструции вида:
in_dev=05-00.0:05-00.1:05-00.2:05-00.3:0b-00.0:0b-00.1:0b-00.2:0b-00.3 out_dev=08-00.0:08-00.1:08-00.2:08-00.3
Или
in_dev=05-00.0 out_dev=out_dev=08-00.0:08-00.1:08-00.2:08-00.3
- Включить режим баласировки СОРМ:
enable_l2_lb=true
Вводимые параметры:
enable_l2_lb=false|true- включить балансировщик трафика для СОРМ
lb_hash_out_dev_type = 0|1- по какому значению выполнять инициализацию hash таблицы:
0 — использовать внутренний индекс выходного интерфейса
1 — использовать имя интерфейса из [in|out]_dev
В качествеdpdk_engineмогут использоваться следующие типы: 0 (по умолчанию), 1 и 2.
- [DPI] Улучшения в протоколах QUIC_UNKNOWN, QUIC_UNKNOWN_MARKED, SIGNAL, DpiTunnel
- [DPI] Определения встроенных протоколов по SNI/HOST вынесены в облако, поддерживается приоритет SNI/IP
- [Router] Исправлен порядок завершения компонентов роутера
- [LAG] Увеличение max числа портов в LAG
- [SDS] Значение
storage_tagустанавливается на основании приоритета по направлению или приоритета по протоколу - [CLI] Добавлена команда
subs prop show active. Команда выводит дамп L2-свойств всех активных (не-expired) абонентов. - [CLI] Изменено: запрет вызова CLI-команд в процессе остановки
- [Router] Изменено: system error при очистке route tables. Очистка route tables (удаление всех записей, добавленных СКАТ) производится при стопе и старте fastDPI. В процессе очистки может возникнуть ошибка EBUSY, которая является фатальной для netlink-сокета, сокет должен быть закрыт.
- [DPI] Изменено: сравнение SNI производится без учета регистра
- [DPI] Добавлена сигнатура протокола LANTERN_WEAK
- [DPI] Улучшено распознавание протокола IMAP
- [DPI] Исправление в LPM при выборе канала по IP/CIDR
- [PPPoE] Исправлено: idle-timeout для сессии. Для PPPoE-сессий idle timeout должен браться из настройки
bras_ppp_idle_timeout, если не задан явно в ответе авторизации (атрибут Idle-Timeout). - [Router] Исправлено: TAP link down in LAG. Если порт входит в лаг, то TAP этого порта в состояние Link down нужно производить только тогда, когда ВСЕ порты LAG в down.
- Добавлена приоритетная переадресация с переводом DSCP
в /etc/dpi/fastdpi.conf не совместимо set_packet_priority (set_packet_priority приоритетнее) forward_packet_priority=число число=битовая маска в какую сторону 1 конверсия применяется для исходящего трафика (subs->inet) 2 конверсия применяется для исходящего трафика (inet->subs) между чем и чем 4 конверсия vlan<->ip 8 конверсия ip<->ip Если файл с преобразованием не задан (нет файла /etc/dpi/dscpfrw.bin), то конверсия vlan<->ip осуществляется без преобразования, те тот приоритет что был в заголовке (3 бита), переносится как есть в другой заголовок (ip или vlan) Если файл с преобразованием задан, то производится конверсия приоритета по заданным в нем правилам.2 Задание файла конвертации приоритетов: vi test.txt in cs0 cs1 in cs1 cs2 in cs2 keep in default cs3 out default keep out 0x1 0x2 out 0x2 0x3 out cs0 0x3F cat test.txt|forw2dscp test.bin cp test.bin /etc/dpi/dscpfrw.bin
- [PCRF] Исправлено: добавление лишней опции 61 (Client-Id) в ответ fastDPI при распределении адреса из Framed-Pool
- [PCRF] Исправлено: вывод в лог IP-адресов DHCP-серверов
- [PCRF] Исправлено: включение услуг с профилями. Атрибут `VasExperts-Service-Profile` (имя профиля услуги, неявно включает услугу) имеет больший приоритет, чем `VasExperts-Enable-Service` (включение/выключение услуги без задания профиля).
- Добавлено: в формат записи в текстовый файл DNS - формат vchnl - номер виртуального канала.
- Добавлено: в шаблон IPFIX передачи данных для DNS номер канала
- Исправлено: перехват LACP в режиме on-stick
- [CLI] Добавлена команда
ping inetот имени абонентов через всю цепочку обработку BRAS/NAT/ROUTER. Подсказка -fdpi_cli ping inet ? - Исправлено: падение при трейсе DNS
- [fastRadius] Добавлена возможность работы со стандартными интерфейсами linux с помощью
libpcap - Улучшено определение протокола VIBER_VSTREAMS
- [Router] Исправлено: контроль за исчерпанием selfgen mempool
- [Router] Оптимизация вычитывания данных с TAP
- [ctl] Исправлено: в процессе остановки fastDPI не принимаем и не обрабатываем никакие запросы по ctl
- Добавлена утилита
checknatдля проверки распределения белых адресов - [DPI] Добавлен протокол SSTP (49296)
- [L3 BRAS] Исправлено: вызов деанонса IP-адреса абонента при acct idle. В опцию роутера
router_subs_announceдобавлен новый флаг:0x10000- деанонсировать L3-абонента при наступлении acct idle (закрытие acct-сесси по idle timeout) - [PCRF] Добавлена поддержка задания профиля услуги 18 при авторизации. Включение услуги 18 в ответе Радиуса Access-Accept задается обычным для услуги с обязательным профилем образом (здесь
serv18- имя профиля):VasExperts-Service-Profile = "18:serv18" - [CLI] В команду
subs prop showдобавлен поиск поMACиsubs_id. Результат поиска поMACилиsubs_idможет быть многозначным, - несколько разных записей для одного того жеMAC/subs_id. Результат командыsubs prop show activeизменен, что может быть критично при разборе json-выхлопа команды. Описание - [Router] Исправлено LAG+On-stick: перевод TAP в состояние link down. TAP переводится в link down только тогда, когда все порты в LAG в состоянии down. Если же есть хотя бы один порт в состоянии Up - TAP должен находится в состоянии Link Up.
- [DPDK][CLI] Исправлено: установка флага link up/down для портов, не поддерживающих link up/down прерывания (например, af_packet)
- [Router] Исправлено: отведение трафика в роутере для on-stick девайса в LAG. При формировании топологии VRF не учитывалось, что в LAG входит базовый (физический) девайс, а при описании роутера указывается on-stick (виртуальный) девайс.
- [DPI] Добавлен протокол ANYDESK (49297)
- [DPI] Улучшено распознавание LANTERN
- Исправлено online изменение параметра
nat_private_cidr - [CLI] Код возврата команды Uptime. CLI-команда
uptimeможет использоваться для контроля полного запуска fastDPI: она возвращаетresult=0(Success) только тогда, когда fastDPI полностью проинициализирован и все рабочие потоки запущены. По получении ответа от fastDPI на командуfdpi_cli uptimeсама утилита fdpi_cli проверяет результат выполнения и еслиresult!=0— выставляет ненулевой код возврата. - [PCRF] Исправлено: при наличии VRF (service 254) в Access-Accept пакет неправомерно выводился в лог как ошибочный
- [Router] Исправлено: вычитывание всех данных с TAP-девайса. При старте fastDPI были возможны ситуации, когда роутер еще не полностью инициализирован, а TAP уже мониторится, но не вычитывается.
- [router] Опция router_subs_announce сделана горячей (hot)
- [router] fixed: утечка mbuf при старте fastdpi
- Restore work of udr after huge transaction failed
- [BALANCER] Добавлен движок mqrx_lb_engine, который активируется при dpdk_engine=2
Была ли полезна эта информация?