Это старая версия документа!
Список изменений и обновление СКАТ
Инструкция по обновлению
Если у вас установлена версия 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
DPI
- Поддержка LAG/LACP в on-stick. Описание
- [DPDK] Переход на DPDK 23.11
- Изменено: для QUIC и QUIC_IETF: если не определили SNI — проверяем по AS
- Изменено: при анализе STUN проверяется AS от Facebook — определяем FACEBOOK_VIDEO, а не WHATSAPP_VOICE
- [DPDK][rss-engine] Задание RSS hash флагов для UDP и TCP
- Изменено: определение протокола openvpn
- Исправлено: обработка SIGHUP только если fastDPI полностью инициализирован. Возможно падение, если в процессе запуска fastDPI приходит SIGHUP
- [AJB][PCAP] Запись trace/debug пакетов переведена на новый API
- Добавлено: поддержка протокола wechat для UDP
- [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 протоколов
- [DPI] Добавлены протоколы QUIC_UNKNOWN - QUIC без SNI и QUIC_UNKNOWN_MARKED - QUIC без SNI и AS с пометкой MARK2. Описание
- [DPI] Исправлено: определение хар-к stun для TCP
- [DPI] Изменено: если достигли ограничения просмотра пакетов stun - устанавливаем этот протокол с учетом AS
- [DPIutils] Обновлены утилиты для поддержки новых протоколов
- [DPI] Улучшения в протоколах QUIC_UNKNOWN, QUIC_UNKNOWN_MARKED, SIGNAL, DpiTunnel
- [DPI] Определения встроенных протоколов по SNI/HOST вынесены в облако, поддерживается приоритет SNI/IP
- [DPI] Изменено: сравнение SNI производится без учета регистра
- [DPI] Добавлена сигнатура протокола LANTERN_WEAK
- [DPI] Улучшено распознавание протокола IMAP
- [DPI] Исправление в LPM при выборе канала по IP/CIDR
- Добавлено: в формат записи в текстовый файл DNS - формат vchnl - номер виртуального канала.
- Добавлено: в шаблон IPFIX передачи данных для DNS номер канала. Описание
- Исправлено: падение при трейсе DNS
- Улучшено определение протокола VIBER_VSTREAMS
- [ctl] Исправлено: в процессе остановки fastDPI не принимаем и не обрабатываем никакие запросы по ctl
- [DPI] Добавлен протокол SSTP (49296)
- [DPI] Добавлен протокол ANYDESK (54273)
- [DPI] Улучшено распознавание LANTERN
BRAS
- [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-опций от Радиуса
- [CLI] Добавлена команда
subs prop show active
. Команда выводит дамп L2-свойств всех активных (не-expired) абонентов. Описание - [CLI] Изменено: запрет вызова CLI-команд в процессе остановки
- [PPPoE] Исправлено: idle-timeout для сессии. Для PPPoE-сессий idle timeout должен браться из настройки
bras_ppp_idle_timeout
, если не задан явно в ответе авторизации (атрибут Idle-Timeout). - Добавлена приоритетная переадресация с переводом DSCP. Описание
- [PCRF] Исправлено: добавление лишней опции 61 (Client-Id) в ответ fastDPI при распределении адреса из Framed-Pool
- [PCRF] Исправлено: вывод в лог IP-адресов DHCP-серверов
- [PCRF] Исправлено: включение услуг с профилями. Атрибут `VasExperts-Service-Profile` (имя профиля услуги, неявно включает услугу) имеет больший приоритет, чем `VasExperts-Enable-Service` (включение/выключение услуги без задания профиля).
- [CLI] Добавлена команда
ping inet
от имени абонентов через всю цепочку обработку BRAS/NAT/ROUTER. Подсказка -fdpi_cli ping inet ?
. Описание - [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-выхлопа команды. Описание - [DPDK][CLI] Исправлено: установка флага link up/down для портов, не поддерживающих link up/down прерывания (например, af_packet)
- [CLI] Код возврата команды Uptime. CLI-команда
uptime
может использоваться для контроля полного запуска fastDPI: она возвращаетresult=0
(Success) только тогда, когда fastDPI полностью проинициализирован и все рабочие потоки запущены. По получении ответа от fastDPI на командуfdpi_cli uptime
сама утилита fdpi_cli проверяет результат выполнения и еслиresult!=0
— выставляет ненулевой код возврата. - [PCRF] Исправлено: при наличии VRF (service 254) в Access-Accept пакет неправомерно выводился в лог как ошибочный
- Восстановление работы UDR после вызова команды с большим числом параметров
NAT
- Добавлена утилита
checknat
для проверки распределения белых адресов. Описание - Исправлено online изменение параметра
nat_private_cidr
Балансировщик
Router
- [Router] Распределение mempool для emit-пакетов: не допускаем полного исчерпания пула, в пуле должно быть не менее 256 свободных элементов
- [Router] Ошибка удаления маршрута
errno=3
(No record found) переведена в разряд TRACE, чтобы не засоряла лог - [Router] Исправлен порядок завершения компонентов роутера
- [Router] Изменено: system error при очистке route tables. Очистка route tables (удаление всех записей, добавленных СКАТ) производится при стопе и старте fastDPI. В процессе очистки может возникнуть ошибка EBUSY, которая является фатальной для netlink-сокета, сокет должен быть закрыт.
- [Router] Исправлено: TAP link down in LAG. Если порт входит в лаг, то TAP этого порта в состояние Link down нужно производить только тогда, когда ВСЕ порты LAG в down.
- [Router] Исправлено: контроль за исчерпанием selfgen mempool
- [Router] Оптимизация вычитывания данных с TAP
- [Router] Исправлено LAG+On-stick: перевод TAP в состояние link down. TAP переводится в link down только тогда, когда все порты в LAG в состоянии down. Если же есть хотя бы один порт в состоянии Up - TAP должен находится в состоянии Link Up.
- [Router] Исправлено: отведение трафика в роутере для on-stick девайса в LAG. При формировании топологии VRF не учитывалось, что в LAG входит базовый (физический) девайс, а при описании роутера указывается on-stick (виртуальный) девайс.
- [Router] Исправлено: вычитывание всех данных с TAP-девайса. При старте fastDPI были возможны ситуации, когда роутер еще не полностью инициализирован, а TAP уже мониторится, но не вычитывается.
- [Router] Опция router_subs_announce сделана горячей (hot)
- [Router] Исправлено: утечка mbuf при старте fastDPI
SDS
- [SDS] Значение
storage_tag
устанавливается на основании приоритета по направлению или приоритета по протоколу
Radius
- [fastRadius] Добавлена возможность работы со стандартными интерфейсами linux с помощью
libpcap
. Описание