Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  • 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> - атрибуты. 

Пример:

Блок кода
languageruby
titleПример
radius.realm.default.attributes=Acct-Interim-Interval=300;Session-Timeout=604800

 

Якорь
inet_radius_inet_option
inet_radius_inet_option

...

Блок кода
languageruby
linenumbersfalse
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

Для удобства указания однотипных наборов атрибутов, например, для указания атрибутов скорости можно использовать шаблоны. Для этого опции скорости должны находиться в одной родительской опции (которую можно назвать, например, "Скорость"). В конфигурации устройства нужно будет указать:

Блок кода
languageruby
linenumbersfalse
radius.inetOption.<parent_option_id>.template=Service-Parameter:1=Rate=$rate Burst=$burst

где <parent_option_id> - ID родительской опции ("Скорость").

В конфигурации опций-скоростей необходимо указать необходимые значения rate= и burst=. Таким образом отпадает необходимость указания практически одинакового набора атрибутов для каждой опции-скорости в конфигурации устройства, достаточно лишь прописать один раз шаблон. Также значения параметров можно прописать в конфигурации родительской опции, для того чтобы использовать как значения по умолчанию (если значение не переопределено в дочерней опции) или просто как самостоятельную переменную шаблона.

Атрибуты сервиса/логина

Атрибуты специфичные для типа сервиса можно прописать в конфигурации типа сервиса:

...

Блок кода
languageruby
linenumbersfalse
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 с таким же ключом будет предлагать тот же адрес.

Блок кода
languageruby
linenumbersfalse
radius.address.authReserveTimeout=3000

Reject-To-Accept

В случае ошибки авторизации высылается пакет AUTHENTICATION_REJECT с отображением ошибки и её кода в мониторе модуля. Допустимые коды ошибок данного процессора.

...

Блок кода
languageruby
linenumbersfalse
radius.disable.ipCategories=3

Если же нужно выдавать статический IP-адрес такой же, как при обычном доступе (также, как когда не возникает ошибок авторизации), нужно указать режим:

Блок кода
languageruby
linenumbersfalse
# Режим выдачи адреса при ошибке авторизации:
# 0 (по умолчанию) - выдавать адрес из категорий radius.disable.ipCategories,
# 1 - выдавать адрес как при удачной авторизации
radius.disable.mode=1

Если нужно выдавать динамический IP-адрес такой же, как при обычном доступе - то нужно прописать в radius.disable.ipCategories те же самые пулы.

При ошибке авторизации, атрибуты выдаются из параметра radius.disable.attributes:

...

Блок кода
languageruby
linenumbersfalse
# Привязка авторизации сервиса к устройству, указанному в сервисе договора
# 0 - клиент может авторизоваться на любом устройстве (NAS'е), 1 - клиент может авторизоваться только на прописанном в сервисе устройстве,
# 2 - клиент может авторизоваться только на прописанном в сервисе устройстве или являющимся дочерним по отношению к нему
serv.device.link=12

Действие при получении Access-Request при наличии активной сессии

...