Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
dpi:update [2023/08/25 13:13] – создано elena.krasnobryzh | dpi:update [2025/01/21 06:30] (текущий) – [Изменения в версии 13.2] elena.krasnobryzh |
---|
====== Обновление ====== | ====== Список изменений и обновление СКАТ ====== |
{{indexmenu_n>8}} | {{indexmenu_n>10}} |
| |
===== Инструкция по обновлению ===== | ===== Инструкция по обновлению ===== |
| <note important>Начиная с версии 12.0, DPI устанавливается только на CentOS 8.x и [[veos:installation|VEOS]]!</note> |
| |
Если у вас установлена версия CentOS 6.x или CentOS 8.x, то однократно переключите репозиторий командой: | Если у вас установлена версия CentOS 6.x или CentOS 8.x, то однократно переключите репозиторий командой: |
<code bash> | <code bash> |
yum update | yum update |
</code> | </code> |
| |
<note important>Для корректного хранения и отображения новых протоколов в модуле статистики и отчетов NFSEN необходимо провести его [[dpi:dpi_components:nfsen:nfsen_update:start|обновление]].\\ | |
На типовых конфигурациях во время рестарта время простоя сервиса составит 1-3 секунды.</note> | |
| |
**Пользователям, эксплуатирующим DPI на виртуальных машинах, старых процессорах (2009 года выпуска) и старых процессорах AMD (до Ryzen):**\\ | **Пользователям, эксплуатирующим DPI на виртуальных машинах, старых процессорах (2009 года выпуска) и старых процессорах AMD (до Ryzen):**\\ |
и процесс DPI будет запускаться с обычным (не ''realtime'') приоритетом, что существенно снизит потребление системных (''sys'') ресурсов CPU, но немного увеличит ''latency'' на платформе. | и процесс DPI будет запускаться с обычным (не ''realtime'') приоритетом, что существенно снизит потребление системных (''sys'') ресурсов CPU, но немного увеличит ''latency'' на платформе. |
| |
**Клиентам, использующим функционал BRAS, при обновлении СКАТ на версию 8.5+ необходимо обратить внимание на [[dpi:bras_bng:opt_bras_l3:bras_steps:radius_auth_fastpcrf_setup:start#Изменение параметров при обновлении|изменения]].** | <note tip>Клиентам, использующим функционал BRAS, при обновлении СКАТ на новую версию необходимо обратить внимание на изменения.</note> |
| |
===== Обновление платформы DPI до версии 12.0 Machu Picchu ===== | ===== Обновление платформы DPI до версии 13.0 Congo ===== |
12.0 Machu Picchu ((Мачу Пикчу --- "город среди облаков", расположен в Перу, имеет статус Всемирного Наследия ЮНЕСКО)) | |
| 13.0 Congo ((Колыбель человечества: люди обитают здесь более 50 тыс лет)) |
| |
Проверить текущую установленную версию можно командой: | Проверить текущую установленную версию можно командой: |
</code> | </code> |
| |
Откат на 11.4.2: | Откат на 12.4: |
<code bash> | <code bash> |
yum downgrade fastdpi-11.4-2 fastpcrf-11.4-2 | yum downgrade fastdpi-12.4-0 fastpcrf-12.4-0 |
</code> | </code> |
| |
</code> | </code> |
| |
==== Изменения в версии 12.0 ==== | ==== Изменения в версии 13.0 ==== |
| ===DPI=== |
| - Поддержка LAG/LACP в on-stick. [[dpi:dpi_components:platform:dpi_inst_spec:dpi_onstick|Описание]] |
| - Переход на 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|Описание]] |
| - Приоритет определения по SNI в кастомных сигнатурах для автономных систем, помеченных как ''mark1''. [[dpi:dpi_options:opt_priority:priority_config_as|Описание]] |
| - Приоритет более специфичных кастомных 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#протоколы|Описание]] |
| - Поддержка жестких блокировок (несмотря на имя хоста/SNI) — задается в дополнительном поле в черном списке адресов, пример: ''1.1.1.1 443 hard''. [[dpi:dpi_options:opt_filtration:making_dictionary|Описание]] |
| - Улучшено детектирование 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#конвертация_файла|lst2dscp]], [[dpi:dpi_options:opt_shaping:shaping_session#настройка_полисинга_по_сессии|lst2tbf]] |
| - Добавлены протоколы QUIC_UNKNOWN - QUIC без SNI и QUIC_UNKNOWN_MARKED - QUIC без SNI и AS с пометкой MARK2. [[dpi:dpi_options:opt_priority:priority_config_as|Описание]] |
| - Исправлено: определение хар-к 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#dns|Описание]] |
| - Исправлено: падение при трейсе DNS |
| - Улучшено определение протокола VIBER_VSTREAMS |
| - Исправлено: в процессе остановки fastDPI не принимаем и не обрабатываем никакие запросы по ctl |
| - Добавлен протокол SSTP (49296) |
| - Добавлен протокол ANYDESK (49297,54273) |
| - Улучшено распознавание LANTERN |
| |
- Изменено: переход на DPDK 22.11 LTS. | ===BRAS=== |
- Добавлено: разбор заголовков с защитой ''Chaos Protection'' в QUIC IETF. | - Добавлено: учет DHCP-пакетов от абонента в биллинговой статистике: абонентский CPE (то есть Wi-Fi роутер) без клиентов (например, ночью) — посылает только запросы на продление лицензии. Так как эти запросы перехватывались BRAS и не включались в аккаунтинг, происходило завершение сессии по idle timeout |
- Добавлено: параметр (холодный) ''nat_transcode_cidr'' который задает CIDR белых адресов оператора. Возможно только 2 CIDR. Значения используются при перекодировке белый --> серый для NAT 1:1. Для серого адреса может быть назначен любой белый адрес для NAT 1:1. | - Исправлено: действия при изменении QinQ/VLAN у абонента |
- Изменено: хэш функция распределения по рабочим потокам: ''(crc(ip_src) % nthread + crc(ip_dst) % nthread) % nthread''. | - Исправлено: ''framed-pool renew''\\ В некоторых случаях формировались некорректные DHCP-ответы. Добавлена трассировка в лог DHCP-пакетов для ''framed-pool renew'' |
- Изменено: алгоритм выделения белых адресов для CG-NAT: ''crc(серый) % nthread + crc(белый) % nthread''. | - Исправлено: прием пакетов от relay. Ранее проверялось, что relay находится в сети fc::/7. Теперь эта проверка излишняя и удалена, — у relay может быть любой адрес. |
- Изменено: Сообщение ''[NFLW] very long operation ....'' выводится всегда независимо от количества повтора сообщений. | - Исправлено: разбор DHCPv6-опций от Радиуса |
- Изменено: изменено имя каталога записи файлов — добавлено ''stream''. | - Добавлена команда ''subs prop show active''. Команда выводит дамп L2-свойств всех активных (не-expired) абонентов. [[dpi:bras_bng:cli:subs#subs_prop_show|Описание]] |
- Добавлено: статистика вывода информации по отправлению Netflow/IPFIX<code bash> | - Изменено: запрет вызова CLI-команд в процессе остановки |
[STAT ][2022/11/20-17:55:03:213770] Statistics on NFLW_export : {a/b/c%/d/e} | - Исправлено: idle-timeout для сессии. Для PPPoE-сессий idle timeout должен браться из настройки ''bras_ppp_idle_timeout'', если не задан явно в ответе авторизации (атрибут Idle-Timeout). |
| - Добавлена приоритетная переадресация с переводом DSCP. [[dpi:dpi_options:opt_priority:priority_settings#настройка_наследования_и_преобразования_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#subs_ping_inet|Описание]] |
| - Исправлено: вызов деанонса IP-адреса абонента при acct idle. В опцию роутера ''router_subs_announce'' добавлен новый флаг: ''0x10000'' - деанонсировать L3-абонента при наступлении acct idle (закрытие acct-сесси по idle timeout). [[dpi:dpi_components:router#особенности_анонсирования_адресов|Описание]] |
| - Добавлена поддержка задания профиля услуги 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#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 после вызова команды с большим числом параметров |
| |
a - количество выполнения циклов отправки | ===NAT=== |
b - количество циклов отправки, когда время, затраченное на отправку, превысило период выполнения циклов | - Добавлена утилита ''checknat'' для проверки распределения белых адресов. [[dpi:dpi_components:utilities:management_utilities#checknat|Описание]] |
c - процент превышения количества циклов отправки: 100 * b/a | - Исправлено online изменение параметра ''nat_private_cidr'' |
d - время в микросекундах максимальной продолжительности цикла отправки | |
e - время в микросекундах периода отправки статистики (значение параметра ''netflow_timeout''(параметр задается в секундах)) | |
| |
Пример: | ===Балансировщик=== |
[STAT ][2022/11/20-17:55:03:213770] Statistics on NFLW_export : {7/0/0.00%/45297us/30008163us} | - Добавлен режим L2 балансировщика трафика. Данная доработка позволяет использовать СКАТ как балансировщик трафика на основе IP-адресов, принадлежащих AS и определяемой как ''local'' в ''asnum.dscp''. [[dpi:load_balancer|Описание]] |
</code> | - Добавлен движок mqrx_lb_engine, который активируется при dpdk_engine=2. [[dpi:load_balancer#настройка_etc_dpi_fastdpiconf|Описание]] |
- [PCRF][PPPoE] Исправлено: если Радиус отдает нам IPv6-адрес вместо префикса, мы не делали префикс из адреса, что приводило к пересозданию acct-сессий. Вновь создаваемые acct-сессии были без логина и прочих важных для провайдеров атрибутов. | |
- [BRAS][L3-AUTH] Изменено: Framed-Route теперь не применяется к PD-префиксу. | |
- [PCRF][ACCT] Исправлено: при отсоединении (unlink) записи от мультисессии не корректировались IP-адреса для мультисессии. Отсоединение (unlink) происходит при агрегации. В результате в дальнейшем к этой мультисессии могли быть привязаны другие записи, не имеющие уже к ней никакого отношения. | |
- [PCRF][DHCPv6-Pool] Исправлено: формирование поля Link-Address для Relay-Fwd при отправке запроса на конкретный DHCPv6-сервер. | |
- [BRAS][PPPoE-IP6] Запрос IPv6-адреса из Framed-IPv6-Pool осуществляется по приходу от клиента первого IP6CP Cfg-Req. | |
- [CLI][ACCT] Добавлено: вывод NAS-атрибутов fastDPI-сервера в командах PCRF acct show. | |
- [BRAS][DHCP] Исправлено: отправка NAK на DHCP-Request для другого сервера. | |
- Добавлена поддержка DDP профилей для карт Intel 700-series (драйвер i40e) для балансировки туннелей PPPoE/GTP/MPLS при использовании ''dpdk_engine=2''. DDP загружается из файла ''/lib/firmware/intel/i40e/ddp/i40e.pkg'' при инициализации i40e портов. Время жизни загруженного DDP-профиля: до перезагрузки сервера. | |
- Изменено: алгоритм выбора сервера для записи SDS. | |
- [CLI] Добавлено: установка ''l2subs_id'' в команде ''subs prop set''. | |
- [BRAS][DHCP-Relay] Добавлена поддержка ''l2subs_id''. | |
- [BRAS][AUTH] Добавлена поддержка ''l2subs_id'' для L3-авторизации, так как в ответе L3 auth от Радиуса может указываться, что это L2-абонент. | |
- [BRAS][ARP-AUTH] Добавлена поддержка ''l2subs_id''. | |
- [BRAS][PPPoE][CLI] Добавлено: атрибут ''l2subs_id'' для PPPoE-сессии. | |
- [BRAS][PPPoE] Удалена поддержка авторизации по MAC, без логина и пароля, удаление опции ''bras_ppp_mac_auth''. | |
- [PPPoE][CLI] Добавлена поддержка параметра ''subs_id'', идентифицирующего PPPoE-сессию. | |
- [BRAS] Добавлен класс ''l2lan_id'' --- идентификатор L2-сети. ''l2lan_id'' предназначен для разделения абонентов по VLAN. ''l2lan_id'' получается из ''l2subs_id'', то есть его формирование задается той же опцией ''bras_subs_id''. По сути ''l2lan_id'' --- это VLAN-префикс из ''l2subs_id''. | |
- [BRAS][DHCP] Все внутренние БД DHCP-сессий теперь учитывают ''l2lan_id'' --- он входит в их ключ по MAC и Client-Id. То есть два абонента с одним и тем же MAC-адресом, но в разных VLAN, считаются разными абонентами (если ''bras_subs_id'' задано учитывать VLAN). Вторичные ключи по Opt82 и Q-in-Q не учитывают ''l2lan_id''. Подробнее [[dpi:bras_bng:opt_bras_l2:bras_l2_subs_id:start|bras_subs_id]]. | |
- Добавлен настроечный параметр ''rx_dispatcher ='' метод хеширования flow по рабочим потокам | |
* 0 --- по умолчанию используется прежний метод ''(ip_src+ipdst)%N ) & ip_mask''; | |
* 1 --- новый метод с поддержкой перекодировки для NAT1:1 ''(CRC(IP SRC)%N+CRC(IP_DST)%N)%N''. | |
- [Radius monitor] Добавлена поддержка экспорта адреса и порта NAS, а также других атрибутов. | |
- [Radius monitor] Добавлено подключение [[dpi:dpi_options:opt_li:start|12 услуги]]. | |
- [BRAS] Добавлена настройка ''bras_ppp_lcp_start_timeout''. | |
| |
==== Изменения в версии 12.1 ==== | ===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 |
| |
- Добавлено: [[dpi:opt_cgnat:cgnat_diagnostics:start|диагностическая информация NAT]]. | ===SDS=== |
- Добавлено: поддержка режима [[dpi:dpi_components:platform:dpi_inst_spec:dpi_onstick:start|On-Stick]]. | - Значение ''storage_tag'' устанавливается на основании приоритета по направлению или приоритета по протоколу |
- Минорные исправления в работе CG-NAT. | |
- Поддержка [[dpi:dpi_options:opt_li:start|12 услуги]]((Запись абонентского трафика в PCAP файл)) на VCHANNEL. | |
- Поддержка загружаемых из облака протоколов с именами. | |
- SDS: передача данных в формате ''pcapng''. | |
| |
==== Изменения в версии 12.2 ==== | ===Radius=== |
| - Добавлена возможность работы со стандартными интерфейсами linux с помощью ''libpcap''. [[dpi:dpi_components:radius:radius_config#настройка_linux_интерфейсов|Описание]] |
| |
- Исправления в выводе статистики утилизации CG-NAT. | ====Изменения в версии 13.1==== |
- Разбор новых версий GQUIC. | <note warning>Внимание! Обнаружена ошибка в версии 13.1. В PPPoE не происходит закрытие сессии при истечении ''idle_timeout''.\\ Исправление планируется в следующем релизе.</note> |
- Новая услуга 16 --- белый список с переадресацией на ''captive portal'' без доступа абонентов в интернет (по причине аварии на аплинках, абонент в долгосрочной блокировке и т.п.). | ===DPI=== |
- Новая утилита ''dpdkinfo'' (-h подсказка, module_eeprom - информация по оптической диагностике модуля SFP, если она поддерживается модулем). | - Глобальный рефакторинг кода - отказ от поддержки ''pf_ring'' |
| - Добавлено: услуга 19 - подмена DNS-ответов. [[dpi:dpi_options:dns_substitution|Описание]] |
| - Изменено: минимальный размер PCAP файла до 100 MB. Ротация PCAP-файлов при reload [[dpi:dpi_options:opt_li:li_ctrl|Описание]] |
| - Изменено: улучшена трассировка событий DROP |
| - Исправлено: ошибочное появление сообщения уровня ERROR при некоторых запросах ''fdpi_ctrl'' |
| - Исправлено: некорректный разбор TLS(SNI) в случае если задано несколько 'ALPN Protocol' |
| - Изменено: механизм обновления списков соответствия AS и IP. [[dpi:dpi_options:opt_statistics:statistics_asn|Описание]] |
| |
==== Изменения в версии 12.3 ==== | ===BRAS=== |
| - Исправлено: контроль активности абонента с помощью unicast ARP Request. Ранее был broadcast ARP Request, что не оптимально для сети. [[dpi:bras_bng:bras_l2_options:subs_activity|Описание]] |
| - Добавлено: SHCV (Subscriber Host Connectivity Verification) — контроль активности DHCP-абонента. Учтен сценарий для уже "закрытой" записи, чтобы не было повторного срабатывания SHCV и росте счетчика 'SHCV: session closed by inactivity'. [[dpi:bras_bng:bras_l2_options:subs_activity|Описание]] |
| - Добавлено: ARP Proxy для известных маршрутов (только в режиме роутера), Данную возможность применяем только если инициатор ARP-запроса - известный нам абонент. В опцию ''bras_arp_proxy'' добавлен новый флаг - 0x0004. [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_arp_proxy|Описание]] |
| - Исправлено: 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) |
| - Исправлено: ошибка при перехвате и обработке 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#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 |
| |
| ====Изменения в версии 13.2==== |
| - [BRAS][PPPoE] Исправлено: пинг неактивного клиента запросами Echo |
| - Добавлено: поддержка профилей услуги 19 (Подмена DNS-ответов). Для услуги 19 возможно задавать AAAA-записи и указывать * для доменов.[[dpi:dpi_options:dns_substitution|Описание]] |
| - Исправлено: для профиля услуги 18 не требуется одновременно задавать DSCP и TBF. [[dpi:dpi_options:opt_shaping:shaping_session#создание_профиля_услуги|Описание]] |
| - Исправлено: приоритет IP:PORT перед IP и CIDR для кастомных определений протоколов. [[dpi:dpi_components:dpiui:user_guide:vas_cloud_services:custom_protocols|Описание]] |
| - Изменено: приоритет пользовательских протоколов выше облачных. [[dpi:dpi_components:dpiui:user_guide:vas_cloud_services:custom_protocols|Описание]] |
| - Исправлено: длина АААА записей в услуге 19 |
| - Добавлено: в параметр ''block_options'' маска 8 — не формировать RST-пакеты блокировки и переадресации для направления пакетов inet→subs. [[dpi:dpi_options:opt_filtration:filtration_settings#настройки_блокировки|Описание]] |
| - [DPI] Улучшено: анализ out-of-order пакетов (также появилась возможность задавать количество буферов для обработки out-of-order пакетов) и расшифровка фрагментированного QUIC. Также появилась возможность задавать количество буферов для обработки out-of-order пакетов, устранено исчерпание буферов для обработки out-of-order пакетов. [[dpi:dpi_options:opt_filtration:filtration_common|Описание]] |
| - [DPI] Исправлено: распознавание DOT |
| - [CTRL] Добавлено: новый формат для вывода полисинга. [[dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_json#второй_вариант|Описание]] <code bash>fdpi_ctrl list profile --policing --profile.name htb_6 --outformat=json2</code> |
| - [CTRL] Добавлено: загрузка профилей полисинга c новым форматом (где есть value и unit). [[dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_json#второй_вариант|Описание]] |
| - [BRAS][IPv6] Добавлено: при получении от клиента DHCPv6 confirm и отсутствии сессии в БД BRAS отправляется ответ со статусом ''NotOnLink'' |
| - [FastPCRF][DHCPv6] Исправлено: ошибка, приводящая к закрытию и последующему открытию текущей IPv6 accounting сессии при обработке DHCPv6 запросов от клиента на продление аренды адреса |
| - [DPI] Добавлено: обновление ''asnum.bin'' из облака, параметр ''asnum_download'' аналогичен по набору значений ''[[dpi:dpi_options:opt_filtration:filtration_settings|federal_black_list]]''. [[dpi:dpi_options:opt_priority:priority_config_as|Описание]] |
| - Добавлено: параметр ''mem_ssl_savebl'' (холодный). Задает количество сохраняемых буферов для разбора ssl при перемешивании пакетов. [[dpi:dpi_components:platform:dpi_admin:mem_problems#mem_ssl_savebl|Описание]] |
| - Добавлено: статистика утилизации сохранения буферов парсинга ssl запросов. [[dpi:dpi_components:platform:dpi_admin:mem_problems#cтатистика_утилизации_сохранения_буферов_парсинга_ssl_запросов|Описание]] |
| - [BRAS][DHCPv6] Добавлена возможность извлекать option 37 и option 38 из клиентского пакета |
| - [Router][tap] Исправлено: инициализация статуса моста при старте fastDPI. TAP-девайс для сквозного LAG находится в состоянии Up, если хотя бы один порт в сквозном LAG находится в состоянии Up и его второй конец в мосту также в Up. Статус моста (Up/Down) вычислялся только при наступлении события link Up/Down, при старте fastDPI статус моста полагался равным Down. Данный патч инициализирует статус мостов (Up/Down) при старте роутера на основании текущего статуса портов. |
| - [BRAS] Исправлено: local interconnect разрешаем только если srcIP — известный нам абонент. Ранее не проверялось, что srcIP — известный нам абонент, что могло привести к подделке IP-адреса абонента и DDoS от имени этого поддельного IP других локальных абонентов с пометкой local interconnect. |
| - Добавлено: CLI-команда ''permit''. |
| - [CLI][Ping] Изменено: сообщение об ошибке, если subs IP не найден |
| - [CLI] Добавлено: В json-вывод команды ''dev xstat'' добавлен булевый признак ''on_stick'' |
| - [CLI] Изменено: json-вывод команды ''dev info'' для on-stick.\\ Для on-stick-девайса было:<code bash>"pci_address": "on-stick based on 82:00.3"</code>Теперь:<code bash> // адрес базового девайса |
| "pci_address": "82:00.3" |
| // признак on-stick |
| "on-stick": "true|false"</code> |
| - Удалены поддельные yandex sni из TELEGRAM_TLS |
| - Добавлен параметр ''mem_quic_ietf_savebl''. Задает количество буферов для разбора ''quic_ietf''-запросов, которые состоят из нескольких пакетов. Значение по умолчанию 15% от ''mem_ssl_parsers''. [[dpi:dpi_components:platform:dpi_admin:mem_problems#mem_quic_ietf_savebl|Описание]] |
| - [DPI] Добавлены протоколы <code bash> |
| "HLS VIDEO" 49298 |
| "ICMP TUNNEL" 49299 |
| "DNS TUNNEL" 49300 |
| "FORTICLIENT_VPN" 49301 |
| "CISCO_ANYCONNECT_VPN" 49302 |
| "SHADOWSOCKS_VPN" 49303 |
| "NOT_DNS" 49304 |
| </code> |
| - Добавлена возможность отправки DNS query по IPFIX |
| - [DPDK] Добавлены read-only движки: RSS и диспетчер на порт |
| - [BRAS][SHCV] Исправлен вызов SHCV до полного запуска пайплайна обработки пакетов. Это было возможно в многопортовых конфигурациях, когда время запуска пайплайна относительно велико. |
| - [DPDK] Добавлен вывод типа создаваемых mempool на старте fastDPI |
| - [Router] Добавлена статистика по TAP-девайсам. В вывод CLI-команды ''router vrf show'' добавлена статистика по TAP-девайсам - сколько пакетов/байт вычитано с TAP, сколько записано в порт с TAP, сколько передано в TAP, число событий и ошибок. |
| - [Router] Изменена отправка пакетов, вычитанных с TAP-девайса: выбранный slave-поток для записи закрепляется за TAP-интерфейсом на ближайшие 5 секунд, что должно значительно уменьшить реордеринг при большом трафике с TAP-интерфейса |
| - [DPI] Улучшено детектирование DNS TUNNEL, CISCO_ANYCONNECT_VPN, SHADOWSOCKS_VPN, DPITUNNEL, FORTICLIENT_VPN, SHADOWSOCKS_VPN |
| - Изменен log level для запросов от телеметрии на INFO независимо от результата запроса |
| - [fastPCRF][ACCT] Исправлена отправка Interim-Update при переключении на резервный RADIUS сервер |
| - [BRAS][CLI] Исправлено: абоненты, закрытые по SHCV, теперь не выводятся командой ''fdpi_cli subs prop show active'' |
| - [BRAS][Auth] Оптимизация подключения/отключения услуг |
| - [FastRadius] Разбор конфигурационного файла переведен на новый движок |
| - [BRAS][DHCP] Offer посылаем сперва на bcast 255.255.255.255 |
| - [BRAS][CLI] Исправлено: команда ''dhcp show stat vrf'' поддерживается только в режиме Radius proxy (в режиме DHCP Relay вызов этой команды приводил к падению) |
| - [DPI] Улучшено распознавание DNS Tunnel и Shadowsocks |
| - [Utils] Улучшены утилиты. ''checkproto'': если задать IP и SNI, будет выведен результат с учетом MARK1 и приоритета, ''ascheckip'': выводит DSCP и MARK1 |
| - [Utils] Добавлена поддержка в url2norm окончания имени хоста на '':'', что позволяет задать "любой порт" для HTTP |
| - [CLI] Исправлена команда ''dhcp disconnect'' |
| - [DPI] Исправлено: допускается смена протокола по CUSTOM SNI если ранее произошло распознавание по встроенной сигнатуре |
| - [DPI] Дополнительная проверка целостности файла при загрузке списка AS из облака |
| - [DPI] Исправлена загрузка черных и белых списков из облака |
| - [utils] Добавлена поддержка новых форматов в утилите обратной конвертации черных и белых списков bin2ip |
| - Исправлено возможное падение в корку |
| - Поддержка 128-ядерных процессоров. [[dpi:dpi_brief:dpi_requirements#рекомендуемые_требования|Описание]] |
| |
- Добавлено: поддержка VRF в роутере (описание готовится). | |
- Сервис управления авторизацией PPPoE на основе поля Service-name. | |
- Добавлено: поддержка отправки heartbeat для внешних bypass (описание готовится). | |
- Добавлено: извлечение и передача в IPFIX куки из Set-Cookie. | |
- Улучшено: блокировка коротких подвисаний TCP протокола в потоках IPFIX через дополнительную установку ''user timeout'' (в дополнении к стандартному механизму ''tcp keep alive''). | |
- Добавлено: производительный ''rx_dispatcher=2'' с равномерной балансировкой по произвольному количеству потоков (но без поддержки ''nat1:1'' с требованием назначения конкретных адресов). | |
- [BRAS][PPPoE] Исправлено: ''dual-stack'': добавление IP-адресов к уже существующей acct-сессии. | |
- [PCRF] Исправлено: переключение ''persist queue'' в режим "есть связь". | |
- [CLI] Добавлена команда CLI ''fdpi_cli pcrf persist queue reconnect'', которая позволяет сделать реконнект к fastDPI без сброса очереди. Может быть применена к конкретному соединению или ко всем. | |
- [PCRF][PPPoE][Framed-Pool] Исправлено: создание acct-сессии с тем ''session_id'', который был анонсирован при авторизации. | |
- Добавлена поддержка формата ''pcapng'' для записи в СХД. | |
- [CoA] Добавлена обработка CoA Update по ''l2subs_id''. | |
- Добавлено: сохранение в экспорте NAT трансляций ICMP протокола. | |
- Изменено: параметр ''nat_exclude_private'' и соответсвующая поддержка: ''int nat_exclude_private;''\\ Битовая маска для того чтобы не делать NAT для серых адресов: \\ 0 — всегда делаем преобразование серый --> белый \\ 1 — Не делаем NAT для серых адресов (''ip_src'' и ''ip_dst'' серые или находятся в ''psz_prms_user_private'') \\ 2 — ''ip_src'' — серый с учетом ''psz_prms_user_private'' и AS для ''dst_ip = local''\\ 4 — ''ip_src'' — серый с учетом ''prms_user_private'' и AS для ''dst_ip = peer''. | |
- [CoA] Добавлена обработка CoA Reauth по ''l2subs_id''. | |
- [CoA] Добавлена обработка CoA Disconnect по ''l2subs_id''. | |
- [fDPI] Максимальное число кластеров увеличено до 12 (было 10). | |
- [PCRF][ACCT] Добавлено: передача атрибута ''VasExperts-L2-SubsId'' в ''Acct Start/Interim/Stop''. | |
- [DPDK] Добавлено: ''disable Ethernet Flow Control'' на старте порта. | |
- [PCRF][DHCPv6-POOL] Исправлено формирование Client-DUID при составлении DHCP6-RENEW для Framed-IPv6-Pool\\ Client-DUID должен быть неизменным на всем протяжении DHCPv6-сессии, иначе при Renew DHCPv6-сервер может выдать **другой** IPv6-префикс, что приведет к закрытию PPPoE-сессии. Для достижения неизменяемости теперь Client-DUID формируется из ''l2subs_id'' абонента. | |
- [PCRF][DHCP-POOL] Исправлена идентификация 'запрос-ответ' при работе с DHCP-пулами.\\ В качестве идентификатора используется:\\ Для DHCPv4 — MAC-адрес абонента (''chaddr'') + ''xid'' запроса\\ Для DHCPv6 — опция ''Client-Id'' и ''xid'' запроса. Сервер **обязан** передать опцию ''Client-Id'' в ответе, в отличие от других опций запроса. | |
- [BRAS] Добавлена CLI-команда ''dhcp show stat vrf''\\ Вывод числа DHCP-абонентов в разрезе VRF. | |
- [PCRF] Добавлена CLI-команда ''pcrf radius enable/disable''. | |
- [PCRF] Добавлена CLI-команда ''pcrf radius ping''. | |
- [PCRF] Добавлена CLI-команда ''pcrf radius status''. | |
- Изменено: если у сессии нет белого адреса — включается CG-NAT. | |
- Добавлено: если услуга 11 удалена, NAT выключается и освобождаются ресурсы. Происходит только если есть (прочитаны) данные по flow. | |
- [BRAS][DHCP] Использование MAC-адреса абонента из DHCP-запроса для ''l2subs_id''.\\ При формировании L2-идентификатора абонента (см. ''bras_subs_id'') используется ''srcMAC'' из ethernet-заголовка пакета. В случае, если DHCP-запросы проходят через DHCP Relay, ''srcMAC'' в ethernet-заголовке DHCP-пакета уже не является MAC-адресом абонента. DHCP-запросы всех абонентов, проходящих через DHCP Relay, имеют один и тот же MAC в ethernet-заголовке и один и тот же ''subs_id''.\\ Решение: для формирования L2-идентификатора MAC-адрес абонента теперь берется из DHCP-пакета, поле ''chaddr''. | |
- [PCRF] ''watchdog'' — новый монитор Radius-серверов.\\ Новые параметры ''fastpcrf.conf'': | |
* Тайм-аут пингования Радиус-серверов, в секундах.\\ Если нет никаких запросов авторизации, fastPCRF периодически пингует Радиус-сервера, посылая Server-Status или Access-Request. Если сервер отвечает, то он считается доступным. Значение по умолчанию: 60 секунд. ''radius_keepalive=60''\\ | |
* User-Name (''radius_ping_user_name'') и Password (''radius_ping_user_password'') псевдоабонента для пинг-запросов.\\ FastPCRF пытается поддерживать соединение со всеми описанными Радиус-серверами, периодически посылая пинг-запрос на сервера.\\ Пинг-запрос — это запрос Status-Server (если Радиус его поддерживает) или обычный Access-Request с заданными User-Name и Password. Эти параметры задают User-Name и Password для пинг-запросов Access-Request (в Server-Status эти параметры не используются). FastDPI важен сам факт ответа сервера на пинг-запрос, содержимое ответа (Access/Reject и их атрибуты) не анализируется. Если данные User-Name и Password не заданы — пинг-запрос Access-Request все равно будет посылаться, но без атрибутов User-Name и Password. Значений по умолчанию нет. Параметр ''radius_revive_period'' удален за ненадобностью. | |
- Изменено: Для flow ставится признак ''p_flow_'' -> ''cmn.bts_check_ip |= ntconnt::bts_nat_must_whip''\\ Признак говорит о том, что идет обращение с серого адреса и для этого flow требуется белый адрес. Если белый адрес не назначен — попытки выделения белого адреса продолжаются **(Для TCP — только если SYN)**. Это происходит из-за того что могут идти запросы с серого адреса, а только потом появляется услуга 11, но flow уже существует и будет вечно мертвый. | |
- Изменено: Если для flow задан белый адрес, проверяется наличие 11 услуги. Если услуги нет — белый адрес освобождается. | |
- [Router] Добавлено: сообщение об ошибке в ''fastdpi_alert.log'' "VRF не имеет TAP"\\ Если VRF не имеет ни одного девайса — невозможно анонсировать адрес в такой VRF. Данная ошибка выводится в ''fastdpi_alert.log'' не чаще чем раз в час для каждого VRF. | |
- Добавлено: команды ''fdpi_cli'': ''nat dump transcode'', ''nat dump translater [имя профиля]'', ''nat dump translater data [имя профиля]''. | |
- Новое имя профиля полисинга — ''BV##NNNN[#MMMM][#++++----]'', где ''NNNN'' — скорость входящего трафика в кбит/с, ''MMMM'' — скорость исходящего трафика в кбит/с, ''+'' — включенный класс, ''—'' — отключенный класс. | |
- [PCRF] Добавлено: новое значение ''chaddr@opt60'' для опции ''radius_user_name_dhcp''\\ Пример: ''radius_user_name_dhcp=chaddr@opt60'', User-Name в Access-Request формируется из MAC-адреса заголовка DHCP пакета (поле ''chaddr'') и опции 60, если эта опция есть в DHCP-запросе. | |
- Изменено: улучшено распознавание FACEBOOK VIDEO. | |
- Исправлено: при разборе ''quic_ietf'' для первого пакета CRYPTO, если задан ''offset==0'' — проверяется факт возможной фрагментации. | |
- Добавлено: изменения парсинга — учет изменений в версиях Google QUIC: до версии 34 было дополнительное поле "Private Flags". Не разбирали такие пакеты, начиная с версии 39 — изменился порядок байт для записи "Data Length". | |
- Добавлен полисинг и услуга 16 по значениям из имени профиля. | |
- [BRAS] Добавлено: новая опция ''bras_ip_filtering''\\ [hot] Фильтрация трафика (битовая маска) по умолчанию отключена ''(=0)''.\\ Допустимые флаги: ''0x0001'' — контроль подмены IP абонента (''restricting forged traffic''). Дропаем пакет на пути ''subs'' -> ''inet'', если IP-адрес абонента (''srcIP'') неизвестный для L2 BRAS и ''bras_term_by_as = 0'' и AS абонента не ''local''. ''bras_ip_filtering=0''. | |
- [BRAS] Добавлено: опция ''bras_vrf_isolation'' — изоляция на уровне VRF\\ Добавлена новая опция ''fastdpi.conf'': [hot] Изоляция VRF. По умолчанию ''(0)'', L2 BRAS не изолирует абонентов из разных VRF: Если данный режим включен ''(1)'', то абоненты из разных VRF будут изолированы друг от друга: для абонента из VRF1: шлюз также должен быть в VRF1, ''local interconnect'' будет работать только для абонентов из той же VRF1. ''bras_vrf_isolation=0''\\ При включении этой опции: | |
* 1. ARP абонента к шлюзу — обрабатывается fastDPI только если абонент и шлюз в одном VRF; | |
* 2. ICMP ping шлюза — обрабатывается fastDPI только если абонент и шлюз в одном VRF; | |
* 3. ''local interconnect'' — применяется только если оба абонента в одном VRF. | |
- Исправлено: сообщения об ошибке для клиента не должны содержать LF в json. | |
- [BRAS][ARP] Изменено: обработка ARP к шлюзу. Отвечаем на ARP-запрос к шлюзу только если VRF отправителя и шлюза совпадают (''sender'' и GW находятся в одной VRF). | |
- [VRF] Изменено: задание имени VRF через услугу 254 (только Radius). | |
- [BRAS][DHCP-Proxy] Session-Timeout и Lease-Time для Framed-Pool.\\ Если адрес выдан из Framed-Pool на малое время (малое ''lease-time'') и указано большое ''session-timeout'' при авторизации, то все запросы Renew/Rebind от абонента нужно посылать на DHCP-сервер через PCRF для продления лицензии, иначе DHCP-сервер может посчитать, что адрес свободен. Реавторизация производится только при достижении ''session-timeout''. | |
- Добавлено: поддержка услуги 16 — обработка запросов SYN и последующая переадресация без передачи пакетов в интернет. | |
- [Router] Добавлено: общие ''neighbor cache'' для VRF.\\ В настройку VRF добавлена опция: ''router_vrf { [cold][optional]''\\ Строка — имя ARP кеша для данной VRF по умолчанию, каждый VRF имеет свой собственный, изолированный от других ARP/Neighbor кеш. Если нужно, чтобы несколько разных VRF имели общий ARP/Neighbor кеш, то следует задать в описании этих VRF одно и то же значение опции ''neighbor_cache. neighbor_cache=... }''. | |
- [PCRF] ''fastpcrf.conf'' опция ''radius_user_name_dhcp'' — добавлено новое значение ''opt61@opt60: radius_user_name_dhcp=opt61@opt60''.\\ User-Name в Access-Request формируется из DHCP-опций 61 и 60, если эти опции есть в DHCP-запросе.\\ Новые опции ''fastpcrf.conf'' — в каких атрибутах передавать DHCP-опции в Access-Request.\\ [hot] Задание атрибутов, в которых передаются опции DHCP. Формат задания: ''attr_dhcp_opt43=vendorId.attrId'' где ''vendorId'' — id вендора, число от 0 до 2^32-1.\\ Если ''vendorId != 0'', то значение передается в VSA-атрибуте.\\ Если ''vendorId == 0'', то значение передается в обычном Радиус-атрибуте (не-VSA).\\ ''attrId'' — id атрибута, число от 1 до 255.\\ Предполагается, что атрибуты имеют тип ''octets'' (передаются как есть в бинарном виде).\\ Значение ''0.0'' — не передавать данный атрибут на Радиус-сервер.\\ Значения по умолчанию указаны ниже: ''attr_dhcp_opt43=0.0, attr_dhcp_opt60=43823.34 # VasExperts-DHCP-ClassId'', ''attr_dhcp_opt61=43823.33 # VasExperts-DHCP-ClientId''. | |
- Добавлено: поддержка услуги 16 и соответствующего профиля — задание, удаление, просмотр через ''fdpi_ctrl'' профиль совпадает со структурой для услуги 5.\\ Пример задания: ''fdpi_ctrl load profile --service 16 --profile.name portal_info_1 --profile.json '{ "ip_list" : "/var/lib/dpi/ip_list_1.bin", "redirect" : "http://info.test.ru" }' '', параметр ''max_profiles_serv16'' — задает максимальное кол-во профилей. По умолчанию 32. | |
- [DHCP-Proxy] Введены режимы обработки CoA Disconnect\\ Добавлена новая опция ''bras_dhcp_disconnect'', которая является битовой маской следующих флагов: | |
* ''0x0001'' — ''disable acct stop'', не посылать немедленно ''acct stop'' для disconnected DHCP-абонента; | |
* ''0x0002'' — ''disable L3 auth'', не выполнять L3-авторизации для disconnected DHCP-абонента; | |
* ''0x0004'' — ''block traffic'' — блокировать весь трафик от disconnected абонента (то есть на пути ''subs'' -> ''inet''); | |
* ''0x0008'' — на DHCP Request -> отвечать NAK; | |
* ''0x0010'' — игнорировать DHCP Request (ждем DHCP Discovery). | |
- [DHCP-Proxy] Добавлено: контроль смены IP-адреса абонента\\ Если абоненту выдается другой IP-адрес, то для прежнего IP-адреса нужно сделать деанонс. | |
- [VRF][CLI] Поддержка VRF добавлена во все CLI-команды роутера. | |