Работает с версии 0.90.15
Основной способ авторизации и аккаунтинга (AAA) в системе производится при помощи RADIUS сервера. По умолчанию используется FreeRADIUS (http://www.freeradius.org/) реализация RADIUS протокола.
RADIUS PoD
Скидывание сессий возможно несколкими способами.
- Ручное через веб интерфейс администратора (/Мониторинг/Интернет)
- Автоматическое программой billd
RADIUS CoA
В системе используется механиз изменения параметров сессии без разрыва соединения при помощи RADIUS CoA. Контролем сессий занимается программа billd.
В конфигурационном файле можно указать какие RADIUS CoA отправлять при изменении статуса сессии. Параметры могут быть двух видов: общие параметры для всех типов серверов доступа и индивидуальные типы пар если используются разные сервера доступа в одной системе.
формат:
Для разделения параметров используется перевод строки "\n". Также можно отправлять несколькок независимых пакетов в одном запросе для раздения пакетов используется точка с запятой (;).
Code Block | ||
---|---|---|
| ||
$conf{INTERNET_COA_[маркер статуса]}='CoA Пары'; |
Code Block | ||
---|---|---|
| ||
$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; ), а просто указывать для определенного абонента параметры:
Code Block |
---|
/usr/abills/libexec/billd LOGIN=test COA_ACTION=NEG_DEPOSIT DEBUG=2 |
Пример для Juniper Mx80
Code Block |
---|
# включить режим 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
Code Block |
---|
# включить режим 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\%"; |