...
- 0 или отсутсвует - нет поиска дочернего сервиса
- 1 - поиск дочернего сервиса по MAC-адресу, если такого дочернего сервиса нет - ошибка авторизации;
- 2 - поиск дочернего сервиса по MAC-адресу, если такого дочернего сервиса нет - сессия будет привязана к родительскому сервису;
- 5 - поиск дочернего сервиса по IP-адресу из поля User-Name, если такого дочернего сервиса нет - ошибка авторизации;
- 6 - поиск дочернего сервиса по IP-адресу из поля User-Name, если такого дочернего сервиса нет - сессия будет привязана к родительскому сервису;
- 7 - проверка IP-адреса из поля User-Name на совпадение с IP-адресом сервиса или поиск дочернего сервиса по IP-адресу, если не совпадает и такого дочернего сервиса нет - ошибка авторизации;
- 8 - проверка IP-адреса из поля User-Name на совпадение с IP-адресом сервиса или поиск дочернего сервиса по IP-адресу, если не совпадает и такого дочернего сервиса нет - сессия будет привязана к родительскому сервису.
Например, radius.servSearchMode=1 - поиск по порту, radius.servSearchMode=2-1 - поиск по VLAN с проверкой MAC-адреса, radius.servSearchMode=2-7 - поиск по VLAN с проверкой IP-адреса.
Список допустимых реалмов указывается в параметре устройства/типа сервиса radius.realm через запятую, например:
...
Данную опцию необходимо устанавливать как в preprocessAccessRequest, так и в preprocessAccountingRequest. Значение обычно извлекается из RADIUS-атрибутов запроса, содержащих, например, значение субопций DHCP option 82. Значение можно установить как строкой, так и массивом байт (byte[]). В случае, если опция установлена в предобработке запроса, будет произведен поиск агентского устройства на совпадение с полем Идентификатор.
Также возможна схема с несколькими NAS'ами, работающими параллельно, в этом случае ветку с устройствами коммутаторами нужно завести отдельно (не делать ее дочерней по отношению к одному из устройств-NAS'ов), а в конфигурации устройств-NAS'ов указать параметр device.agentDeviceRootId=<x>, где <x> - ID устройства-папки, в котором находится подветка с коммутаторами:
Для определения интерфейса или VLAN возможны два способа: установка опции AGENT_CIRCUIT_ID или установка напрямую опции INTERFACE_ID/VLAN_ID. В первом случае значение номера интерфейся или VLAN из опции будет извлечено по параметрам конфигурации агентского устройства dhcp.option82.interfaceId.position, dhcp.82.interfaceId.length, dhcp.option82.vlanId.position, dhcp.option82.vlanId.length. Во втором - значение должно быть равно интерфейсу или порту.
...
- <realm> - реалм;
- <attributes> - атрибуты.
Пример:
Блок кода | ||||
---|---|---|---|---|
| ||||
radius.realm.default.attributes=Acct-Interim-Interval=300;Session-Timeout=604800 |
Якорь | ||||
---|---|---|---|---|
|
...
Блок кода | ||||
---|---|---|---|---|
| ||||
radius.realm.default.attributes=Service-Name:1=RSE-SVC-EXT;Service-Options:1=1 radius.inetOption.1.attributes=Service-Parameter:1=Rate=100000 Burst=12500000 radius.inetOption.2.attributes=Service-Parameter:1=Rate=100000 Burst=12500000 |
Для удобства указания однотипных наборов атрибутов, например, для указания атрибутов скорости можно использовать шаблоны. Для этого опции скорости должны находиться в одной родительской опции (которую можно назвать, например, "Скорость"). В конфигурации устройства нужно будет указать:
Блок кода | ||||
---|---|---|---|---|
| ||||
radius.inetOption.<parent_option_id>.template=Service-Parameter:1=Rate=$rate Burst=$burst |
где <parent_option_id> - ID родительской опции ("Скорость").
В конфигурации опций-скоростей необходимо указать необходимые значения rate= и burst=. Таким образом отпадает необходимость указания практически одинакового набора атрибутов для каждой опции-скорости в конфигурации устройства, достаточно лишь прописать один раз шаблон. Также значения параметров можно прописать в конфигурации родительской опции, для того чтобы использовать как значения по умолчанию (если значение не переопределено в дочерней опции) или просто как самостоятельную переменную шаблона.
Атрибуты сервиса/логина
Атрибуты специфичные для типа сервиса можно прописать в конфигурации типа сервиса:
...
Блок кода | ||||
---|---|---|---|---|
| ||||
resource.ip.pool.greyPool.ipCategories=4 radius.realm.default.ipPool=greyPool |
При использовании схем IPoE возможна ситуация, когда с Cisco/SE приходит подряд несколько Access-Request'ов. Например, абонентский DHCP-клиент шлет сразу несколько DHCP-Discover-пакетов, или в Cisco инициация сессии срабатывает не только на DHCP-Discover, но и на DHCP-Request. По умолчанию для динамической выдачи IP-адресов InetAccess на каждый Access-Request выдает Access-Accept с новым IP-адресом, что может быть проблемой для связки DHCP-клиент+Cisco/SE. В этом случае можно использовать параметр radius.address.authReserveTimeout. При выдаче адреса он будет запоминаться по ключу сервис+устройство-NAS+(агентское_устройство)+User-Name+(MAC-address)+(CallingStationId)+(identifier) и в течении указанного времени (в миллисекундах) на очередной Access-Request с таким же ключом будет предлагать тот же адрес.
Блок кода | ||||
---|---|---|---|---|
| ||||
radius.address.authReserveTimeout=3000 |
Reject-To-Accept
В случае ошибки авторизации высылается пакет AUTHENTICATION_REJECT с отображением ошибки и её кода в мониторе модуля. Допустимые коды ошибок данного процессора.
...
Блок кода | ||||
---|---|---|---|---|
| ||||
radius.disable.ipCategories=3 |
Если же нужно выдавать статический IP-адрес такой же, как при обычном доступе (также, как когда не возникает ошибок авторизации), нужно указать режим:
Блок кода | ||||
---|---|---|---|---|
| ||||
# Режим выдачи адреса при ошибке авторизации: # 0 (по умолчанию) - выдавать адрес из категорий radius.disable.ipCategories, # 1 - выдавать адрес как при удачной авторизации radius.disable.mode=1 |
Если нужно выдавать динамический IP-адрес такой же, как при обычном доступе - то нужно прописать в radius.disable.ipCategories те же самые пулы.
При ошибке авторизации, атрибуты выдаются из параметра radius.disable.attributes:
...
Блок кода | ||||
---|---|---|---|---|
| ||||
# Привязка авторизации сервиса к устройству, указанному в сервисе договора # 0 - клиент может авторизоваться на любом устройстве (NAS'е), 1 - клиент может авторизоваться только на прописанном в сервисе устройстве, # 2 - клиент может авторизоваться только на прописанном в сервисе устройстве или являющимся дочерним по отношению к нему serv.device.link=12 |
Действие при получении Access-Request при наличии активной сессии
...