RDP IPoE BRAS (EcoNAT)
EcoBRAS начинает новую сессию после переключения сервиса (скорости/доступа), текущий включенный сервис приходит в RADIUS-Accounting в атрибуте Cisco-Service-Info.
Создайте тип устройства Econat, укажите в поле Обработчик активации сервисов: ru.bitel.bgbilling.modules.inet.dyn.device.radius.CoAServiceActivator, а в поле Обработчик процессора протокола: ru.bitel.bgbilling.modules.inet.dyn.device.rdp.EconatProtocolHandler.
В конфигурации данного типа устройства укажите:
# Порт для отправки PoD и CoA-запросов (по умолчанию - порт, заданный в устройстве в поле Хост/порт)radius.port=3799# Режим поиска сервиса (аккаунта) договора: по IP-адресу (если в аккаунте указан статический адрес)radius.servSearchMode=7# Нужно ли проверять пароль: 0 - нет (например, для IPoE), 1 (по умолчанию) - да.radius.password.verification=0# Берем адрес из Access-Requestradius.address.fromRequest=1# Какие адреса выдавать при ответе Access-Accept в состоянии disable: # 0 (по умолчанию) - из radius.disable.ipCategories, 1 - так же, как если бы не было ошибки (в том числе привязанные к сервису в договоре)radius.disable.mode=0# При выдаче Access-Accept добавлять запись в базу.# Hеобходимо, если используется Reject-To-Accept и по Start-пакету нельзя определить в каком состоянии соединениеconnection.start.fromAccept=1# Таймаут перевода соединения в статус suspended при отсутствии радиус пакетов сессииconnection.suspend.timeout=3600# Таймаут закрытия соединения при отcутствии радиус пакетов сессии (не складывается с connection.suspend.timeout)connection.close.timeout=3600# При закрытии соединения по таймауту, 0 (по умолчанию) - просто закрыть,# 1 - попытаться сбросить также на NAS'е (вызвать connectionClose у обработчика активации сервисов)#connection.close.timeout.forceClose=1# Атрибуты, выдаваемые при авторизации по реалму default (default - реалм по умолчанию)# Acct-Interim-Interval - требуемый интервал между Accounting-Update запросами по сессии от NAS'аradius.realm.default.attributes=Acct-Interim-Interval=900;Idle-Timeout=4200# Шаблон опций-параметров сессий, значения макросов указываются в конфигурации опцииradius.inetOption.1.template=cisco-SSG-Account-Info=QU;;$in;;D;;$out# Какие адреса выдавать при ответе Access-Accept в состоянии disable: # 0 (по умолчанию) - из radius.disable.ipCategories, 1 - так же, как если бы не было ошибки (в том числе привязанные к сервису в договоре)radius.disable.mode=0# Коды ошибок, при которых вместо reject выдавать accept с заданными атрибутамиradius.disable.accessCodes=1,2,3,4,10,11,12,20,44# Атрибуты, выдаваемые при ответе Access-Accept в состоянии disableradius.disable.1,2,3,4,11,20,44,62.attributes=Acct-Interim-Interval=90;cisco-SSG-Service-Info=AserviceBlock;Session-Timeout=86400radius.disable.10,12.attributes=Acct-Interim-Interval=90;cisco-SSG-Service-Info=AserviceNomoney;Session-Timeout=86400radius.disable.attributes=Acct-Interim-Interval=90;cisco-SSG-Service-Info=AserviceBlock# Атрибуты, отправляемые в CoA при необходимости ограничить доступsa.radius.disable.attributes=Acct-Interim-Interval=90;cisco-SSG-Service-Info=AserviceNomoney# Атрибуты, отправляемые в CoA при необходимости включить доступsa.radius.enable.attributes=Acct-Interim-Interval=600;cisco-SSG-Service-Info=Aservice300m# При наличии данных сервисов в RADIUS-Accounting считаем, что у сессии состояние отключено (доступ ограничен)radius.serviceName.disable=serviceNomoney,serviceBlock# Логирование CoA/PoD-запросов (контекстное меню сессии - RADIUS-лог)sa.radius.log=1# Атрибуты сессии, которые отправляются в CoA (для того, чтобы Econat идентифицировал, для какой сессии запрос)sa.radius.connection.attributes=User-Name# Не сбрасывать сессию при включении/отключении доступа (а менять параметры, отправлять CoA)sa.radius.connection.withoutBreak=1# при значении 1 InetAccess при вызове для изменения состояния метода connectionModify из# CoAServiceActivator/ISGServiceActivator/SmartEdgeServiceActivator сразу поменяет состояние в БД (вызовет e.setConnectionStateModified( true ),# рекомендуется для CoAServiceActivator)# Для Econat не работает, т.к. после CoA создаётся новая сессияsa.radius.connection.stateModify=0# Параметры активации сервисов# длина паузы, если возникла ошибка#sa.error.pause=60# количество заданий за разsa.batch.size=4# время (сек) ожидания завершения всех заданий (при асинхронной работе)sa.batch.wait=10# пауза (сек) после обработки заданий#sa.batch.pause=0# время (сек) ожидания новой задачи перед вызовом disconnect.#sa.batch.waitNext=5Статические IP-адреса
Если поиск абонента будет происходить по IP-адресу, указанному в сервисе договора, то в конфигурации типа сервиса нужно указать:
# Сервисы данного типа учавствуют в поиске по IP-адресу при RADIUS-аутентификацииserv.search.address=1При изменении данного параметра в существующем типе сервиса, с которым сервисы договора уже заведены, требуется перезапуск InetAccess/InetAccounting.
Адреса, выданные по DHCP
Для того, чтобы биллинг находил абонента по IP-адресу, ранее выданному ему по DHCP (с помощью InetDhcpProcessor и, возможно, DHCP Option 82), нужно:
В inet-access.xml и inet-accounting.xml нужно заменить radiusProcessor с "ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor" на "ru.bitel.bgbilling.modules.inet.radius.InetRadiusHelperProcessor";
В конфигурации корневого устройства (Access+Accounting) указать в параметре radius.key.deviceTypeIds ID типа устройства Econat:
# Типы устройств с аутентификацией по IP-адресу ()radius.key.deviceTypeIds=