6. Выдача атрибутов соединения и выделение IP адресов

При успешной авторизации в пакете AUTHENTICATION_ACCEPT выдаются атрибуты RADIUS, атрибуты выбираются в следующем порядке:

  1. Атрибуты в ответ авторизации может установить скрипт предобработки запроса, данные атрибуты добавляются как при успешной, так и при неуспешной авторизации;

  2. Выбираются наборы атрибутов сначала логина (в свойствах логина на вкладке Атрибуты RADIUS - Наборы атрибутов), а затем из тарифного плана. Каждый набор может быть отправлен только один раз;

  3. Выбираются атрибуты, установленные в свойствах логина на вкладке Атрибуты RADIUS - Атрибуты;

  4. Если на вкладке Атрибуты RADIUS установлена опция присваивания атрибутов Глобальные+локальные, то выдаются атрибуты для текущего REALMа соединения, указанные в конфигурации модуля и NASа;

  5. Атрибуты ответа могут быть изменены скриптом поведения договора при обработке события "RADIUS-аутентификация".

IP адрес соединению присваивается по следующему алгоритму. Если на каком-либо шаге адрес установлен - последующие пропускаются.

  1. Просматриваются установленные в AUTHENTICATION_ACCEPT атрибуты и если среди них присутствует Framed-Ip-Address, считается что у соединения установлен указанный адрес.

  2. Просматривается список адресов указанных в свойствах логина на вкладке IP адрес. Если адресов несколько - выдаётся любой свободный из них, устанавливается атрибут Framed-Ip-Address.

  3. Просматриваются установленные в AUTHENTICATION_ACCEPT атрибуты и если среди них присутствует Framed-Pool атрибут - делается попытка поиска свободного адреса в указанном пуле, описание самого пула последовательно ищется в конфигурации NASа и модуля.

  4. Делается попытка выдачи адреса из глобального пула, определённого в конфигурации модуля как pools.global.

  5. Если адрес не был выдан RADIUS сервером, он берётся из Start пакета для регистрации на встроенном коллекторе.

При успешной выдаче адреса и установленной опции конфигурации модуля drop.framed.pool.attr=1 атрибуты Framed-Pool удаляются из пакета.

При исчерпании пула адресов система шлет специализированный аларм. Дополнительно в конфигурации модуля можно определить пороговый процент для любого из пулов. При проценте использовании пула больше или равном указанному будет высылаться предварительный аларм. Данная мера позволяет заблаговеменно увеличивать размер пулов. Процент указывается следующим образом:

pool.alarm.fullness.<имя пула>=<процент заполнения>

Например (высылка аларма по глобальному пулу после его расходования более чем на 20 целых и 4 десятых процента):

pool.alarm.fullness.global=20.4