{{indexmenu_n>13}} ===== Версия 12.0 Machu Picchu ===== 12.0 Machu Picchu ((Мачу Пикчу --- "город среди облаков", расположен в Перу, имеет статус Всемирного Наследия ЮНЕСКО)) Проверить текущую установленную версию можно командой: yum info fastdpi Откат на 11.4.2: yum downgrade fastdpi-11.4-2 fastpcrf-11.4-2 После обновления или смены версии требуется рестарт сервиса: 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 ==== Изменения в версии 12.0 ==== Статья в блоге: [[https://vasexperts.ru/blog/skat/skat-dpi-versiya-12-0-obzor-obnovlenij/|СКАТ DPI версия 12.0 — обзор обновлений]]\\ \\ Обзор версии 12 на YouTube: {{youtube>wZjhkvNc4Tc?}} - Изменено: переход на DPDK 22.11 LTS. - Добавлено: разбор заголовков с защитой ''Chaos Protection'' в QUIC IETF. - Добавлено: параметр (холодный) ''[[dpi:opt_cgnat:сgnat_settings:start|nat_transcode_cidr]]'' , который задает CIDR белых адресов оператора. Возможно только 2 CIDR. Значения используются при перекодировке белый --> серый для NAT 1:1. Для серого адреса может быть назначен любой белый адрес для NAT 1:1. - Изменено: хэш функция распределения по рабочим потокам: ''(crc(ip_src) % nthread + crc(ip_dst) % nthread) % nthread''. - Изменено: алгоритм выделения белых адресов для CG-NAT: ''crc(серый) % nthread + crc(белый) % nthread''. - Изменено: Сообщение ''[NFLW] very long operation ....'' выводится всегда независимо от количества повтора сообщений. - Изменено: изменено имя каталога записи файлов — добавлено ''stream''. - Добавлено: статистика вывода информации по отправлению Netflow/IPFIX [STAT ][2022/11/20-17:55:03:213770] Statistics on NFLW_export : {a/b/c%/d/e} a - количество выполнения циклов отправки b - количество циклов отправки, когда время, затраченное на отправку, превысило период выполнения циклов c - процент превышения количества циклов отправки: 100 * b/a d - время в микросекундах максимальной продолжительности цикла отправки e - время в микросекундах периода отправки статистики (значение параметра ''netflow_timeout''(параметр задается в секундах)) Пример: [STAT ][2022/11/20-17:55:03:213770] Statistics on NFLW_export : {7/0/0.00%/45297us/30008163us} - [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:bras_l2_subs_id:start|bras_subs_id]]. - Добавлен настроечный параметр ''[[dpi:opt_cgnat:сgnat_settings:start|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 ==== - Добавлено: [[dpi:opt_cgnat:cgnat_diagnostics:start|диагностическая информация NAT]]. - Добавлено: поддержка режима [[dpi:dpi_components:platform:dpi_inst_spec:dpi_onstick:start|On-Stick]]. - Минорные исправления в работе CG-NAT. - Поддержка [[dpi:dpi_options:opt_li:start|12 услуги]]((Запись абонентского трафика в PCAP файл)) на VCHANNEL. - Поддержка загружаемых из облака протоколов с именами. - SDS: передача данных в формате ''pcapng''. ==== Изменения в версии 12.2 ==== - Исправления в выводе статистики утилизации CG-NAT. - Разбор новых версий GQUIC. - Новая услуга 16 --- белый список с переадресацией на ''captive portal'' без доступа абонентов в интернет (по причине аварии на аплинках, абонент в долгосрочной блокировке и т.п.). - Новая утилита ''dpdkinfo''. [[dpi:dpi_components:utilities:management_utilities:start|Описание]]. ==== Изменения в версии 12.3 ==== Обзор версии 12.3 на YouTube: {{youtube>H2sf_76tXbc?}} - Добавлено: [[dpi:dpi_components:router:start|поддержка VRF в роутере]] - Сервис управления авторизацией PPPoE на основе поля Service-name. Описание в разделе [[dpi:bras_bng:bras_pppoe:start#настройка_service-name_для_vlan|Настройка авторизации PPPoE]] fdpi_cli help vlan group vlan group : manage vlan group authorization policy vlan group ... - manage vlan group 2 ... - manage = <2> vlan group 2 deny auth pppoe - deny authorization by pppoe and delete all its properties vlan group 2 allow auth pppoe - allow authorization by pppoe vlan group 2 show auth pppoe - show policy for authorization by pppoe vlan group 2 show auth all - show policy for all authorization protocols vlan group 2 show all - show all properties for group vlan group 0 show all - show all properties for all groups - full scan and print udr vlan group 2 auth pppoe allow add service-name name=sname delay=3 - allow authorization by pppoe for service-name sname with podo-delay=3 vlan group 2 auth pppoe deny add service-name name=sname delay=3 - deny authorization by pppoe for service-name vlan group 2 auth pppoe delete service-name name=sname - delete service-name sname and its properties vlan group 2 auth pppoe show service-name all - show service-name policy for authorization by pppoe vlan group 2 drop - drop packet without any analysis vlan group 2 pass - passthrough packet without any analysis - Добавлено: поддержка отправки heartbeat для внешних bypass - Добавлено: извлечение и передача в IPFIX куки из Set-Cookie - Улучшено: блокировка коротких подвисаний TCP протокола в потоках IPFIX через дополнительную установку ''user timeout'' (в дополнении к стандартному механизму ''tcp keep alive'') - Добавлено: производительный ''rx_dispatcher=2'' с равномерной балансировкой по произвольному количеству потоков (но без поддержки ''nat1:1'' с требованием назначения конкретных адресов). Описание в разделе [[dpi:opt_cgnat:сgnat_settings:start#дополнительные_настройки|Настройка и управление]] - [BRAS][PPPoE] Исправлено: ''dual-stack'': добавление IP-адресов к уже существующей acct-сессии - [PCRF] Исправлено: переключение ''persist queue'' в режим "есть связь" - [CLI] Добавлена команда CLI ''fdpi_cli pcrf persist queue reconnect'', которая позволяет сделать реконнект к fastDPI без сброса очереди. Может быть применена к конкретному соединению или ко всем. Описание в разделе [[dpi:bras_bng:cli:pcrfctl:start#pcrf_persist_queue_reconnect|Управление fastPCRF]] - [PCRF][PPPoE][Framed-Pool] Исправлено: создание acct-сессии с тем ''session_id'', который был анонсирован при авторизации - Добавлена поддержка формата ''pcapng'' для записи в СХД - [CoA] Добавлена обработка CoA Update по ''l2subs_id''. Описание в разделе [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_coa:start|Radius CoA]] - Добавлено: сохранение в экспорте NAT трансляций ICMP протокола - Изменено: параметр ''[[dpi:opt_cgnat:сgnat_settings:start|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''. Описание в разделе [[dpi:opt_cgnat:сgnat_settings:start#дополнительные_настройки|Настройка и управление]] - [CoA] Добавлена обработка CoA Reauth по ''l2subs_id''. Описание в разделе [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_coa:start|Radius CoA]] - [CoA] Добавлена обработка CoA Disconnect по ''l2subs_id''. Описание в разделе [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_coa:start|Radius CoA]] - [fDPI] Максимальное число кластеров увеличено до 12 (было 10) - [PCRF][ACCT] Добавлено: передача атрибута ''VasExperts-L2-SubsId'' в ''Acct Start/Interim/Stop''. Описание в разделе [[dpi:bras_bng:radius_integration:radius_accounting:radius_attr:start|Radius-атрибуты]] - [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-серверов. Описание в разделе [[dpi:bras_bng:radius_integration:radius_auth_fastpcrf_setup:radius_auth_fastpcrf_setup_full:start|Полный список параметров]]\\ Новые параметры ''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'' — скорость исходящего трафика в кбит/с, ''+'' — включенный класс, ''—'' — отключенный класс. Описание в разделе [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_response:start#vasexperts-policing-profile|Атрибуты авторизации абонента]] - [PCRF] Добавлено: новое значение ''chaddr@opt60'' для опции ''radius_user_name_dhcp''\\ Пример: ''radius_user_name_dhcp=chaddr@opt60'', User-Name в Access-Request формируется из MAC-адреса заголовка DHCP пакета (поле ''chaddr'') и опции 60, если эта опция есть в DHCP-запросе. Описание в разделе [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_dhcp:bras_l2_vlan_dhcp_proxy:bras_l2_vlan_dhcp_proxy_pcrf:start|DHCP Radius proxy - Access-Request]] - Изменено: улучшено распознавание FACEBOOK VIDEO - Исправлено: при разборе ''quic_ietf'' для первого пакета CRYPTO, если задан ''offset==0'' — проверяется факт возможной фрагментации - Добавлено: изменения парсинга — учет изменений в версиях Google QUIC: до версии 34 было дополнительное поле "Private Flags". Не разбирали такие пакеты, начиная с версии 39 — изменился порядок байт для записи "Data Length" - Добавлен полисинг и услуга 16 по значениям из имени профиля. Описание в разделе [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_response:start#vasexperts-service-profile:start|Атрибуты авторизации абонента]] - [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. Описание в разделе [[dpi:dpi_components:router:start#настройка_скат|Маршрутизатор Soft-Router]]\\ Добавлена новая опция ''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). Описание в разделе [[dpi:dpi_components:router:start#настройка_скат|Маршрутизатор Soft-Router]] - [BRAS][DHCP-Proxy] Session-Timeout и Lease-Time для Framed-Pool.\\ Если адрес выдан из Framed-Pool на малое время (малое ''lease-time'') и указано большое ''session-timeout'' при авторизации, то все запросы Renew/Rebind от абонента нужно посылать на DHCP-сервер через PCRF для продления лицензии, иначе DHCP-сервер может посчитать, что адрес свободен. Реавторизация производится только при достижении ''session-timeout'' - Добавлено: поддержка услуги 16 — обработка запросов SYN и последующая переадресация без передачи пакетов в интернет. Описание в разделе [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_response:start#vasexperts-service-profile|Атрибуты авторизации абонента]] - [Router] Добавлено: общие ''neighbor cache'' для VRF.\\ В настройку VRF добавлена опция: ''router_vrf { [cold][optional]''\\ Строка — имя ARP кеша для данной VRF по умолчанию, каждый VRF имеет свой собственный, изолированный от других ARP/Neighbor кеш. Если нужно, чтобы несколько разных VRF имели общий ARP/Neighbor кеш, то следует задать в описании этих VRF одно и то же значение опции ''neighbor_cache. neighbor_cache=... }''. Описание в разделе [[dpi:dpi_components:router:start#конфигурирование_скат|Маршрутизатор Soft-Router]] - [PCRF] ''fastpcrf.conf'' опция ''radius_user_name_dhcp'' — добавлено новое значение ''opt61@opt60: radius_user_name_dhcp=opt61@opt60''. Описание в разделе [[dpi:bras_bng:bras_l2_vlan:bras_l2_vlan_dhcp:bras_l2_vlan_dhcp_proxy:bras_l2_vlan_dhcp_proxy_pcrf:start|DHCP Radius proxy - Access-Request]].\\ 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. Описание в разделе [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_response:start#vasexperts-service-profile|Атрибуты авторизации абонента]] - [DHCP-Proxy] Введены режимы обработки CoA Disconnect. Описание в разделе [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_coa:start#настройка_логики_обработки_dhcp_абонента_при_получении_pod|Radius CoA]]\\ Добавлена новая опция ''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-команды роутера ====Изменения в версии 12.4 ==== Обзор версии 12.4 на YouTube: {{youtube>PPcHMd5qFNg?}} ===DPI=== - Добавлено: поддержка для протоколов ограничений скорости отдельных сессий и определение классов трафика на уровнях канала и абонента Описание в разделе [[dpi:dpi_options:opt_shaping:shaping_session:start]] #для поддержки этой услуги потребуется дополнительная оперативная память (по сравнению со стандартными требованиями), она резервируется настройкой support_service_18=1 #в /etc/dpi/fastdpi.conf speedtest cs1 default keep cat dscp_prof_1.txt|lst2dscp /tmp/dscp_prof_1.dscp speedtest tbf rate 16mbit inbound.rate 16mbit bittorrent tbf rate 8Mbit signal tbf rate 1kbit inbound.rate 2kbit TCP Unknown tbf rate 8Mbit burst 1Mbit inbound.rate 8Mbit inbound.burst 1Mbit cat tbf_prof_1.txt|lst2tbf /tmp/tbf_prof_1.tbf #обратное конвертирование tbf2lst /tmp/tbf_prof_1.tbf fdpi_ctrl load profile --service 18 --profile.name test_dscp --profile.json '{ "dscp" : "/tmp/dscp_prof_1.dscp", "tbf" : "/tmp/tbf_prof_1.tbf" }' fdpi_ctrl load --service 18 --profile.name test_dscp --login DEMO #или/и fdpi_ctrl load --service 18 --profile.name test_dscp --vchannel 1 - Добавлено управление уровнями обработки трафика на уровне VLAN. Команда ''hide'' позволяет сделать дроп трафика с предварительным анализом. Описание в разделе [[dpi:dpi_components:platform:vlan_traffic_handling:start]] fdpi_cli vlan group drop fdpi_cli vlan group pass fdpi_cli vlan group hide - Исправлено: при связывании IP с логином проверяем, не связан ли уже данный IP с этим логином. Функция ''mtd_bind_ip_login'' связывания IP c логином безусловно выполняла ''unbind'' перед связыванием, не проверяя текущую связку. ''unbind'' очищает текущие услуги, в том числе и данные услуги 9 (''netflow'', ''accounting''), что приводило к тихому сбросу acct-счетчиков при реавторизации абонента в случае, если синхронизация auth и acct в fastPCRF отключена. Данный коммит добавляет проверку: если IP уже связано c правильным логином, - ''bind''/''unbind''/''rebind'' делать не нужно, функция ''mtd_bind_ip_login'' просто возвращает результат "ok". - Добавлены протоколы "DTLS","RTCP","LIGHTWAY","GOOGLE_MEET","JITSY","WECHAT","DOT","META_CALLS" - Улучшено детектирование Skype в STUN - Добавлена сигнатура протокола ''radmin-port'' - Добавлена поддержка IPv6 channels (с reload). Описание в разделе [[dpi:dpi_options:opt_shaping:shaping_multi:start#для_cidr|Полисинг Виртуального канала (vChannel) — Настройка для CIDR]]\\ Пример задания: fe80::0/8 1 cat ipchannels6.txt | as2bin6 /etc/dpi/ipchannels6.bin - Добавлена блокировка всего IPv6 при включенной 4 услуге и опции ''block_options=4'' - Исправлена ошибка в детекторе TELEGRAM_TLS, приводящая к избыточной детекции - Добавлена поддержка reload для IPv6 channels - Добавлен протокол LiveU. Изменено название протокола ''radmin-port'' на ''radmin''. Список идентификаторов новых протоколов DoT 49281 RTCP 49282 LIGHTWAY 49283 GOOGLE_MEET 49284 JITSY 49285 WECHAT 49286 DTLS 49287 META_CALLS 49288 LIVEU_LRT 49289 - Добавлена настройка ''vchannels_default='' для помещения нераспределенного по другим каналам трафика в отдельный канал (но не 0!). Описание в разделе [[dpi:dpi_options:opt_shaping:shaping_multi:start#настройка|Полисинг Виртуального канала (vChannel) — Настройка]] - Исправлено: построение структур для отвода трафика на TAP (Ошибка сортировки массива IPv4-адресов). - Добавлена поддержка 18 услуги для vchannels - Добавлена поддержка 49 услуги для каналов и абонентов: блокировка IPv6 трафика. Описание в разделе [[dpi:dpi_options:opt_filtration:filtration_ctrl:start#активация_услуги_по_блокировке_ipv6_трафика|Активация услуги по блокировке IPv6 трафика]]fdpi_ctrl load --service 49 --login DEMO fdpi_ctrl load --service 49 --vchannel 1 - Переименован протокол JITSY -> JITSI - Исправлено: для виртуальных каналов DSCP определяется только если установлен параметр ''support_service_18''. Описание в разделе [[dpi:dpi_options:opt_shaping:shaping_session:start#конфигурация_скат|Полисинг по сессии и переопределение классов трафика — Конфигурация СКАТ]] - Учет номера ASN для детектирования GOOGLE MEET на базе DTLS - Добавлено: определение протокола WECHAT - Исправлено: определение whatsapp_voice для транспортного протокола TCP - Исправлено определение custom протоколов на основе IPv6 адресов/CIDR - Улучшено распознавание openvpn, holavpn, signal - Добавлена возможность дополнять определение signal - Добавлена возможность использования CIDR, адресов и портов для IPv4 и IPv6 в черных и белых списках. В случае задания CIDR или адреса блокируются все TCP порты (UDP с настройкой ''udp_block=3'') Описание в разделе [[dpi:dpi_options:opt_filtration:making_dictionary:start#формат_файла_со_списком_блокируемых_ip_адресов|Подготовка словарей со списком блокируемых ресурсов]] - Добавлены утилиты проверки вхождения в черный список ''[[dpi:dpi_options:opt_filtration:making_dictionary:start|checklock]]'' и в custom протокол ''[[dpi:dpi_components:dpiui:user_guide:vas_cloud_services:custom_protocols:protocols:start|checkproto]]''. В командной строке нужно указать адрес или адрес порт. - Исправлено: обработка stun для TCP - Изменено определение по realm: если задан другой протокол — смена протокола происходит сразу. - Добавлено: услуга 17 (без профиля) — зеркалирование трафика в заданный VLAN. Описание в разделе [[dpi:dpi_options:opt_li:li_ctrl:start#зеркалирование_в_vlan|Зеркалирование в VLAN]] #Параметры в fastdpi.conf: span_vlan=123 span_trace=1 #Для диагностики можно использовать: #trace_ip или span_trace или ajb_save_emit #если задать услугу 12 и 17, то в pcap увидим оригинальную запись и зеркалированную ===BRAS=== - Исправлено: трансляция VLAN для ARP-пакетов inet->subs - Исправлена ошибка с номерами AS в IPFIX - Исправлена ошибка поддержки framed-pool - Добавлено: параметр ''netflow_tos_format'', формат данных поля TOS в IPFIX: ''netflow_tos_format=0'' (значение по умолчанию), 3 bit (только приоритет), 1 6-bit (полный DSCP). Описание в разделе [[dpi:dpi_options:opt_statistics:statistics_ipfix:start]] - Добавлено: в ''ipfix fullflow'' добавлена передача дополнительного поля - [[dpi:dpi_options:opt_statistics:statistics_ipfix:start|оригинального TOS из IP заголовка]], можно будет строить отчеты по внешней разметке - Исправлено: ''dhcp nak issue'' - Исправлено определение канала в IPFIX для IPv6 - Добавление opt125 с названием пула первой опцией. Причина: KEA при определении класса клиента (opt125) разбирает только первого вендора Описание в разделе [[dpi:bras_bng:ip_pool:ipv4:start#кофигурирование_fastpcrf|Кофигурирование fastPCRF — Поддержка IPv4-пулов]] - Закрытие DHCP-сессий после CoA Disconnect. Если после PoD (CoA Disconnect) не пришло никакого DHCP-запроса до истечения lease time, то такую сессию надо закрыть с отправкой деанонса и acct stop. При этом следует учитывать тот факт, что у абонента может измениться тип сессии — вместо DHCP стать StaticIP или PPPoE; в этом случае DHCP-сессия должна быть закрыта без деанонса и acct stop. [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_coa:start#disconnect-request|Radius CoA — Disconnect-Request]] - CLI: в вывод команды ''dhcp show'' добавлен новый параметр ''ts_lease_expired'' - время окончания lease time. - Добавлена опция ''acct_disable_interim_update'' - запрет отправки Interim-Update. Не отправлять Interim-Update: ''acct_disable_interim_update=1''. По умолчанию ''acct_disable_interim_update=0'' (Interim-Update отправляется). Описание в разделе [[dpi:bras_bng:radius_integration:radius_accounting:setup:start]] - Добавлена поддержка IPv6 для CoA. ''Command-Code=1'' — поиск acct session по IP. Поиск acct-сессии может вестись по IPv6-префиксу атрибуты ''Framed-IPv6-Prefix'' или ''Delegated-IPv6-Prefix''. В ответе команды указываются все известные IP-адреса найденной acct-сессии — ''Framed-IP-Address'', ''Framed-IPv6-Prefix'', ''Delegated-IPv6-Prefix''. [[dpi:bras_bng:radius_integration:radius_auth_server_integration:radius_auth_coa:start#запрос_accounting-сессии_для_данного_ip-адреса|Radius CoA — Запрос accounting-сессии для данного IP-адреса]] - Исправлено: cli-команда ''dhcp show stat vrf''. При определении "живости" сессии не проверялся ''subs_id'' абонента, — передача IP-адреса другому абоненту может поломать эту статистику - Исправлено: обновление ''lease expired'' для адреса из Framed-Pool - Добавлено: поддержка Huawei vendor-specific тег 1. Значение интерпретируется как ''ADSL-Forum-Circuit-Id''. Если PPPoE-пакет содержит Circuit-Id и Huawei tag 1, то предпочтение отдается Circuit-Id, Huawei tag1 игнорируется. Описание в разделе [[dpi:bras_bng:bras_pppoe:bras_pppoe_radius:bras_pppoe_radius_req:start#поддержка_huawei_vendor-specific_tag_1|Формат Access-Request для PPPoE-сетей — Поддержка Huawei vendor-specific tag 1]] - Исправлено: деанонс прежнего адреса, если клиенту выдается новый ===NAT=== - Исправлено: образование корки при выделении публичного адреса (редкое событие: при удалении услуги NAT в момент выделения публичного) ===СОРМ=== - Добавлено извлечение информации из Radius avp ''framed-ipv6-prefix''. Добавлена отправка ''framed-ipv6-prefix'' и ''delegated-ipv6-prefix'' по IPFIX - Исправления для СОРМ: IMAP, revision ===SDS=== - Автоматическая генерация UUID и сохранение в файле ''/var/lib/dpi/sdsuuid.dat''