Skip to end of metadata
Go to start of metadata

Работает с версии 0.90.15


Основной способ авторизации и аккаунтинга (AAA)  в системе производится при помощи RADIUS  сервера. По умолчанию используется FreeRADIUS (http://www.freeradius.org/)  реализация RADIUS протокола.


RADIUS PoD

Скидывание сессий возможно несколкими способами.

  • Ручное через веб интерфейс администратора (/Мониторинг/Интернет)
  • Автоматическое программой  billd


RADIUS CoA


В системе используется механиз изменения параметров сессии без разрыва соединения при помощи RADIUS CoA. Контролем сессий занимается программа billd.

В конфигурационном файле можно указать какие RADIUS CoA  отправлять при изменении статуса сессии. Параметры могут быть двух видов:  общие параметры для всех типов серверов доступа и индивидуальные типы пар если используются разные сервера доступа в одной системе.

формат:

Для разделения параметров используется перевод строки "\n". Также можно отправлять несколькок независимых пакетов в одном запросе для раздения пакетов используется точка с запятой (;).

Общие параметры
$conf{INTERNET_COA_[маркер статуса]}='CoA Пары';



Общие параметры
$conf{INTERNET_COA_[маркер статуса]_[иип сервера доступа]}='CoA Пары';


Маркеры статуса



CHANGE_TPИзменение тарифных планов
DISABLEОтключение услуги
ENABLEВключение услуги
NEG_DEPOSITПереход в статус должника
RECHARGEПополнение должником счета

Переменные шаблонов.

Переменные экранируются знаком процента %VAR%



%acct_session_id%ID сессии
%tp_id%ID  тарифного плана
%login%Логин
%speed_in%Входящая скорость в килобитах
%speed_out%Исходящая скорость в килобитах
%speed_in_b%Входящая скорость в битах
%speed_out_b%Исходящая скорость в битах
%user_name%RADIUS User-Name
%client_ip%IP адрес клиента

Для режима отладки можно не включать в конфигурационном файле работу с RADIUS COA ($conf{INTERNET_SERVICE_COA}=1; ), а просто указывать для определенного абонента параметры:

/usr/abills/libexec/billd LOGIN=test COA_ACTION=NEG_DEPOSIT DEBUG=2

Пример для Juniper Mx80

# включить режим CoA
$conf{INTERNET_SERVICE_COA}=1; 
# Отключение услуги для отключенного абонента
$conf{INTERNET_COA_DISABLE}="ERX-Service-Activate=svc-guest-ipoe(svc-filter-disable)\nAcct-Session-Id=%acct_session_id%";  
# перевод в режим негативного депозита, используется два RADIUS запроса. Первый для отключения услуги, второго для включения другого сервиса
$conf{INTERNET_COA_NEG_DEPOSIT}="ERX-Service-Deactivate=svc-global-ipoe\nAcct-Session-Id=%acct_session_id%;"
  . "ERX-Service-Activate:1=svc-guest-ipoe(svc-filter-in-nomoney)\nAcct-Session-Id=%acct_session_id%";
# Перевод из гостевого режима в рабочий
$conf{INTERNET_COA_RECHARGE}="ERX-Service-Deactivate=svc-guest-ipoe\nAcct-Session-Id=%acct_session_id%;"
  . "ERX-Service-Activate:1=svc-global-ipoe(%speed_in%, %speed_out%)\nAcct-Session-Id=%acct_session_id%";

Пример Accel-ppp

# включить режим CoA после отладки
$conf{INTERNET_SERVICE_COA}=1;

# перевод в режим негативного депозита, используется два RADIUS запроса. Первый для отключения услуги, второго для включения другого сервиса
$conf{INTERNET_COA_NEG_DEPOSIT}="L4-Redirect=1\nL4-Redirect-ipset=nomoney\nFilter-Id=TV_Max\nFramed-IP-Address=\%client_ip\%";

# Перевод из гостевого режима в рабочий
$conf{INTERNET_COA_RECHARGE}="L4-Redirect=0\nFramed-IP-Address=\%client_ip\%";