dpi:dpi_components:platform:dpi_update:dpi_update_120:start [Документация VAS Experts]

Это старая версия документа!


Обновление платформы DPI до версии 12.0

<html><div class="menu"></html>

Изменения в версии 12.0 Machu Picchu

12.0 Machu Picchu 1)

  1. Изменено: переход на DPDK 22.11 LTS
  2. Добавлено: разбор заголовков с защитой Chaos Protection в QUIC IETF
  3. Добавлено: параметр (холодный) nat_transcode_cidr который задает CIDR белых адресов оператора. Возможно только 2 CIDR. Значения используются при перекодировке белый-→серый для NAT 1:1. Для серого адреса может быть назначен любой белый адрес для NAT 1:1
  4. Изменено: хэш функция распределения по рабочим потокам: (crc(ip_src) % nthread + crc(ip_dst) % nthread) % nthread
  5. Изменено: алгоритм выделения белых адресов для CG-NAT : crc(серый) % nthread + crc(белый) % nthread
  6. Изменено: Сообщение '[NFLW] very long operation ….' выводится всегда независимо от количества повтора сообщений
  7. Изменено: изменено имя каталога записи файлов — добавлено stream
  8. Добавлено: статистика вывода информации по отправлению 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}
  9. [PCRF][PPPoE] Исправлено: если Радиус отдает нам IPv6-адрес вместо префикса, мы не делали префикс из адреса, что приводило к пересозданию acct-сессий. Вновь создаваемые acct-сессии были без логина и прочих важных для провайдеров атрибутов.
  10. [BRAS][L3-AUTH] Изменено: Framed-Route теперь не применяется к PD-префиксу
  11. [PCRF][ACCT] Исправлено: при отсоединении (unlink) записи от мультисессии не корректировались IP-адреса для мультисессии. Отсоединение (unlink) происходит при агрегации. В результате в дальнейшем к этой мультисессии могли быть привязаны другие записи, не имеющие уже к ней никакого отношения.
  12. [PCRF][DHCPv6-Pool] Исправлено: формирование поля Link-Address для Relay-Fwd при отправке запроса на конкретный DHCPv6-сервер
  13. [BRAS][PPPoE-IP6] Запрос IPv6-адреса из Framed-IPv6-Pool осуществляется по приходу от клиента первого IP6CP Cfg-Req
  14. [CLI][ACCT] Добавлено: вывод NAS-атрибутов fastdpi-сервера в командах PCRF acct show
  15. [BRAS][DHCP] Исправлено: отправка NAK на DHCP-Request для другого сервера
  16. Добавлена поддержка DDP профилей для карт Intel 700-series (драйвер i40e) для балансировки туннелей PPPoE/GTP/MPLS при использовании dpdk_engine=2. DDP загружается из файла /lib/firmware/intel/i40e/ddp/i40e.pkg при инициализации i40e портов. Время жизни загруженного DDP-профиля: до перезагрузки сервера.
  17. Изменено: алгоритм выбора сервера для записи sds
  18. [CLI] Добавлено: установка L2 subs_id в команде subs prop set
  19. [BRAS][DHCP-Relay] Добавлена поддержка L2 subs_id
  20. [BRAS][AUTH] Добавлена поддержка l2subs_id для L3-авторизации, так как в ответе L3 auth от радиуса нам могут указать, что это L2-абонент
  21. [BRAS][ARP-AUTH] Добавлена поддержка l2subs_id
  22. [BRAS][PPPoE][CLI] Добавлено: атрибут l2lan_id для PPPoE-сессии
  23. [BRAS][PPPoE] Удалена поддержка авторизации по MAC, без логина и пароля, удаление опции bras_ppp_mac_auth
  24. [PPPoE][CLI] Добавлена поддержка параметра subs_id, идентифицирующего PPPoE-сессию
  25. [BRAS] Добавлен класс l2lan_id - идентификатор L2-сети. l2lan_id предназначен для разделения абонентов по VLAN. l2lan_id получается из l2subs_id, то есть его формирование задается той же опцией `bras_subs_id`. По сути l2lan_id - это VLAN-префикс из l2subs_id.
  26. [BRAS][DHCP] Все внутренние БД DHCP-сессий теперь учитывают l2lan_id - он входит в их ключ по MAC и Client-Id. То есть два абонента с одним и тем же MAC-адресом, но в разных VLAN, считаются разными абонентами (если bras_subs_id задано учитывать VLAN). Вторичные ключи по Opt82 и Q-in-Q не учитывают l2lan_id. Подробнее bras_subs_id
  27. Добавлен настроечный параметр rx_dispatcher = метод хеширования flow по рабочим потокам 0 - по умолчанию используется прежний метод (ip_src+ipdst)%N ) & ip_mask; 1 - новый метод c поддержкой перекодировки для NAT1:1 (CRC(IP SRC)%N+CRC(IP_DST)%N)%N
  28. [Radius monitor] Добавлена поддержка экспорта адреса и порта NAS, а также других атрибутов
  29. [Radius monitor] Добавлено подключение 12 услуги
  30. [BRAS] Добавлена настройка bras_ppp_lcp_start_timeout

Изменения в версии 12.1

  1. Добавлено: поддержка режима On-Stick
  2. Минорные исправления в работе CG-NAT
  3. Поддержка 12 услуги2) на VCHANNEL
  4. Поддержка загружаемых из облака протоколов с именами
  5. SDS: передача данных в формате pcapng

Изменения в версии 12.2

  1. Исправления в выводе статистики утилизации CG-NAT
  2. Разбор новых версий GQUIC
  3. Новая услуга 16 - белый список c переадресацией на captive portal без доступа абонентов в интернет (по причине аварии на аплинках, абонент в долгосрочной блокировке и т.п.)
  4. Новая утилита dpdkinfo (-h подсказка, module_eeprom - информация по оптической диагностике модуля SFP, если она поддерживается модулем)

Изменения в версии 12.3

  1. Сервис управления авторизацией PPPoE на основе поля Service-name. Описание в разделе Настройка авторизации PPPoE
  2. Добавлено: поддержка отправки heartbeat для внешних bypass
  3. Добавлено: извлечение и передача в IPFIX куки из Set-Cookie
  4. Улучшено: блокировка коротких подвисаний TCP протокола в потоках IPFIX через дополнительную установку user timeout (в дополнении к стандартному механизму tcp keep alive)
  5. Добавлено: производительный rx_dispatcher=2 с равномерной балансировкой по произвольному количеству потоков (но без поддержки nat1:1 с требованием назначения конкретных адресов). Описание в разделе Настройка и управление
  6. [BRAS][PPPoE] Исправлено: dual-stack: добавление IP-адресов к уже существующей acct-сессии
  7. [PCRF] Исправлено: переключение persist queue в режим "есть связь"
  8. [CLI] Добавлена команда CLI fdpi_cli pcrf persist queue reconnect, которая позволяет сделать реконнект к fastDPI без сброса очереди. Может быть применена к конкретному соединению или ко всем. Описание в разделе Управление fastPCRF
  9. [PCRF][PPPoE][Framed-Pool] Исправлено: создание acct-сессии с тем session_id, который был анонсирован при авторизации
  10. Добавлена поддержка формата pcapng для записи в СХД
  11. [CoA] Добавлена обработка CoA Update по l2subs_id. Описание в разделе Radius CoA
  12. Добавлено: сохранение в экспорте NAT трансляций ICMP протокола
  13. Изменено: параметр 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. Описание в разделе Настройка и управление
  14. [CoA] Добавлена обработка CoA Reauth по l2subs_id. Описание в разделе Radius CoA
  15. [CoA] Добавлена обработка CoA Disconnect по l2subs_id. Описание в разделе Radius CoA
  16. [fDPI] Максимальное число кластеров увеличено до 12 (было 10)
  17. [PCRF][ACCT] Добавлено: передача атрибута VasExperts-L2-SubsId в Acct Start/Interim/Stop. Описание в разделе Radius-атрибуты
  18. [DPDK] Добавлено: disable Ethernet Flow Control на старте порта
  19. [PCRF][DHCPv6-POOL] Исправлено формирование Client-DUID при составлении DHCP6-RENEW для Framed-IPv6-Pool
    Client-DUID должен быть неизменным на всем протяжении DHCPv6-сессии, иначе при Renew DHCPv6-сервер может выдать другой IPv6-префикс, что приведет к закрытию PPPoE-сессии. Для достижения неизменяемости теперь Client-DUID формируется из l2subs_id абонента.
  20. [PCRF][DHCP-POOL] Исправлена идентификация 'запрос-ответ' при работе с DHCP-пулами.
    В качестве идентификатора используется:
    Для DHCPv4 — MAC-адрес абонента (chaddr) + xid запроса
    Для DHCPv6 — опция Client-Id и xid запроса. Сервер обязан передать опцию Client-Id в ответе, в отличие от других опций запроса.
  21. [BRAS] Добавлена CLI-команда dhcp show stat vrf
    Вывод числа DHCP-абонентов в разрезе VRF
  22. [PCRF] Добавлена CLI-команда pcrf radius enable/disable
  23. [PCRF] Добавлена CLI-команда pcrf radius ping
  24. [PCRF] Добавлена CLI-команда pcrf radius status
  25. Изменено: если у сессии нет белого адреса — включается CG-NAT.
  26. Добавлено: если услуга 11 удалена, NAT выключается и освобождаются ресурсы. Происходит только если есть (прочитаны) данные по flow
  27. [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.
  28. [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 удален за ненадобностью.
  29. Изменено: Для flow ставится признак p_flow_cmn.bts_check_ip |= ntconnt::bts_nat_must_whip
    Признак говорит о том, что идет обращение с серого адреса и для этого flow требуется белый адрес. Если белый адрес не назначен — попытки выделения белого адреса продолжаются (Для TCP — только если SYN). Это происходит из-за того что могут идти запросы с серого адреса, а только потом появляется услуга 11, но flow уже существует и будет вечно мертвый.
  30. Изменено: Если для flow задан белый адрес, проверяется наличие 11 услуги. Если услуги нет — белый адрес освобождается.
  31. [Router] Добавлено: сообщение об ошибке в fastdpi_alert.log "VRF не имеет TAP"
    Если VRF не имеет ни одного девайса — невозможно анонсировать адрес в такой VRF. Данная ошибка выводится в fastdpi_alert.log не чаще чем раз в час для каждого VRF
  32. Добавлено: команды fdpi_cli: nat dump transcode, nat dump translater [имя профиля], nat dump translater data [имя профиля]
  33. Новое имя профиля полисинга — BV##NNNN[#MMMM][#++++----], где NNNN — скорость входящего трафика в кбит/с, MMMM — скорость исходящего трафика в кбит/с, + — включенный класс, — отключенный класс. Описание в разделе Атрибуты авторизации абонента
  34. [PCRF] Добавлено: новое значение chaddr@opt60 для опции radius_user_name_dhcp
    Пример: radius_user_name_dhcp=chaddr@opt60, User-Name в Access-Request формируется из MAC-адреса заголовка DHCP пакета (поле chaddr) и опции 60, если эта опция есть в DHCP-запросе. Описание в разделе DHCP Radius proxy - Access-Request
  35. Изменено: улучшено распознавание FACEBOOK VIDEO
  36. Исправлено: при разборе quic_ietf для первого пакета CRYPTO, если задан offset==0 — проверяется факт возможной фрагментации
  37. Добавлено: изменения парсинга — учет изменений в версиях Google QUIC: до версии 34 было дополнительное поле "Private Flags". Не разбирали такие пакеты, начиная с версии 39 — изменился порядок байт для записи "Data Length"
  38. Добавлен полисинг и услуга 16 по значениям из имени профиля. Описание в разделе Атрибуты авторизации абонента
  39. [BRAS] Добавлено: новая опция bras_ip_filtering
    [hot] Фильтрация трафика (битовая маска) по умолчанию отключена (=0).
    Допустимые флаги: 0x0001 — контроль подмены IP абонента (restricting forged traffic). Дропаем пакет на пути subsinet, если IP-адрес абонента (srcIP) неизвестный для L2 BRAS и bras_term_by_as = 0 и AS абонента не local. bras_ip_filtering=0
  40. [BRAS] Добавлено: опция bras_vrf_isolation — изоляция на уровне VRF. Описание в разделе Маршрутизатор 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
  41. Исправлено: сообщения об ошибке для клиента не должны содержать LF в json
  42. [BRAS][ARP] Изменено: обработка ARP к шлюзу. Отвечаем на ARP-запрос к шлюзу только если VRF отправителя и шлюза совпадают (sender и GW находятся в одной VRF)
  43. [VRF] Изменено: задание имени VRF через услугу 254 (только Radius). Описание в разделе Маршрутизатор Soft-Router
  44. [BRAS][DHCP-Proxy] Session-Timeout и Lease-Time для Framed-Pool.
    Если адрес выдан из Framed-Pool на малое время (малое lease-time) и указано большое session-timeout при авторизации, то все запросы Renew/Rebind от абонента нужно посылать на DHCP-сервер через PCRF для продления лицензии, иначе DHCP-сервер может посчитать, что адрес свободен. Реавторизация производится только при достижении session-timeout
  45. Добавлено: поддержка услуги 16 — обработка запросов SYN и последующая переадресация без передачи пакетов в интернет. Описание в разделе Атрибуты авторизации абонента
  46. [Router] Добавлено: общие neighbor cache для VRF.
    В настройку VRF добавлена опция: router_vrf { [cold][optional]
    Строка — имя ARP кеша для данной VRF по умолчанию, каждый VRF имеет свой собственный, изолированный от других ARP/Neighbor кеш. Если нужно, чтобы несколько разных VRF имели общий ARP/Neighbor кеш, то следует задать в описании этих VRF одно и то же значение опции neighbor_cache. neighbor_cache=… }. Описание в разделе Маршрутизатор Soft-Router
  47. [PCRF] fastpcrf.conf опция radius_user_name_dhcp — добавлено новое значение opt61@opt60: radius_user_name_dhcp=opt61@opt60. Описание в разделе 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
  48. Добавлено: поддержка услуги 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. Описание в разделе Атрибуты авторизации абонента
  49. [DHCP-Proxy] Введены режимы обработки CoA Disconnect. Описание в разделе Radius CoA
    Добавлена новая опция bras_dhcp_disconnect, которая является битовой маской следующих флагов:
    • 0x0001disable acct stop, не посылать немедленно acct stop для disconnected DHCP-абонента
    • 0x0002disable L3 auth, не выполнять L3-авторизации для disconnected DHCP-абонента
    • 0x0004block traffic — блокировать весь трафик от disconnected абонента (то есть на пути subsinet)
    • 0x0008 — на DHCP Request → отвечать NAK
    • 0x0010 — игнорировать DHCP Request (ждем DHCP Discovery)
  50. [DHCP-Proxy] Добавлено: контроль смены IP-адреса абонента
    Если абоненту выдается другой IP-адрес, то для прежнего IP-адреса нужно сделать деанонс
  51. [VRF][CLI] Поддержка VRF добавлена во все CLI-команды роутера

Инструкция по обновлению

Проверить текущую установленную версию можно командой

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

Посмотреть, что было нового в предыдущей версии.

1)
Мачу Пикчу "город среди облаков", расположен в Перу, имеет статус Всемирного Наследия ЮНЕСКО
2)
Запись абонентского трафика в PCAP файл