Если у вас установлена версия CentOS 6.x или CentOS 8.x, то однократно переключите репозиторий командой:
sed -i -e '/^mirrorlist=http:\/\//d' -e 's/^# *baseurl=http:\/\/mirror.centos.org/baseurl=http:\/\/vault.centos.org/' /etc/yum.repos.d/CentOS-*.repo
и далее производите обновления командой:
yum update fastdpi
Module yaml error
, то следует обновить модуль dnf upgrade libmodulemd
.
После обновления выполните рестарт DPI:
service fastdpi restart
и других зависимых процессов (PCRF/Radius), но только если они реально используются и их конфигурация валидна:
service fastpcrf restart service fdpi_radius restart
При необходимости можно обновить компоненты операционной системы. Не проводите обновление версии ядра и зависимых от него утилит!
Для CentOS 6.x:
yum --exclude=kernel*,util-linux-ng,libuuid,libblkid update
Для CentOS 8.x:
yum update
Пользователям, эксплуатирующим DPI на виртуальных машинах, старых процессорах (2009 года выпуска) и старых процессорах AMD (до Ryzen):
Выполните перед обновлением команду:
touch /etc/dpi/noprioadj
и процесс DPI будет запускаться с обычным (не realtime
) приоритетом, что существенно снизит потребление системных (sys
) ресурсов CPU, но немного увеличит latency
на платформе.
13.0 Congo 1)
Проверить текущую установленную версию можно командой:
yum info fastdpi
Откат на 12.4:
yum downgrade fastdpi-12.4-0 fastpcrf-12.4-0
После обновления или смены версии требуется рестарт сервиса:
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
mark1
. Описаниеa.b.c.d
при наличии сигнатур *.d
, *.c.d
и *.b.c.d
будет выбран протокол, определенный сигнатурой *.b.c.d
*
. Описание 1.1.1.1 443 hard
. Описаниеframed-pool renew
framed-pool renew
subs prop show active
. Команда выводит дамп L2-свойств всех активных (не-expired) абонентов. Описаниеbras_ppp_idle_timeout
, если не задан явно в ответе авторизации (атрибут Idle-Timeout).ping inet
от имени абонентов через всю цепочку обработку BRAS/NAT/ROUTER. Подсказка - fdpi_cli ping inet ?
. Описаниеrouter_subs_announce
добавлен новый флаг: 0x10000
- деанонсировать L3-абонента при наступлении acct idle (закрытие acct-сесси по idle timeout). Описаниеserv18
- имя профиля):VasExperts-Service-Profile = "18:serv18"
subs prop show
добавлен поиск по MAC
и subs_id
. Результат поиска по MAC
или subs_id
может быть многозначным, - несколько разных записей для одного того же MAC
/subs_id
. Результат команды subs prop show active
изменен, что может быть критично при разборе json-выхлопа команды. Описаниеuptime
может использоваться для контроля полного запуска fastDPI: она возвращает result=0
(Success) только тогда, когда fastDPI полностью проинициализирован и все рабочие потоки запущены. По получении ответа от fastDPI на команду fdpi_cli uptime
сама утилита fdpi_cli проверяет результат выполнения и если result!=0
— выставляет ненулевой код возврата.checknat
для проверки распределения белых адресов. Описаниеnat_private_cidr
errno=3
(No record found) переведена в разряд TRACE, чтобы не засоряла логstorage_tag
устанавливается на основании приоритета по направлению или приоритета по протоколуlibpcap
. Описаниеidle_timeout
.pf_ring
fdpi_ctrl
bras_arp_proxy
добавлен новый флаг - 0x0004. Описаниеsubs prop show
subs prop del
, что приводило к невозможности удаления свойств по IP c ошибкой ERROR: Result code=9: No subscriber IP address
dhcp disconnect
. Это CLI-аналог CoA Disconnect. Режим выполнения дисконнекта задается опцией bras_dhcp_disconnect
.dhcp disconnect all
- дисконнект всех DHCP-сессийdhcp disconnect [ mac=X | ip=X ]
- дисконнект указанной сессииdhcp show stat
добавлено число закрытых по неактивности сессий (SHCV)vdpi_new_flow_nat_ipv4
выводится всегдаnat_exclude_private
проверяется дополнительно пара CHECK_AS_LOCAL или CHECK_AS_PEER для AS при local interconnectrouter vrf dump
. Команда выводит список VRF, заданных в системе, и свойства этих VRFterm_by_AS
относится к абонентам, а не к профилям NAT, поэтому его не нужно учитывать при анонсировании NAT-подсетиmbuf
в selfgen mempool
, если включен роутер: если роутер disabled: mempool size=512 * число_slave_на_кластер
, если роутер enabled: mempool size=8 * 1024 * число_slave_на_кластер
block_options
маска 8 — не формировать RST-пакеты блокировки и переадресации для направления пакетов inet→subs. Описаниеfdpi_ctrl list profile --policing --profile.name htb_6 --outformat=json2
NotOnLink
asnum.bin
из облака, параметр asnum_download
аналогичен по набору значений federal_black_list
. Описаниеmem_ssl_savebl
(холодный). Задает количество сохраняемых буферов для разбора ssl при перемешивании пакетов. Описаниеpermit
.dev xstat
добавлен булевый признак on_stick
dev info
для on-stick."pci_address": "on-stick based on 82:00.3"
Теперь:
// адрес базового девайса "pci_address": "82:00.3" // признак on-stick "on-stick": "true|false"
mem_quic_ietf_savebl
. Задает количество буферов для разбора quic_ietf
-запросов, которые состоят из нескольких пакетов. Значение по умолчанию 15% от mem_ssl_parsers
. Описание"HLS VIDEO" 49298 "ICMP TUNNEL" 49299 "DNS TUNNEL" 49300 "FORTICLIENT_VPN" 49301 "CISCO_ANYCONNECT_VPN" 49302 "SHADOWSOCKS_VPN" 49303 "NOT_DNS" 49304
router vrf show
добавлена статистика по TAP-девайсам - сколько пакетов/байт вычитано с TAP, сколько записано в порт с TAP, сколько передано в TAP, число событий и ошибок.fdpi_cli subs prop show active
dhcp show stat vrf
поддерживается только в режиме Radius proxy (в режиме DHCP Relay вызов этой команды приводил к падению)checkproto
: если задать IP и SNI, будет выведен результат с учетом MARK1 и приоритета, ascheckip
: выводит DSCP и MARK1:
, что позволяет задать "любой порт" для HTTPdhcp disconnect
BIGOTV 49305 SAYHI_CALL 49306 AZARLIVE 49307 LINE_CALL 49308 QQ_CALL 49309 VYKE_CALL 49310 VEEGO_STREAMS 49311 BHABI_CAM 49312 WEPARTY 49313
*
и :
в http доменахsmartdrop
при ошибках разбора sslbras_pppoe_trace_mac
при сохранение DHCPv6-пакетов в pcap. Ранее учитывалась только опция bras_dhcp_trace_mac
. Теперь для DHCPv6-пакетов в PPPoE-туннеле учитывается также и bras_pppoe_trace_mac
checkproto
для случая IP протокол Unknowncheckproto
проверяет с учетом MARK1, задан ли номер порта, т.е. checkproto 8.8.8.8 443 www.google.com
и checkproto 8.8.8.8 www.google.com
могут вернуть разный результатbin2as
принимает любое количество входных файлов как аргументовascheckip
принимает адреса для гупповой проверки со stdin
bgp2bin
аналог as2bin
, но принимает только подсети /24 и крупнее, понимает формат диапазона IP1-IP2 как в записях ripe (выделяя из него подсети /24 и крупнее), последующие записи приоритетнее предыдущих, создает файл немного крупнее чем as2bin
, но в нем диапазоны подсетей не пересекаются (т.к. менее приоритетные записи отфильтрованы), что позволяет передать утилите на вход данные из нескольких источников в порядке приоритетаsyslog_level
в fastpcrf.conf — уровень записи сообщений из alert-лога в syslog. 0
— запись в syslog отключена (значение по умолчанию)smartdrop = 1
, если для прокола задан drop
, то он будет отложен, пока не будет разобран tls или ошибка разбора tls:
(номер порта)detect_gtp_tunnel
)hard
syslog_level=7
(уровень, включительно до которого дублируются сообщения в syslog), по умолчанию не писать. Замечания:/etc/rsyslog.d/fastdpi.conf
с настройкой global(parser.escapeControlCharactersOnReceive="off")
либо пользоваться утилитой journalctl
. Пример:
journalctl -t fastdpi -p 4 --since "1 hour ago" -o verbose --output-fields PRIORITY,MESSAGE
/etc/rsyslog.conf
:*.* action(type="omfwd" target="192.0.0.1" port="10514" protocol="tcp" action.resumeRetryCount="100" queue.type="linkedList" queue.size="10000")
input(type="imptcp" port="10514" ruleset="writeRemoteData") ruleset(name="writeRemoteData" queue.type="fixedArray" queue.size="250000" queue.dequeueBatchSize="4096" queue.workerThreads="4" queue.workerThreadMinimumMessages="60000" ) { action(type="omfile" file="/var/log/fastdpi.log" ioBufferSize="64k" flushOnTXEnd="off" asyncWriting="on")