Accounting — учет трафика (услуга 9)
FastPCRF поддерживает RADIUS accounting. FastDPI обрабатывает абонентский трафик и формирует Netflow-статистику, которая передается в fastPCRF. Далее fastPCRF агрегирует данные, преобразует их в формат RADIUS Accounting и отправляет на RADIUS-сервер.
Для активации RADIUS accounting в /etc/dpi/fastdpi.conf необходимо задать следующие параметры:
- Включение аккаунтинга:
enable_acct=1
- Включение Netflow-статистики для биллинга:
# Статистика по биллингу абонента netflow=4 # Тайм-аут отправки статистики netflow_timeout=60
Параметр
netflow является битовой маской и может принимать комбинированные значения. Например, для одновременного включения accounting и полной статистики (8) необходимо указать netflow=12.
- Включение авторизации локальных пользователей:
enable_auth=1
- Назначение абоненту услуги 9 (экспорт статистики для биллинга). В ответе на Access-Request должен присутствовать атрибут:
VasExperts-Enable-Service="9:on"
Для PPPoE: при выдаче IPv4 и IPv6 в рамках одного RADIUS-запроса учет ведется в одной сессии.
Дополнительные настройки
При запуске fastPCRF отправляет на RADIUS-сервер запрос Accounting-Request с атрибутом Acct-Status-Type=Accounting-On, а при завершении — Accounting-Off. В этих запросах передаются NAS-атрибуты, идентифицирующие сервер, и Acct-Session-Id=0. Аналогичный запрос Accounting-On отправляется при переключении на резервный RADIUS-сервер.
Некоторые биллинговые системы требуют синхронизации процессов авторизации и аккаунтинга: перед отправкой Access-Request текущая accounting-сессия должна быть корректно завершена. Для включения такого режима используется параметр:
acct_auth_sync=1
При включенной синхронизации перед отправкой Access-Request выполняется проверка наличия активной accounting-сессии для IP-адреса абонента. Если сессия существует, отправляется Acct-Stop, ожидается подтверждение, после чего выполняется авторизация.
Дополнительно может быть задана задержка между подтверждением Acct-Stop и отправкой Access-Request:
acct_auth_sync_delay=0
Значение задается в секундах. Используется для учета задержек обработки в биллинговой системе.
Возможна настройка интерпретации направлений трафика. По умолчанию:
- входящий трафик — от сети к абоненту;
- исходящий — от абонента в сеть.
Для изменения направления используется параметр:
acct_swap_dir=0
- 0 — без изменений;
- 1 — инвертировать направления.
Rating group (группы тарификации)
Rating group (RG) используется для детализации учета трафика абонента в RADIUS Accounting. Использование RG возможно только при включенной услуге 9 (экспорт статистики для биллинга).
Настройка RG в fastDPI
Параметры хранилища и обработки RG:
- Количество групп:
rating_group_count=0
Значение по умолчанию: 0 — RG отключены.
- Максимальное число абонентов с RG:
rating_group_max_subs=0
Значение по умолчанию: 0 — RG отключены.
Инициализация хранилища RG выполняется только если включена биллинговая статистика.
Объем памяти для хранения RG-статистики рассчитывается по формуле:
memory_required = 32 * rating_group_count * rating_group_max_subs * num_thread
где:
32— размер счетчиков на одну группу (в байтах);rating_group_count— количество групп;rating_group_max_subs— максимальное число абонентов;num_thread— количество потоков обработки.
Пример расчета для 10 тыс. абонентов, 256 RG и 8 потоков обработки — требуется 625M памяти:
rating_group_count = 256 rating_group_max_subs = 10000 num_thread = 8 memory_required = 32 * 256 * 10000 * 8 = 625M
Передача статистики RG в RADIUS Accounting
Статистика по RG передается в отдельных пакетах Interim-Update. Передаются данные только по ненулевым RG.
Из-за ограничения размера RADIUS-пакета (4096 байт) данные RG могут быть разбиты на несколько Interim-Update пакетов.
Для идентификации типа пакета используется новый VSA VasExperts-Acct-Type (id=28, vendor=43823, integer) со значениями:
0— стандартный Interim Update Accounting;1— данные по RG.
Каждая RG и её счетчики передаются в одном VSA со следующими атрибутами:
- VasExperts-Acct-Rating-Group (short, 16-бит) — номер RG;
- VasExperts-Acct-Input-Octets-64;
- VasExperts-Acct-Output-Octets-64;
- VasExperts-Acct-Input-Packets-64;
- VasExperts-Acct-Output-Packets-64.
Счетчики пакетов и байт по направлениям выводятся в соответствии с опцией
acct_swap_dir
(как в Accounting).
Особенности передачи RG:
- RG являются опциональными; если у абонента нет RG, данные не передаются;
- если RADIUS не подтверждает прием RG-пакета, повторная отправка не выполняется — свежие данные уйдут в следующем Interim-Update;
- если у абонента есть RG-статистика, перед отправкой Acct-Stop сессии отправляются текущие данные RG.
Задание RG при авторизации абонента
RG задается на уровне абонента при авторизации через специальный профиль услуги 9 с именем 'RG':
VasExperts-Service-Profile :="9:RG"
Накопление статистики по RG возможно только при включенной услуге 9 (bill stat). Если услуга 9 отключается, RG также отключается.
Примеры:
- Услуга 9 включена, RG отключены (стандартный RADIUS Accounting):
VasExperts-Enable-Service :="9:on" - Услуга 9 включена, RG включены (передача данных RG):
VasExperts-Service-Profile :="9:RG" - Услуга 9 отключена, RG отключены (RADIUS Accounting не отправляется):
VasExperts-Enable-Service :="9:off"
Внутреннее устройство
База данных accounting размещена в fastPCRF и работает в памяти. Структура двухуровневая:
- raw-уровень — хранение исходных данных по IP-адресам;
- уровень агрегации — объединение данных в accounting-сессии.
Через CLI возможно:
- управление сессиями (старт/стоп);
- просмотр состояния и статистики.
Рестарт fastDPI
При запуске и остановке fastDPI отправляет в fastPCRF команды accounting-on/accounting-off, на основании которых закрываются текущие сессии.
Поведение при этом регулируется параметром:
acct_fastdpi_session_stop=1
Доступны два режима:
- 1 — при старте/остановке fastDPI отправляется Acct-Stop для всех активных сессий;
- 0 — отправляются только Accounting-On/Accounting-Off без индивидуальных Acct-Stop.
Режим с отправкой Acct-Stop обеспечивает корректное завершение сессий, но создает повышенную нагрузку на RADIUS-сервер. Альтернативный режим снижает нагрузку, но требует корректной идентификации источника по NAS-атрибутам.
Для корректной работы необходимо:
- задать уникальные
attr_nas_ipиattr_nas_idдля каждого fastDPI; - настроить
radius_attr_nas_ip_addressиradius_attr_nas_idдля fastPCRF.
Обработка на стороне RADIUS:
- если NAS-атрибуты соответствуют fastDPI — закрываются сессии этого узла;
- если fastPCRF — закрываются все активные сессии.
Список значений acct_stop_reason
acct_stop_reason_unspecified — причина не указана
acct_stop_reason_user_request — завершение по инициативе абонента или при создании новой сессии
acct_stop_reason_idle_timeout — тайм-аут неактивности
acct_stop_reason_session_expired — истечение времени сессии
acct_stop_reason_admin_reset — завершение по запросу администратора (CoA Disconnect-Request)
acct_stop_reason_lost_service — отключение услуги или DHCP-NAK
acct_stop_reason_NAS_error — ошибка в запросе
acct_stop_reason_double_secondary_key — конфликт вторичного ключа
acct_stop_reason_coa_reauth — CoA reauth
acct_stop_reason_callback — завершение из-за реавторизации
acct_stop_reason_no_auth_response — отсутствует ответ на авторизацию
acct_stop_reason_NAS_switch — переключение на другой узел
acct_stop_reason_CoA_Disconnect — CoA disconnect
Из fastPCRF:
acct_stop_reason_source_reboot — обнаружен рестарт fastDPI
acct_stop_reason_change_session_id — изменение sessionId
acct_stop_reason_transfer_session_id — перенос sessionId
acct_stop_reason_fastdpi_acct_on — получен Acct-On/Acct-Off
acct_stop_reason_suspended — сессия приостановлена из-за недоступности RADIUS
acct_stop_reason_ppp_changed_IPv6_prefix — изменен IPv6-префикс
acct_stop_reason_ppp_missing_IPv6_prefix — отсутствует IPv6-префикс
Была ли полезна эта информация?