В данной статье рассмотрен пример интеграции LANBilling с BNG Ericsson SmartEdge100 (далее SE100) с целью организации гибкого и управляемого шлюза для доступа в сеть Интернет. Возможных сервисных моделей предоставления услуг на базе SE100 существует несколько, однако мы остановимся на одном набирающем с каждым днем популярность варианте: Dynamic CLIPS с динамической выдачей IP-адресов и авторизацией по DHCP option 82. Примерная схема рассматриваемой сервисной модели отражена на Рис. 1, при этом роль и RADIUS и DHCP-сервера в нашем случае выполняет LANBilling, что значительно упрощает администрирование эксплуатируемых механизмов.

lanbilling-dynamic-clips-01.jpg

Рисунок 1 (Схема рассматриваемой модели)

Справочно: Более подробную информацию про CLIPS и его настройку можно узнать в  статье «Clips HOWTO».


1. Базовая настройка LANBilling

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


2. Настройка DHCP-сервера

Роль DHCP-сервера в рамках LANBilling выполняет агент LBinet. Все настройки агента, в том числе создание пулов адресов и управление ими, осуществляются с помощью web-интерфейса через экранную форму редактирования свойств RADIUS-агента в разделе DHCP-сервер. Установка агента и базовая настройка выполняются типовым образом согласно документации по базовой настройке в пункте 1.


3. Настройка RADIUS-агента

Роль RADIUS в рамках LANBilling выполняет агент Lbarcd (далее RADIUS-агент). RADIUS-агент, как это было описано выше в пункте 2, работает в симбиозе с агентом LBInet под одним sysid, поэтому создания дополнительных агентов в этом случае не требуется. Основная часть настроек является типовой (за исключением настроек LBInet) и описана в стандартной документации. Из параметров, требующих особого внимания, следует отметить (Рис. 2):

lanbilling-dynamic-clips-02.png

Рисунок 2 (Настройка агентов)

«Тайм-аут зависшей сессии (сек)» - интервал в секундах между временем обработки последнего Accounting-Update пакета и текущим временем, при превышении которого сессия считается устаревшей. По умолчанию 1 день, можно выставлять любые меньшие значения данного параметра, большие значения использовать крайне не рекомендуется.

«Запускать script_stop для зависших сессий» - необходим для запуска внешнего скрипта с целью принудительного разрыва устаревших сессий или отправки Disconnect-Request через внутренний механизм CoA.

«Запускать script_stop при изменении текущей скорости» - необходим для запуска внешнего скрипта с целью изменения скорости доступа или отправки через внутренний механизм CoA скоростных атрибутов для изменения текущей скорости без разрыва сессии.

Далее необходимо завести SE100 в качестве сервера доступа. Для этого из экранной формы редактирования RADIUS-агента необходимо перейти в раздел «Серверы доступа» и добавить новый сервер доступа с соответствующим IP-адресом и radius secret key (Рис. 3).

lanbilling-dynamic-clips-03.png

Рисунок 3 (Управление серверами доступа)

В связи с тем, что в составе RADIUS-агента имеется встроенный DHCP-сервер, функционирующий только в случае использования сервисной модели с аутентификацией по протоколу 802.1х (другими словами, только при наличии RADIUS-сессии), а так же код поддержки механизма DHCP2RADIUS, в случае применения агента LBInet требуется отключить DHCP-сервер, встроенный в RADIUS-агент. Сделать это можно путем внесения в таблицу agent_options двух конфигурационных директив radius-uses-lbinet=1 и enable-dhcp-request=0:

insert into agent_options set id=:sysid, name='radius-uses-lbinet', value=1;
insert into agent_options set id=:sysid, name='enable-dhcp-request', value=0;

где :sysid = id агента RADIUS.

В рамках RADIUS-агента существует возможность аутентификации по нескольким различным критериям (login, ip, mac, opt82). Для явного включения механизма аутентификации абонентов по DHCP option 82 (имеется ввиду авторизация по VSA Agent-Remote-Id и VSA Agent-Circuit-Id, которые формирует SE100 на основании информации, извлеченной из DHCP option 82) и отключения всех остальных механизмов, требуется добавление в таблицу agent_options конфигурационной директивы radius_auth_method=opt82:

insert into agent_options set id=:sysid, name='radius_auth_method', value='opt82';

где :sysid = id агента RADIUS.

RADIUS-агент по умолчанию в ответе отсылает атрибут Acct-Interim-Interval со значением 60 (величина интервала в секундах между генерацией SE100 промежуточных Accounting-UPDATE пакетов), однако с архитектурной точки зрения для SE100 данное значение является минимальным и не рекомендуется к использованию, поэтому требуется увеличить значение данного атрибута путем добавления в таблицу agent_options конфигурационной директивы interim_update_time=600:

insert into agent_options set id=:sysid, name='interim_update_time', value='600';

где :sysid = id агента RADIUS.

Приводим значение атрибута Mac-Addr к унифицированному в LANBilling формату, для этого в таблицу agent_options добавляем конфигурационную директиву macregex="/(..)-(..)-(..)-(..)-(..)-(..)/\\1\\2\\3\\4\\5\\6/i":

insert into agent_options set id=:sysid, name='macregex', value='/(..)-(..)-(..)-(..)-(..)-(..)/\\1\\2\\3\\4\\5\\6/i';

где :sysid = id агента RADIUS.


4. Настройка RADIUS-атрибутов

Для корректного взаимодействия LANBilling и SE100 требуется проверить наличие некоторых VSA в словаре RADIUS-агента. Для этого необходимо зайти через web-интерфейс в меню «Объекты» - «Агенты» - «Словарь RADIUS-атрибутов» и добавить перечисленные ниже VSA в словарь, если обнаружится их отсутствие (в последней ревизии сборки Lanbilling 2.0-base-006 данные атрибуты уже присутствуют с словаре):

Название Номер Вендор Тип
Redback-Agent-Remote-Id 96 2352 octet
Redback-Agent-Circuit-Id 97 2352 octet
IP-Interface-Name 104 2352 string
DHCP-Max-Leases 3 2352 int
Assigned-IP-Address 132 2352 ipaddr
Context-Name 4 2352 string
Qos-Policing-Profile-Name 87 2352 string
Qos-Metering-Profile-Name 88 2352 string
Dynamic-QoS-Param 192 2352 string
NAT-Policy-Name 105 2352 string
Forward-Policy 92 2352 string
HTTP-Redirect-Profile-Name 107 2352 string

Рассматриваемый нами сценарий требует наличия в ответе от RADIUS-агента ряда архитектурно обязательных для SE100 атрибутов, которые необходимо добавить с соответст