12.0 Machu Picchu 1)
Проверить текущую установленную версию можно командой:
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
Chaos Protection
в QUIC IETF.nat_transcode_cidr
, который задает CIDR белых адресов оператора. Возможно только 2 CIDR. Значения используются при перекодировке белый -→ серый для NAT 1:1. Для серого адреса может быть назначен любой белый адрес для NAT 1:1.(crc(ip_src) % nthread + crc(ip_dst) % nthread) % nthread
.crc(серый) % nthread + crc(белый) % nthread
.[NFLW] very long operation ….
выводится всегда независимо от количества повтора сообщений.stream
.[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}
dpdk_engine=2
. DDP загружается из файла /lib/firmware/intel/i40e/ddp/i40e.pkg
при инициализации i40e портов. Время жизни загруженного DDP-профиля: до перезагрузки сервера.l2subs_id
в команде subs prop set
.l2subs_id
.l2subs_id
для L3-авторизации, так как в ответе L3 auth от Радиуса может указываться, что это L2-абонент.l2subs_id
.l2subs_id
для PPPoE-сессии.bras_ppp_mac_auth
.subs_id
, идентифицирующего PPPoE-сессию.l2lan_id
--- идентификатор L2-сети. l2lan_id
предназначен для разделения абонентов по VLAN. l2lan_id
получается из l2subs_id
, то есть его формирование задается той же опцией bras_subs_id
. По сути l2lan_id
--- это VLAN-префикс из l2subs_id
.l2lan_id
--- он входит в их ключ по MAC и Client-Id. То есть два абонента с одним и тем же MAC-адресом, но в разных VLAN, считаются разными абонентами (если bras_subs_id
задано учитывать VLAN). Вторичные ключи по Opt82 и Q-in-Q не учитывают l2lan_id
. Подробнее bras_subs_id.rx_dispatcher
метод хеширования flow по рабочим потокам (ip_src+ipdst)%N ) & ip_mask
; (CRC(IP SRC)%N+CRC(IP_DST)%N)%N
.bras_ppp_lcp_start_timeout
.pcapng
.captive portal
без доступа абонентов в интернет (по причине аварии на аплинках, абонент в долгосрочной блокировке и т.п.). dpdkinfo
. Описание.fdpi_cli help vlan group vlan group : manage <add|delete|show> vlan group authorization policy vlan group <group-id> ... - manage <group-id> vlan group 2 ... - manage <group-id> = <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
user timeout
(в дополнении к стандартному механизму tcp keep alive
)rx_dispatcher=2
с равномерной балансировкой по произвольному количеству потоков (но без поддержки nat1:1
с требованием назначения конкретных адресов). Описание в разделе Настройка и управлениеdual-stack
: добавление IP-адресов к уже существующей acct-сессииpersist queue
в режим "есть связь"fdpi_cli pcrf persist queue reconnect
, которая позволяет сделать реконнект к fastDPI без сброса очереди. Может быть применена к конкретному соединению или ко всем. Описание в разделе Управление fastPCRFsession_id
, который был анонсирован при авторизацииpcapng
для записи в СХДl2subs_id
. Описание в разделе Radius CoAnat_exclude_private
и соответствующая поддержка: int nat_exclude_private;
ip_src
и ip_dst
серые или находятся в psz_prms_user_private
) ip_src
— серый с учетом psz_prms_user_private
и AS для dst_ip = local
ip_src
— серый с учетом prms_user_private
и AS для dst_ip = peer
. Описание в разделе Настройка и управлениеl2subs_id
. Описание в разделе Radius CoAl2subs_id
. Описание в разделе Radius CoAVasExperts-L2-SubsId
в Acct Start/Interim/Stop
. Описание в разделе Radius-атрибутыdisable Ethernet Flow Control
на старте портаl2subs_id
абонента.chaddr
) + xid
запросаClient-Id
и xid
запроса. Сервер обязан передать опцию Client-Id
в ответе, в отличие от других опций запроса.dhcp show stat vrf
pcrf radius enable/disable
pcrf radius ping
pcrf radius status
l2subs_id
.bras_subs_id
) используется srcMAC
из ethernet-заголовка пакета. В случае, если DHCP-запросы проходят через DHCP Relay, srcMAC
в ethernet-заголовке DHCP-пакета уже не является MAC-адресом абонента. DHCP-запросы всех абонентов, проходящих через DHCP Relay, имеют один и тот же MAC в ethernet-заголовке и один и тот же subs_id
.chaddr
.watchdog
— новый монитор Radius-серверов. Описание в разделе Полный список параметровfastpcrf.conf
:radius_keepalive=60
radius_ping_user_name
) и Password (radius_ping_user_password
) псевдоабонента для пинг-запросов.radius_revive_period
удален за ненадобностью.p_flow_
→ cmn.bts_check_ip |= ntconnt::bts_nat_must_whip
fastdpi_alert.log
"VRF не имеет TAP"fastdpi_alert.log
не чаще чем раз в час для каждого VRFfdpi_cli
: nat dump transcode
, nat dump translater [имя профиля]
, nat dump translater data [имя профиля]
BV##NNNN[#MMMM][#++++----]
, где NNNN
— скорость входящего трафика в кбит/с, MMMM
— скорость исходящего трафика в кбит/с, +
— включенный класс, —
— отключенный класс. Описание в разделе Атрибуты авторизации абонента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-Requestquic_ietf
для первого пакета CRYPTO, если задан offset==0
— проверяется факт возможной фрагментацииbras_ip_filtering
(=0)
.0x0001
— контроль подмены IP абонента (restricting forged traffic
). Дропаем пакет на пути subs
→ inet
, если IP-адрес абонента (srcIP
) неизвестный для L2 BRAS и bras_term_by_as = 0
и AS абонента не local
. bras_ip_filtering=0
bras_vrf_isolation
— изоляция на уровне VRF. Описание в разделе Маршрутизатор Soft-Routerfastdpi.conf
: [hot] Изоляция VRF. По умолчанию (0)
, L2 BRAS не изолирует абонентов из разных VRF: Если данный режим включен (1)
, то абоненты из разных VRF будут изолированы друг от друга: для абонента из VRF1: шлюз также должен быть в VRF1, local interconnect
будет работать только для абонентов из той же VRF1. bras_vrf_isolation=0
local interconnect
— применяется только если оба абонента в одном VRFsender
и GW находятся в одной VRF)lease-time
) и указано большое session-timeout
при авторизации, то все запросы Renew/Rebind от абонента нужно посылать на DHCP-сервер через PCRF для продления лицензии, иначе DHCP-сервер может посчитать, что адрес свободен. Реавторизация производится только при достижении session-timeout
neighbor cache
для VRF.router_vrf { [cold][optional]
neighbor_cache. neighbor_cache=… }
. Описание в разделе Маршрутизатор Soft-Routerfastpcrf.conf
опция radius_user_name_dhcp
— добавлено новое значение opt61@opt60: radius_user_name_dhcp=opt61@opt60
. Описание в разделе DHCP Radius proxy - Access-Request.fastpcrf.conf
— в каких атрибутах передавать DHCP-опции в Access-Requestattr_dhcp_opt43=vendorId.attrId
где vendorId
— id вендора, число от 0 до 2^32-1.vendorId != 0
, то значение передается в VSA-атрибуте.vendorId == 0
, то значение передается в обычном Радиус-атрибуте (не-VSA)attrId
— id атрибута, число от 1 до 255octets
(передаются как есть в бинарном виде)0.0
— не передавать данный атрибут на Радиус-серверattr_dhcp_opt43=0.0, attr_dhcp_opt60=43823.34 # VasExperts-DHCP-ClassId
, attr_dhcp_opt61=43823.33 # VasExperts-DHCP-ClientId
fdpi_ctrl
профиль совпадает со структурой для услуги 5fdpi_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. Описание в разделе Атрибуты авторизации абонента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)#для поддержки этой услуги потребуется дополнительная оперативная память (по сравнению со стандартными требованиями), она резервируется настройкой 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
hide
позволяет сделать дроп трафика с предварительным анализом. Описание в разделе Обработка трафика по VLANfdpi_cli vlan group <id> drop fdpi_cli vlan group <id> pass fdpi_cli vlan group <id> hide
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".radmin-port
fe80::0/8 1 cat ipchannels6.txt | as2bin6 /etc/dpi/ipchannels6.bin
block_options=4
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!). Описание в разделе Полисинг Виртуального канала (vChannel) — Настройкаfdpi_ctrl load --service 49 --login DEMO fdpi_ctrl load --service 49 --vchannel 1
support_service_18
. Описание в разделе Полисинг по сессии и переопределение классов трафика — Конфигурация СКАТudp_block=3
) Описание в разделе Подготовка словарей со списком блокируемых ресурсовchecklock
и в custom протокол checkproto
. В командной строке нужно указать адрес или адрес порт.#Параметры в fastdpi.conf: span_vlan=123 span_trace=1 #Для диагностики можно использовать: #trace_ip или span_trace или ajb_save_emit #если задать услугу 12 и 17, то в pcap увидим оригинальную запись и зеркалированную
netflow_tos_format
, формат данных поля TOS в IPFIX: netflow_tos_format=0
(значение по умолчанию), 3 bit (только приоритет), 1 6-bit (полный DSCP). Описание в разделе Настройка экспорта в формате IPFIXipfix fullflow
добавлена передача дополнительного поля - оригинального TOS из IP заголовка, можно будет строить отчеты по внешней разметкеdhcp nak issue
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 отправляется). Описание в разделе Настройки fastPCRFCommand-Code=1
— поиск acct session по IP. Поиск acct-сессии может вестись по IPv6-префиксу атрибуты Framed-IPv6-Prefix
или Delegated-IPv6-Prefix
. В ответе команды указываются все известные IP-адреса найденной acct-сессии — Framed-IP-Address
, Framed-IPv6-Prefix
, Delegated-IPv6-Prefix
. Radius CoA — Запрос accounting-сессии для данного IP-адресаdhcp show stat vrf
. При определении "живости" сессии не проверялся subs_id
абонента, — передача IP-адреса другому абоненту может поломать эту статистикуlease expired
для адреса из Framed-PoolADSL-Forum-Circuit-Id
. Если PPPoE-пакет содержит Circuit-Id и Huawei tag 1, то предпочтение отдается Circuit-Id, Huawei tag1 игнорируется. Описание в разделе Формат Access-Request для PPPoE-сетей — Поддержка Huawei vendor-specific tag 1framed-ipv6-prefix
. Добавлена отправка framed-ipv6-prefix
и delegated-ipv6-prefix
по IPFIX/var/lib/dpi/sdsuuid.dat