Accounting — учет трафика (услуга 9) [Документация VAS Experts]

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


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
Данные по объему потребляемого трафика передаются в биллинговую систему по протоколу 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).

Доступны следующие параметры:

  • Количество групп:
    rating_group_count=0

    По умолчанию: 0

  • Максимальное число абонентов с использованием rating group:
    rating_group_max_subs=0

Значение 0 означает, что функциональность отключена.

Инициализация хранилища rating group выполняется только при включенной биллинговой статистике.

Объем памяти, необходимый для хранения статистики rating group, рассчитывается по формуле:

32 * rating_group_count * rating_group_max_subs * num_thread

где:

  • 32 байта — размер счетчиков на одну группу;
  • rating_group_count — количество групп;
  • rating_group_max_subs — максимальное число абонентов;
  • num_thread — число потоков обработки.

Пример расчета:

rating_group_count = 256
rating_group_max_subs = 10000
num_thread = 8

memory_required = 32 * 256 * 10000 * 8 = 625M
При высокой нагрузке поток accounting-данных от fastDPI может превышать возможности обработки fastPCRF. В этом случае требуется тюнинг сетевого стека.

Основным источником событий начала и завершения accounting-сессий является fastDPI, при этом учетная база ведется в fastPCRF. fastDPI передает сырые данные по трафику, а fastPCRF выполняет их агрегацию и формирует RADIUS-сообщения.

Взаимодействие между fastDPI и fastPCRF осуществляется через внутренний сетевой протокол. Потеря сообщений может приводить к некорректному состоянию сессий (например, отсутствию Acct-Stop или Acct-Start).

Для повышения надежности используется очередь обязательных сообщений (pending queue), которая сглаживает кратковременную недоступность fastPCRF.

Параметры очереди запросов к PCRF:

  • Максимальное время хранения запроса (секунды):
    pcrf_pending_queue_timeout=300
  • Максимальный размер очереди:
    pcrf_pending_queue_size=10000

В очередь помещаются только критичные сообщения (например, Acct Start/Stop). При превышении времени хранения или размера очереди старые записи удаляются.

Внутреннее устройство

База данных accounting размещена в fastPCRF и работает в памяти. Структура двухуровневая:

  • raw-уровень — хранение исходных данных по IP-адресам;
  • уровень агрегации — объединение данных в accounting-сессии.

Через CLI возможно:

  • управление сессиями (старт/стоп);
  • просмотр состояния и статистики.
При перезапуске или остановке fastPCRF все текущие accounting-сессии удаляются.
При перезапуске fastDPI счетчики трафика обнуляются. При старте отправляется Accounting-On, при остановке — Accounting-Off с соответствующими NAS-атрибутами.

Рестарт 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-префикс

Была ли полезна эта информация?