Основной способ авторизации и аккаунтинга (AAA) в системе производится при помощи RADIUS сервера. По умолчанию используется FreeRADIUS (http://www.freeradius.org/) реализация RADIUS протокола.
Страница про отладку RADIUS-сервера
RADIUS PoD
Скидывание сессий возможно несколькими способами.
- Ручное через веб интерфейс администратора (/Мониторинг/Интернет)
- Автоматическое программой billd
RADIUS CoA
В системе используется механизм изменения параметров сессии без разрыва соединения при помощи RADIUS CoA. Контролем сессий занимается программа billd.
В конфигурационном файле можно указать какие RADIUS CoA отправлять при изменении статуса сессии. Параметры могут быть двух видов: общие параметры для всех типов серверов доступа и индивидуальные типы пар если используются разные сервера доступа в одной системе.
формат:
Для разделения параметров используется перевод строки "\n". Также можно отправлять несколькок независимых пакетов в одном запросе для раздения пакетов используется точка с запятой (;).
Общие параметры
$conf{INTERNET_COA_[маркер статуса]}='CoA Пары';Если используются несколько типов серверов доступа
Общие параметры
$conf{INTERNET_COA_[маркер статуса]_[тип сервера доступа заклавніми буквами]}='CoA Пары';
пример
$conf{INTERNET_COA_NEG_DEPOSIT_ACCEL_IPOE}='...';config.pl
Общие параметры
#Huawei ME60
$conf{ME60_STATIC_USER_GROUP} = 'static_users';
$conf{ME60_NAT_USER_GROUP} = 'nat_users';Маркеры статуса
| 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 адрес клиента |
| %user_group% | В зависимости от того какой IP адрес у клиента подставляется следующая переманная. статический -> $conf{ME60_STATIC_USER_GROUP} серый → $conf{ME60_NAT_USER_GROUP} |
Для режима отладки можно не включать в конфигурационном файле работу с RADIUS COA ($conf{INTERNET_SERVICE_COA}=1; ), а просто указывать для определенного абонента параметры:
/usr/abills/libexec/billd LOGIN=test COA_ACTION=NEG_DEPOSIT DEBUG=2
Пример для Huawei ME60
# включить режим CoA
$conf{INTERNET_SERVICE_COA}=1;
# перевод в режим негативного депозита
$conf{INTERNET_COA_NEG_DEPOSIT}="Filter-Id=guest\nAcct-Session-Id=%acct_session_id%";
# Отключение услуги для отключенного абонента
$conf{INTERNET_COA_DISABLE}="Filter-Id=guest\nAcct-Session-Id=%acct_session_id%";
# Активация услуги
$conf{INTERNET_COA_ENABLE}="Filter-Id=%user_group%\nHuawei-Output-Average-Rate=%speed_in_b%\nHuawei-Input-Average-Rate=%speed_out_b%\nAcct-Session-Id=%acct_session_id%";
# Перевод из гостевого режима в рабочий
$conf{INTERNET_COA_RECHARGE}="Filter-Id=%user_group%\nHuawei-Output-Average-Rate=%speed_in_b%\nHuawei-Input-Average-Rate=%speed_out_b%\nAcct-Session-Id=%acct_session_id%";
# Смена тарифного плана
$conf{INTERNET_COA_CHANGE_TP}="Huawei-Output-Average-Rate=%speed_in_b%\nHuawei-Input-Average-Rate=%speed_out_b%\nAcct-Session-Id=%acct_session_id%";Пример для 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_b%, %speed_in_b%)\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\%";