| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| dpi:update:start [2024/06/28 11:10] – [Изменения в версии 13.1] atereschenko | 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> | |
| - [BRAS][DHCP] Исправлено: контроль активности абонента с помощью unicast ARP Request. Ранее был broadcast ARP Request, что не оптимально для сети. [[dpi:bras_bng:bras_l2_options:subs_activity:start|Описание]] | |
| - [BRAS][DHCP] Добавлено: SHCV (Subscriber Host Connectivity Verification) — контроль активности DHCP-абонента. [[dpi:bras_bng:bras_l2_options:subs_activity:start|Описание]]. Учтен сценарий для уже "закрытой" записи, чтобы не было повторного срабатывания SHCV и росте счетчика 'SHCV: session closed by inactivity'. При наступлении события SHCV (абонент не отвечает на ARP-пинги) закрытие сессии не зависит от флагов `bras_dhcp_disconnect`. Сессия закрывается следующим образом: | |
| - шлем Acct Stop; | |
| - делаем деанонс IP-адреса абонента; | |
| - сессии проставляем статус released, но время реавторизации не изменяем, чтобы не было паразитных L3-авторизаций, если абонент проснется до истечения lease time и пошлет что-либо отличное от DHCP; | |
| - DHCP-сессию (в БД dhcp) удаляем; | |
| - [BRAS] Добавлено: ARP Proxy для известных маршрутов (только в режиме роутера), Данную возможность применяем только если инициатор ARP-запроса - известный нам абонент. В опцию ''bras_arp_proxy'' добавлен новый флаг - 0x0004. [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_arp_proxy:start|Описание]] | |
| - [BRAS][CLI] Исправлено: help() для IPv6-адресов в команде ''subs prop show'' | |
| - [BRAS][CLI] Исправлено: ошибка разбора параметров команды ''subs prop del'', что приводило к невозможности удаления свойств по IP c ошибкой <code bash>ERROR: Result code=9: No subscriber IP address</code> | |
| - [BRAS][DHCP] Добавлено: CLI-команда ''dhcp disconnect''. Это CLI-аналог CoA Disconnect. Режим выполнения дисконнекта задается опцией ''bras_dhcp_disconnect''. | |
| - ''dhcp disconnect all'' - дисконнект всех DHCP-сессий | |
| - ''dhcp disconnect [ mac=X | ip=X ]'' - дисконнект указанной сессии | |
| - [BRAS] Исправлено: отправка L3 reauth для L2-абонента заранее, не дожидаясь завершения session timeout | |
| - [BRAS][DHCP] Добавлено: в CLI-команду ''dhcp show stat'' добавлено число закрытых по неактивности сессий (SHCV) | |
| - [BRAS] Добавлено: ARP Proxy для известных маршрутов (только в режиме роутера). В опцию ''bras_arp_proxy'' добавлен новый флаг - 0x0004. [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_arp_proxy:start|Описание]] | |
| - [BRAS] Исправлено: ошибка при перехвате и обработке ICMPv6-пакетов, при изменении ICMPv6-пакета в некоторых случаях не пересчитывалась контрольная сумма | |
| - [Router] Добавлено: ARP менеджмент. [[dpi:dpi_components:router:start#arp_менеджмент|Описание]] | |
| - [Router] Исправлено: выбор порта для записи в сквозном LAG. Если LAG проходит сквозь fastDPI, то при выборе порта для записи с TAP нужно учитывать не только состояние самого порта Link Up/Down, но и состояние Link Up/Down второго плеча моста для этого порта | |
| - [Router] Исправлено: анонсирование подсетей профиля NAT при добавлении | |
| - [Router] Добавлено: CLI-команда ''router vrf dump''. Команда выводит список VRF, заданных в системе, и свойства этих VRF. | |
| - [Router] Исправлено: не учитывать term by AS при анонсе подсетей NAT. Режим ''term_by_AS'' относится к абонентам, а не к профилям NAT, поэтому его **не** нужно учитывать при анонсировании NAT-подсети | |
| - [Router] Исправлено: порядок перехвата пакетов из общего конвейера обработки | |
| - [Router][Engine][DPDK] Исправлено: Увеличено число ''mbuf'' в ''selfgen mempool'', если включен роутер: если роутер disabled: ''mempool size=512 * число_slave_на_кластер'', если роутер enabled: ''mempool size=8 * 1024 * число_slave_на_кластер'' | |
| - [LAG] Исправлено: необнуление массива при построении нового списка активных портов. Ошибка приводит к переполнению массива и порчи памяти | |
| - [LAG] Добавлено логирование ошибки "no mbuf" при отправке LACP | |
| - [DPI][BRAS][FastRadius] Глобальный рефакторинг кода - отказ от поддержки ''pf_ring'' | |
| - [DPI] Добавлено: услуга 19 - подмена DNS-ответов. [[dpi:dpi_options:dns_substitution:start|Описание]] | |
| - [DPI] Изменено: минимальный размер PCAP файла до 100 MB. Ротация PCAP-файлов при reload [[dpi:dpi_options:opt_li:li_ctrl:start|Описание]] | |
| - [DPI] Изменено: улучшена трассировка событий DROP | |
| - [DPI] Исправлено: ошибочное появление сообщения уровня ERROR при некоторых запросах ''fdpi_ctrl'' | |
| - [DPI] Исправлено: некорректный разбор TLS(SNI) в случае если задано несколько 'ALPN Protocol' | |
| - [NAT] Изменено: трассировка в ''vdpi_new_flow_nat_ipv4'' выводится всегда | |
| - [NAT] Исправлено: в зависимости от значения параметра ''nat_exclude_private'' проверяется дополнительно пара CHECK_AS_LOCAL или CHECK_AS_PEER для AS при local interconnect | |
| |
| |
| |