...
Данную опцию необходимо устанавливать как в 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 |
Якорь | ||||
---|---|---|---|---|
|
...
В конфигурации опций-скоростей необходимо указать необходимые значения 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:
...