{{tag>Услуги "Услуга 9" "RADIUS accounting" "Сбор Netflow для биллинга"}} ====== Accounting — учет трафика (услуга 9)====== {{indexmenu_n>3}} 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 Данные по объему потребляемого трафика передаются в биллинговую систему по протоколу RADIUS Accounting через fastPCRF, а не напрямую через Netflow.\\ Параметр ''netflow'' является битовой маской и может принимать комбинированные значения. Например, для одновременного включения accounting и полной статистики (8) необходимо указать ''netflow=12''. * Включение авторизации локальных пользователей:enable_auth=1 * Назначение абоненту услуги 9 (экспорт статистики для биллинга). В ответе на Access-Request должен присутствовать атрибут:VasExperts-Enable-Service="9:on" **Для DHCP-авторизации:** учет трафика по IPv4 и IPv6 ведется в отдельных сессиях. При наличии у абонента IPv4-адреса и IPv6-префикса создаются две независимые accounting-сессии.\\ **Для 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 При высокой нагрузке поток accounting-данных от fastDPI может превышать возможности обработки fastPCRF. В этом случае требуется тюнинг сетевого стека. {{anchor:acct-pending-queue}} ==== Передача статистики 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" ===== Внутреннее устройство ===== {{anchor:internals}} База данных accounting размещена в fastPCRF и работает в памяти. Структура двухуровневая: * raw-уровень — хранение исходных данных по IP-адресам; * уровень агрегации — объединение данных в accounting-сессии. Через CLI возможно: * управление сессиями (старт/стоп); * просмотр состояния и статистики. При перезапуске или остановке fastPCRF все текущие accounting-сессии удаляются. При перезапуске fastDPI счетчики трафика обнуляются. При старте отправляется Accounting-On, при остановке — Accounting-Off с соответствующими NAS-атрибутами. ===== Рестарт fastDPI ===== {{anchor:fastdpi_restart}} При запуске и остановке 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-префикс