Динамически выделяемые IP

 

RADIUS-модуль имеет возможность управлять выдачей IP-адресов из списка свободных. Выданный IP-адрес сообщается при авторизации в атрибуте радиуса Framed-IP-Address.

 

Для динамического выделения IP необходимо:

1. для источника Radius-Internet (код протокола "R") указать параметр источника Управлять выдачей IP-адресов.

 2. ресурс должен находиться в списке свободных ресурсов источника или давно не использоваться больше часа.

 3. атрибут радиуса Framed-IP-Address должен быть установлен в значение $WIRE_IP – это значит что в качестве IP используется  зависимый IP от логина.

 4. в системе должен быть параметр ресурса Динамически выделяемый IP - признак того, что ресурс создан автоматически.

 

Дополнение, можно указать в параметрах по умолчанию, что выдаем динамически IP из пула Platex (параметр WIRE_IP), но если хотим у некоторых клиентов чтобы адрес выделялся динамически из пула NAS, то необходимо указать $WIRE_DYN.

 

Алгоритм:

1 – Аутентификация

а) смотрим есть ли уже выделенный (и не отобранный) IP, если да, то используем найденный, проверяем, если данный IP динамический, то резервируем в radius_pool_ip_addresses как будто нашелся, а если нет, то ip не резервируем, и не отмечаем о его использовании;

б) если нет ip, то ищем ресурс из свободных (свободные ресурсы), если нашли, то резервируем в radius_pool_ip_addresses;

в) если нет ip, то ищем ресурс среди давно не используемых (среди radius_pool_ip_addresses), резервируем;

 

Если была регистрация IP, то в радиус сессиях проставляется поле is_ip_managed = 1, в дальнейшем acc:start/stop отрабатывает только для записей с установленным is_ip_managed

 

2 – Аккаунтинг start создаем ресурс (если нужно), отмечаем в radius_pool_ip_addresses начало использования

 

3 – Аккаунтинг stop отмечаем в radius_pool_ip_addresses окончание использования

 

Особенности работы:

При выделении динамического IP, IP адрес добавляется в ресурсы как зависимый от логина. IP адрес добавляется источником Netflow, причем так, чтобы у источника Netflow имя источника совпадало с именем радиус источника.