Пример конфигурации для SmartEdge RSE.
В типе устройства указывается SmartEdge*ServiceActivator в поле "Обработчик активации сервисов" и SmartEdge*ProtocolHandler в поле "Обработчик процессора протокола", в зависимости от используемой схемы - просто PPPoE - SmartEdgeServiceActivator, CLIPS - SmartEdgeClipsServiceActivator, dot1q -SmartEdgeDot1qServiceActivator, static CLIPS - SmartEdgeStaticClipsServiceActivator как "Обработчик активации сервисов" и аналогично в поле "Обработчик процессора протокола".
В конфигурации типа устройства нужно указать:
# Режим поиска сервиса (аккаунта) договора: 0 (по умолчанию) - по логину, 1 - по интерфейсу на устройстве (в предобработке должны быть # проставлены опции AGENT_REMOTE_ID и AGENT_CIRCUIT_ID или INTERFACE_ID), 2 - по VLAN на устройстве (в предобработке # должны быть проставлены опции AGENT_REMOTE_ID и AGENT_CIRCUIT_ID или VLAN_ID), 4 - по VLAN на устройстве или # дочернем устройстве (в предобработке должны быть проставлены опции AGENT_REMOTE_ID и AGENT_CIRCUIT_ID или VLAN_ID), # 5 - по MAC-адресу на устройстве (в предобработке должна быть проставлена опция MAC_ADDRESS), 6 - по MAC-адресу на # устройстве или дочернем устройстве (в предобработке должна быть проставлена опция MAC_ADDRESS). #radius.servSearchMode=0 # Нужно ли проверять пароль: 0 - нет (например, для IPoE), 1 (по умолчанию) - да. #radius.password.verification=1 # Порт для отправки PoD и CoA-запросов (по умолчанию - порт, заданный в устройстве в поле Хост/порт) radius.port=3799 # При выдаче Access-Accept добавлять запись в базу. # Hеобходимо, если используется Reject-To-Accept и по Start-пакету нельзя определить в каком состоянии соединение connection.start.fromAccept=1 # При создании сессии по Update-пакету нужно ли игнорировать отсутствие IP-адреса сессии (Framed-Ip-Address). По умолчанию сессия # по Update-пакету без адреса не создается (0). #connection.start.fromUpdate.ignoreFramedIpLack=0 # Таймаут перевода соединения в статус suspended при отсутствии радиус пакетов connection.suspend.timeout=3600 # Таймаут закрытия соединения при отcутствии радиус пакетов (не складывается с connection.suspend.timeout) connection.close.timeout=3600 # При закрытии соединения по таймауту, 0 (по умолчанию) - просто закрыть, # 1 - попытаться сбросить также на NAS'е (вызвать connectionClose у обработчика активации сервисов) #connection.close.timeout.forceClose=1 # Атрибуты, выдаваемые при авторизации по реалму default (default - реалм по умолчанию) radius.realm.default.attributes=Acct-Interim-Interval=900 # Коды ошибок, при которых отвечать Access-Accept в состоянии disable (rejectToAccept) radius.disable.accessCodes= # Какие адреса выдавать при ответе Access-Accept в состоянии disable: # 0 (по умолчанию) - из radius.disable.ipCategories, 1 - так же, как если бы не было ошибки (в том числе привязанные к сервису в договоре) #radius.disable.mode=0 # Атрибуты, выдаваемые при ответе Access-Accept в состоянии disable radius.disable.attributes=Acct-Interim-Interval=900 # Id фиктивного сервиса, к которому будут привязываться сессии, по которым нормальный сервис не был найден (код ошибки: 1, логин не найден). # Необходим, если в radius.disable.accessCodes присутствует код 1 #radius.disable.servId= # Режим работы ограничения доступа через опцию. По умолчанию отключено для обратной совместимости, но рекомендуется использовать этот режим. sa.optionMode=1 # Шаблон опций-скорости (1 - опция-папка, в которой содержатся опции-скорости) radius.inetOption.1.template=Service-Name:1=rse-inet;Service-Parameter:1=in=$in inb=$inb out=$out outb=$outb;Service-Options:1=0 radius.inetOption.14.attributes=Service-Name:2=limited;Service-Options:2=1;Service-Parameter:2=url=http://unpaid.provider.ru/691-4-31.html # ID опций, которые нужно включать, если необходимо ограничить (отключить) доступ (и выключать перед снятием ограничения) sa.radius.service.disable.optionIds=14 # Имена RSE-сервисов, при которых доступ ограничен (чтобы биллинг понимал, когда у сессии доступ ограничен) radius.serviceName.disable=limited # Атрибуты сессии, которые отправляются в CoA (для того, чтобы SE идентифицировал, для какой сессии запрос) sa.radius.connection.attributes=Acct-Session-Id # Не сбрасывать сессию при включении/отключении доступа (а менять параметры) sa.radius.connection.withoutBreak=1 # Префикс набора опций для ServiceActivator (используем тот же набор, что используется для выдачи в Access-Accept) sa.radius.option.attributesPrefix=radius.inetOption. # Проверка на повторную аутентификацию при Access-Request. Бывает нужна в случаях, когда NAS сбрасывает (теряет) сессию, но # Stop-пакет не присылает и клиент пытается подключиться повторно, но у него стоит ограничение на максимум одну сессию. При совпадении # callingStationId с одной из активных сессий и установленным параметром: 1 - осуществляется попытка закрытия старой сессии (connectionClose), # 2 - попытка закрытия сессии (connectionClose) и завершение ее в базе, не дожидаясь стоп пакета, 3 - завершение в базе. #radius.connection.checkDuplicate=0 # Должен ли поиск по логину идти без учета регистра. По умолчанию - нет (0). #radius.username.ignoreCase=0 # Параметры активации сервисов # длина паузы, если возникла ошибка #sa.error.pause=60 # количество заданий за раз #sa.batch.size=20 # время (сек) ожидания завершения всех заданий (при асинхронной работе) #sa.batch.wait=5 # пауза (сек) после обработки заданий #sa.batch.pause=0 # время (сек) ожидания новой задачи перед вызовом disconnect. #sa.batch.waitNext=5
В конфигурации устройства нужно указать:
# Хост для отправки PoD и CoA-запросов (по умолчанию - хост, заданный в устройстве в поле Хост/порт) #radius.host=<хост устройства> # Порт для отправки PoD и CoA-запросов (по умолчанию - порт, заданный в устройстве в поле Хост/порт) radius.port=3799 # Используемый secret для общения по RADIUS-протоколу (по умолчанию - значение из поля Community/secret параметров устройства) #radius.secret=<sercret устройства>
В данном примере используются опции Inet. Необходимо создать опцию-папку "Скорости", в конфигурации типа устройства прописать её ID (например, 1) в имени параметра radius.inetOption.1.template:
radius.inetOption.1.template=Service-Name:1=rse-inet;Service-Parameter:1=in=$in inb=$inb out=$out outb=$outb;Service-Options:1=0
Данный параметр представляет собой шаблон, который будет применен к опциям, расположенным внутри опции "Скорости (1)". Поэтому в конфигурации опций-скоростей нужно будет указать параметры, которые были указаны в данном шаблоне (через $), например:
in=1000000 inb=125000000 out=1000000 outb=125000000