Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
dpi:update:start [2024/07/03 11:21] – [Изменения в версии 13.1] elena.krasnobryzh | dpi:update:start [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 |
---|
====== Список изменений и обновление СКАТ ====== | |
{{indexmenu_n>10}} | |
| |
===== Инструкция по обновлению ===== | |
<note important>Начиная с версии 12.0, DPI устанавливается только на CentOS 8.x и [[veos:installation|VEOS]]!</note> | |
| |
Если у вас установлена версия CentOS 6.x или CentOS 8.x, то однократно переключите репозиторий командой: | |
<code bash> | |
sed -i -e '/^mirrorlist=http:\/\//d' -e 's/^# *baseurl=http:\/\/mirror.centos.org/baseurl=http:\/\/vault.centos.org/' /etc/yum.repos.d/CentOS-*.repo | |
</code> | |
| |
и далее производите обновления командой: | |
<code bash> | |
yum update fastdpi | |
</code> | |
| |
<note tip>Если при обновлении появляется ошибка ''Module yaml error'', то следует обновить модуль ''dnf upgrade libmodulemd''.</note> | |
| |
После обновления выполните рестарт DPI: | |
<code bash>service fastdpi restart</code> | |
| |
и других зависимых процессов (PCRF/Radius), но только если они реально используются и их конфигурация валидна: | |
<code bash> | |
service fastpcrf restart | |
service fdpi_radius restart | |
</code> | |
| |
При необходимости можно обновить компоненты операционной системы. **Не проводите обновление версии ядра и зависимых от него утилит!**\\ | |
Для CentOS 6.x: | |
<code bash> | |
yum --exclude=kernel*,util-linux-ng,libuuid,libblkid update | |
</code> | |
| |
Для CentOS 8.x: | |
<code bash> | |
yum update | |
</code> | |
| |
**Пользователям, эксплуатирующим DPI на виртуальных машинах, старых процессорах (2009 года выпуска) и старых процессорах AMD (до Ryzen):**\\ | |
Выполните перед обновлением команду: | |
<code bash> | |
touch /etc/dpi/noprioadj | |
</code> | |
| |
и процесс DPI будет запускаться с обычным (не ''realtime'') приоритетом, что существенно снизит потребление системных (''sys'') ресурсов CPU, но немного увеличит ''latency'' на платформе. | |
| |
<note tip>Клиентам, использующим функционал BRAS, при обновлении СКАТ на новую версию необходимо обратить внимание на изменения.</note> | |
| |
===== Обновление платформы DPI до версии 13.0 Congo ===== | |
| |
13.0 Congo ((Колыбель человечества: люди обитают здесь более 50 тыс лет)) | |
| |
Проверить текущую установленную версию можно командой: | |
<code bash> | |
yum info fastdpi | |
</code> | |
| |
Откат на 12.4: | |
<code bash> | |
yum downgrade fastdpi-12.4-0 fastpcrf-12.4-0 | |
</code> | |
| |
После обновления или смены версии требуется рестарт сервиса: | |
<code bash> | |
service fastdpi restart | |
</code> | |
| |
:!: Если используются PCRF и/или Radius, их тоже надо рестартовать. Для рестарта PCRF предпочтителен следующий порядок: | |
<code bash> | |
service fastdpi stop | |
service fastpcrf restart | |
service fastdpi start | |
</code> | |
| |
:!: Не проводите обновления ядра Linux. В новых версиях ядра может быть нарушена бинарная совместимость с Kernel ABI и сетевой драйвер после обновления не загрузится. Если вы все-таки произвели обновление, то на время решения проблемы настройте в загрузчике GRUB загрузку прежней версии ядра: в файле ''/etc/grub.conf'' установите параметр ''default=1''. | |
| |
Если при обновлении появляется сообщение, что обновление не найдено или возникают проблемы с зависимостями, то перед обновлением выполните команду: | |
<code bash> | |
yum clean all | |
</code> | |
| |
==== Изменения в версии 13.0 ==== | |
===DPI=== | |
- Поддержка LAG/LACP в on-stick. [[dpi:dpi_components:platform:dpi_inst_spec:dpi_onstick:start|Описание]] | |
- Переход на DPDK 23.11 | |
- Изменено: для QUIC и QUIC_IETF: если не определили SNI — проверяем по AS | |
- Изменено: при анализе STUN проверяется AS от Facebook — определяем FACEBOOK_VIDEO, а не WHATSAPP_VOICE | |
- Задание RSS hash флагов для UDP и TCP | |
- Изменено: определение протокола openvpn | |
- Исправлено: обработка SIGHUP только если fastDPI полностью инициализирован. Возможно падение, если в процессе запуска fastDPI приходит SIGHUP | |
- Запись trace/debug пакетов переведена на новый API | |
- Добавлено: поддержка протокола wechat для UDP | |
- Поддержка дополнительной разметки автономных систем ''mark1'', ''mark2'', ''mark3''. [[dpi:dpi_options:opt_priority:priority_config_as:start|Описание]] | |
- Приоритет определения по SNI в кастомных сигнатурах для автономных систем, помеченных как ''mark1''. [[dpi:dpi_options:opt_priority:priority_config_as:start|Описание]] | |
- Приоритет более специфичных кастомных SNI сигнатур.\\ Пример: для хоста ''a.b.c.d'' при наличии сигнатур ''*.d'', ''*.c.d'' и ''*.b.c.d'' будет выбран протокол, определенный сигнатурой ''*.b.c.d'' :!: работает только для сигнатур с ''*''. [[dpi:dpi_components:dpiui:user_guide:vas_cloud_services:custom_protocols:protocols:start|Описание]] | |
- Поддержка жестких блокировок (несмотря на имя хоста/SNI) — задается в дополнительном поле в черном списке адресов, пример: ''1.1.1.1 443 hard''. [[dpi:dpi_options:opt_filtration:making_dictionary:start|Описание]] | |
- Улучшено детектирование YOUTUBE, SIGNAL | |
- Добавлен протокол DPITUNNEL, в который включены аномалии трафика, обычно применяемые для обхода DPI | |
- Обновление dpiutils | |
- Новые протоколы VK_CDN_VIDEO, META_CHAT | |
- Улучшение сигнатур протоколов FACEBOOK_VIDEO, META_CALLS | |
- Исправлено имя протокола VK_CDN_VIDEO | |
- Исправлено: декодирование SNI в QUIC IETF и возможность образования корки в исключительных случаях | |
- Исправлено: очистка структур поиска при удалении CUSTOM протоколов | |
- Добавлена возможность добавлять комментарии (#) и пустые линии во входных файлах для утилит [[dpi:dpi_options:opt_priority:priority_config:start#конвертация_файла|lst2dscp]], [[dpi:dpi_options:opt_shaping:shaping_session:start#настройка_полисинга_по_сессии|lst2tbf]] | |
- Добавлены протоколы QUIC_UNKNOWN - QUIC без SNI и QUIC_UNKNOWN_MARKED - QUIC без SNI и AS с пометкой MARK2. [[dpi:dpi_options:opt_priority:priority_config_as:start|Описание]] | |
- Исправлено: определение хар-к stun для TCP | |
- Изменено: если достигли ограничения просмотра пакетов stun - устанавливаем этот протокол с учетом AS | |
- Обновлены утилиты для поддержки новых протоколов | |
- Улучшения в протоколах QUIC_UNKNOWN, QUIC_UNKNOWN_MARKED, SIGNAL, DpiTunnel | |
- Определения встроенных протоколов по SNI/HOST вынесены в облако, поддерживается приоритет SNI/IP | |
- Изменено: сравнение SNI производится без учета регистра | |
- Добавлена сигнатура протокола LANTERN_WEAK | |
- Улучшено распознавание протокола IMAP | |
- Исправление в LPM при выборе канала по IP/CIDR | |
- Добавлено: в формат записи в текстовый файл DNS - формат vchnl - номер виртуального канала. | |
- Добавлено: в шаблон IPFIX передачи данных для DNS номер канала. [[dpi:dpi_options:opt_li:li_ipfix:start#dns|Описание]] | |
- Исправлено: падение при трейсе DNS | |
- Улучшено определение протокола VIBER_VSTREAMS | |
- Исправлено: в процессе остановки fastDPI не принимаем и не обрабатываем никакие запросы по ctl | |
- Добавлен протокол SSTP (49296) | |
- Добавлен протокол ANYDESK (54273) | |
- Улучшено распознавание LANTERN | |
| |
===BRAS=== | |
- Добавлено: учет DHCP-пакетов от абонента в биллинговой статистике: абонентский CPE (то есть Wi-Fi роутер) без клиентов (например, ночью) — посылает только запросы на продление лицензии. Так как эти запросы перехватывались BRAS и не включались в аккаунтинг, происходило завершение сессии по idle timeout | |
- Исправлено: действия при изменении QinQ/VLAN у абонента | |
- Исправлено: ''framed-pool renew''\\ В некоторых случаях формировались некорректные DHCP-ответы. Добавлена трассировка в лог DHCP-пакетов для ''framed-pool renew'' | |
- Исправлено: прием пакетов от relay. Ранее проверялось, что relay находится в сети fc::/7. Теперь эта проверка излишняя и удалена, — у relay может быть любой адрес. | |
- Исправлено: разбор DHCPv6-опций от Радиуса | |
- Добавлена команда ''subs prop show active''. Команда выводит дамп L2-свойств всех активных (не-expired) абонентов. [[dpi:bras_bng:cli:subs:start#subs_prop_show|Описание]] | |
- Изменено: запрет вызова CLI-команд в процессе остановки | |
- Исправлено: idle-timeout для сессии. Для PPPoE-сессий idle timeout должен браться из настройки ''bras_ppp_idle_timeout'', если не задан явно в ответе авторизации (атрибут Idle-Timeout). | |
- Добавлена приоритетная переадресация с переводом DSCP. [[dpi:dpi_options:opt_priority:priority_settings:start#настройка_наследования_и_преобразования_dscp|Описание]] | |
- Исправлено: добавление лишней опции 61 (Client-Id) в ответ fastDPI при распределении адреса из Framed-Pool | |
- Исправлено: вывод в лог IP-адресов DHCP-серверов | |
- Исправлено: включение услуг с профилями. Атрибут `VasExperts-Service-Profile` (имя профиля услуги, неявно включает услугу) имеет больший приоритет, чем `VasExperts-Enable-Service` (включение/выключение услуги без задания профиля). | |
- Добавлена команда ''ping inet'' от имени абонентов через всю цепочку обработку BRAS/NAT/ROUTER. Подсказка - ''fdpi_cli ping inet ?''. [[dpi:bras_bng:cli:subs:start#subs_ping_inet|Описание]] | |
- Исправлено: вызов деанонса IP-адреса абонента при acct idle. В опцию роутера ''router_subs_announce'' добавлен новый флаг: ''0x10000'' - деанонсировать L3-абонента при наступлении acct idle (закрытие acct-сесси по idle timeout). [[dpi:dpi_components:router:start#особенности_анонсирования_адресов|Описание]] | |
- Добавлена поддержка задания профиля услуги 18 при авторизации. Включение услуги 18 в ответе Радиуса Access-Accept задается обычным для услуги с обязательным профилем образом (здесь ''serv18'' - имя профиля):<code bash>VasExperts-Service-Profile = "18:serv18"</code> | |
- В команду ''subs prop show'' добавлен поиск по ''MAC'' и ''subs_id''. Результат поиска по ''MAC'' или ''subs_id'' может быть многозначным, - несколько разных записей для одного того же ''MAC''/''subs_id''. Результат команды ''subs prop show active'' изменен, что может быть критично при разборе json-выхлопа команды. [[dpi:bras_bng:cli:subs:start#subs_prop_show|Описание]] | |
- Исправлено: установка флага link up/down для портов, не поддерживающих link up/down прерывания (например, af_packet) | |
- Код возврата команды Uptime. CLI-команда ''uptime'' может использоваться для контроля полного запуска fastDPI: она возвращает ''result=0'' (Success) только тогда, когда fastDPI полностью проинициализирован и все рабочие потоки запущены. По получении ответа от fastDPI на команду ''fdpi_cli uptime'' сама утилита fdpi_cli проверяет результат выполнения и если ''result!=0'' — выставляет ненулевой код возврата. | |
- Исправлено: при наличии VRF (service 254) в Access-Accept пакет неправомерно выводился в лог как ошибочный | |
- Восстановление работы UDR после вызова команды с большим числом параметров | |
| |
===NAT=== | |
- Добавлена утилита ''checknat'' для проверки распределения белых адресов. [[dpi:dpi_components:utilities:management_utilities:start#checknat|Описание]] | |
- Исправлено online изменение параметра ''nat_private_cidr'' | |
| |
===Балансировщик=== | |
- Добавлен режим L2 балансировщика трафика. Данная доработка позволяет использовать СКАТ как балансировщик трафика на основе IP-адресов, принадлежащих AS и определяемой как ''local'' в ''asnum.dscp''. [[dpi:load_balancer:start|Описание]] | |
- Добавлен движок mqrx_lb_engine, который активируется при dpdk_engine=2. [[dpi:load_balancer:start#настройка_etc_dpi_fastdpiconf|Описание]] | |
| |
===Router=== | |
- Распределение mempool для emit-пакетов: не допускаем полного исчерпания пула, в пуле должно быть не менее 256 свободных элементов | |
- Ошибка удаления маршрута ''errno=3'' (No record found) переведена в разряд TRACE, чтобы не засоряла лог | |
- Исправлен порядок завершения компонентов роутера | |
- Изменено: system error при очистке route tables. Очистка route tables (удаление всех записей, добавленных СКАТ) производится при стопе и старте fastDPI. В процессе очистки может возникнуть ошибка EBUSY, которая является фатальной для netlink-сокета, сокет должен быть закрыт. | |
- Исправлено: TAP link down in LAG. Если порт входит в лаг, то TAP этого порта в состояние Link down нужно производить только тогда, когда ВСЕ порты LAG в down. | |
- Исправлено: контроль за исчерпанием selfgen mempool | |
- Оптимизация вычитывания данных с TAP | |
- Исправлено LAG+On-stick: перевод TAP в состояние link down. TAP переводится в link down только тогда, когда все порты в LAG в состоянии down. Если же есть хотя бы один порт в состоянии Up - TAP должен находится в состоянии Link Up. | |
- Исправлено: отведение трафика в роутере для on-stick девайса в LAG. При формировании топологии VRF не учитывалось, что в LAG входит базовый (физический) девайс, а при описании роутера указывается on-stick (виртуальный) девайс. | |
- Исправлено: вычитывание всех данных с TAP-девайса. При старте fastDPI были возможны ситуации, когда роутер еще не полностью инициализирован, а TAP уже мониторится, но не вычитывается. | |
- Опция router_subs_announce сделана горячей (hot) | |
- Исправлено: утечка mbuf при старте fastDPI | |
| |
===SDS=== | |
- Значение ''storage_tag'' устанавливается на основании приоритета по направлению или приоритета по протоколу | |
| |
===Radius=== | |
- Добавлена возможность работы со стандартными интерфейсами linux с помощью ''libpcap''. [[dpi:dpi_components:radius:radius_config:start#настройка_linux_интерфейсов|Описание]] | |
| |
====Изменения в версии 13.1==== | |
<note warning>Внимание! Обнаружена ошибка в версии 13.1. В PPPoE не происходит закрытие сессии при истечении ''idle_timeout''.\\ Исправление планируется в следующем релизе.</note> | |
===DPI=== | |
- Глобальный рефакторинг кода - отказ от поддержки ''pf_ring'' | |
- Добавлено: услуга 19 - подмена DNS-ответов. [[dpi:dpi_options:dns_substitution:start|Описание]] | |
- Изменено: минимальный размер PCAP файла до 100 MB. Ротация PCAP-файлов при reload [[dpi:dpi_options:opt_li:li_ctrl:start|Описание]] | |
- Изменено: улучшена трассировка событий DROP | |
- Исправлено: ошибочное появление сообщения уровня ERROR при некоторых запросах ''fdpi_ctrl'' | |
- Исправлено: некорректный разбор TLS(SNI) в случае если задано несколько 'ALPN Protocol' | |
| |
===BRAS=== | |
- Исправлено: контроль активности абонента с помощью unicast ARP Request. Ранее был broadcast ARP Request, что не оптимально для сети. [[dpi:bras_bng:bras_l2_options:subs_activity:start|Описание]] | |
- Добавлено: SHCV (Subscriber Host Connectivity Verification) — контроль активности DHCP-абонента. Учтен сценарий для уже "закрытой" записи, чтобы не было повторного срабатывания SHCV и росте счетчика 'SHCV: session closed by inactivity'. [[dpi:bras_bng:bras_l2_options:subs_activity:start|Описание]] | |
- Добавлено: ARP Proxy для известных маршрутов (только в режиме роутера), Данную возможность применяем только если инициатор ARP-запроса - известный нам абонент. В опцию ''bras_arp_proxy'' добавлен новый флаг - 0x0004. [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_arp_proxy:start|Описание]] | |
- Исправлено: help() для IPv6-адресов в команде ''subs prop show'' | |
- Исправлено: ошибка разбора параметров команды ''subs prop del'', что приводило к невозможности удаления свойств по IP c ошибкой <code bash>ERROR: Result code=9: No subscriber IP address</code> | |
- Добавлено: CLI-команда ''dhcp disconnect''. Это CLI-аналог CoA Disconnect. Режим выполнения дисконнекта задается опцией ''bras_dhcp_disconnect''. | |
- ''dhcp disconnect all'' - дисконнект всех DHCP-сессий | |
- ''dhcp disconnect [ mac=X | ip=X ]'' - дисконнект указанной сессии | |
- Исправлено: отправка L3 reauth для L2-абонента заранее, не дожидаясь завершения session timeout | |
- Добавлено: в CLI-команду ''dhcp show stat'' добавлено число закрытых по неактивности сессий (SHCV) | |
- Добавлено: ARP Proxy для известных маршрутов (только в режиме роутера). В опцию ''bras_arp_proxy'' добавлен новый флаг - 0x0004. [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_arp_proxy:start|Описание]] | |
- Исправлено: ошибка при перехвате и обработке ICMPv6-пакетов, при изменении ICMPv6-пакета в некоторых случаях не пересчитывалась контрольная сумма | |
| |
===NAT=== | |
- Изменено: трассировка в ''vdpi_new_flow_nat_ipv4'' выводится всегда | |
- Исправлено: в зависимости от значения параметра ''nat_exclude_private'' проверяется дополнительно пара CHECK_AS_LOCAL или CHECK_AS_PEER для AS при local interconnect | |
| |
===Router=== | |
- Добавлено: ARP менеджмент. [[dpi:dpi_components:router:start#arp_менеджмент|Описание]] | |
- Исправлено: выбор порта для записи в сквозном LAG. Если LAG проходит сквозь fastDPI, то при выборе порта для записи с TAP нужно учитывать не только состояние самого порта Link Up/Down, но и состояние Link Up/Down второго плеча моста для этого порта | |
- Исправлено: анонсирование подсетей профиля NAT при добавлении | |
- Добавлено: CLI-команда ''router vrf dump''. Команда выводит список VRF, заданных в системе, и свойства этих VRF | |
- Исправлено: не учитывать term by AS при анонсе подсетей NAT. Режим ''term_by_AS'' относится к абонентам, а не к профилям NAT, поэтому его **не** нужно учитывать при анонсировании NAT-подсети | |
- Исправлено: порядок перехвата пакетов из общего конвейера обработки | |
- Исправлено: Увеличено число ''mbuf'' в ''selfgen mempool'', если включен роутер: если роутер disabled: ''mempool size=512 * число_slave_на_кластер'', если роутер enabled: ''mempool size=8 * 1024 * число_slave_на_кластер'' | |
| |
===LAG=== | |
- Исправлено: необнуление массива при построении нового списка активных портов. Ошибка приводит к переполнению массива и порчи памяти | |
- Добавлено логирование ошибки "no mbuf" при отправке LACP | |
| |
| |
| |
| |
| |