Интеграция АСР LANBilling и СКАТ DPI (IPOE)

Интеграция АСР LANBilling и СКАТ DPI (IPOE)

1. Базовая настройка АСР
2. Выдача IP-адресов клиентам
3. Настройка RADIUS-агента
4. Дополнительные RADIUS атрибуты
5. Настройка RADIUS-атрибутов
6. Настройка CoA (Change of Authorization)
7. Завершение настройки АСР
8. Настройка СКАТ DPI
9. Заключение


Рассмотрим сценарий применения АСР LANBilling совместно с программным продуктом СКАТ DPI. В данном случае СКАТ будет выступать в качестве L2-BRAS при предоставлении абоненту доступа в интернет.

Схема рассматриваемой сети представлена на Рис.1.

lanbilling

Рис. 1 (Схема сети)


1. Базовая настройка АСР

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


2. DPI в качестве L2-BRAS маршрутизатора

Поскольку подключение DPI предполагает прохождение всего абонентского трафика через данное оборудование, то становится логичным совмещение функции DPI и маршрутизатора доступа, то есть BRAS. Компания VAS Experts при создании своего программного продукта пошла именно по этому пути, дав возможность использовать СКАТ DPI как L2 или L3 BRAS. При этом это аутентификация и сбор статистической информации может быть выполнен внешней системой, в данном случае, это RADIUS агент АСР LANBilling. Более подробно ознакомиться с функционалом системы можно на странице.

Мы рассмотрим одну из популярных схем выдачи IP адресов, использование опции 82 протокола DHCP для определения точки подключения абонента. При этом будет организована статическая привязка IP-адресов к клиентским учетным записям.

За счет использования DPI системы нет необходимости разделять IP сегменты на основные и гостевые. Для абонентов, чьи учетные записи находятся в состоянии блокировки, достаточно при авторизации сессии передать специальный флаг. Таким образом, для данного абонента будут применены политики ограничения доступа в интернет, но при этом он сохранит свой основной IP адрес. Более того, может быть создан белый список ресурсов, к которым разрешен доступ в состоянии блокировки, при попытке выхода за пределы данного списка произойдет редирект на страницу Captive Portal оператора связи.


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

Приступим к настройке RADIUS-агента АСР (LBarcd). Основная конфигурация показана на Рис. 2.

lanbilling

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

Обратим внимание на параметры:

«Интервал между Interim-UPDATE запросами аккаунтинга» - интервал в секундах между Accounting-Update пакетами.

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

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

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

«Выделять адреса динамически из пула» - регулирует алгоритм выдачи IP-адресов на сессии абонентов. В случае отключения данной настройки в свойствах учетных записей абонентов должны быть вручную указаны IP-адреса.

«Не использовать гостевые IP-сети при блокировке» - отключает использование сегментов с флагом "Гость" для выдачи IP-адресов на сессии абонентов, находящихся в заблокированном состоянии.

Необходимо так же настроить ряд параметров для модуля DHCP сервера АСР. Наиболее важные из них:

«Включить DHCP-сервер» - выбор значения "LBinet" активирует использование информации об учетных записях агента RADIUS для выдачи IP адресов через DHCP сервер биллинга (модуль LBinet).

«Server Identifier» - IP адрес DHCP сервера. Будет использован клиентами для подтверждения и продления IP адреса.

Для настройки RADIUS взаимодействия необходимо добавить СКАТ DPI в качестве сервера доступа (NAS). Для этого в форме редактирования настроек RADIUS-агента открыть раздел «Серверы доступа» и добавить новый сервер доступа. Требуется указать IP-адрес и RADIUS-secret которые будут использоваться при общении NAS и биллинга. Методом аутентификации будет выступать IP (Рис.3).

lanbilling

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

Для выдачи IP адреса на основе опции 82 необходимо добавить используемые домовые коммутаторы в базу Inventory АСР. Первым шагом служит создание групп устройств, к ним будет производиться привязка IP сегментов для выдачи адресов абонентам. В создании самого устройства важнейшим является правильное заполнение поля «Agent-Remote-Id»

lanbilling

Рис. 4 (Создание устройства Inventory)

Так же, необходимо добавить к устройству набор портов, на которые будут подключаться абоненты.

lanbilling

Рис. 5 (Управление портами устройства)

И включение устройства в ранее созданную группу.

lanbilling

Рис. 6 (Управление группами устройства)

Следующим шагом будет создание IP-подсети IPoE-клиентов в АСР. Для этого откроем раздел «Управление сетями» в настройках RADIS агента и добавим желаемую подсеть, указав адрес самой сети, маску и шлюз (Рис.4). А так же, указать группу устройств Inventory.

lanbilling

Рис. 7 (Управление сетями)

Заключительным этапом является добавление опции, запрещающей выдачу IP сегментов в базу данных АСР.

insert into agent_options set id=:sysid, name='lease-segment', value='1';

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


4. Дополнительные RADIUS атрибуты

Для корректного взаимодействия со СКАТ DPI необходимо добавить некоторые VSA-атрибуты в словарь RADIUS-агента. Для этого необходимо зайти через web-интерфейс в меню «Объекты» - «Агенты» - «Словарь RADIUS-атрибутов» и добавить перечисленные ниже VSA в словарь.

Название Номер Вендор Тип Функция
VasExperts-Policing-Profile 1 43823 string Имя профиля полисинга для пользователя
VasExperts-Service-Profile 2 43823 string Имя профиля для конкретной услуги fastDPI
VasExperts-Enable-Service 3 43823 string Включение/отключение конкретной услуги, для которой не требуется профиль
VasExperts-Restrict-User 7 43823 int Признак блокировки абонента

Мы приводим лишь минимально необходимый список VSA. Полный список атрибутов можно найти в словаре dictionary.vasexperts из дистрибутива СКАТ DPI.


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

В меню «Свойства» - «RADIUS-атрибуты» web-интерфейса АСР необходимо добавить новые пользовательские атрибуты со следующими значениями:

«VasExperts-Restrict-User» - указывает на пребывание абонента в заблокированном состоянии на строне АСР. Для такого абонента на DPI будут работать правила captive-portal и ограниченный доступ к интернет ресурсам. Атрибут со значением «1» должен быть создан для RADIUS Code = Access-Reject и привязан к Агенту (Рис.5).

lanbilling

Рис. 5 (Создание атрибута VasExperts-Restrict-User)

«VasExperts-Enable-Service» - указывает на необходимость передачи RADIUS-аккаунтинга по сессии абонента. Атрибут со значением «9:on» должен быть создан как для RADIUS Code = Access-Accept, так и для RADIUS Code = Access-Reject и привязан к Агенту (Рис.6).

lanbilling

Рис. 6 (Пример атрибута VasExperts-Enable-Service)

«VasExperts-Service-Profile» - указывает на имя профиля для конкретного идентификатора услуги fastDPI. В качестве примера, создадим атрибут со значением «11:my_nat_profile», который будет указывать на профиль с именем «my_nat_profile» для услуги №11 (CGNAT)(Рис.7).

lanbilling

Рис. 7 (Пример атрибута VasExperts-Service-Profile)

«VasExperts-Policing-Profile» - указывает на имя предварительно созданного на СКАТ профиля полисинга трафика абонента. В качестве примера, создадим атрибут со значением «rate_10M», который будет указывать на ограничение скорости абонента до 10Мбит/с(Рис.8). Атрибут привязывается к значению скорости или непосредственно к тарифному плану.

lanbilling

Рис. 8 (Пример атрибута VasExperts-Policing-Profile)


6. Настройка CoA (Change of Authorization)

Механизмы управления сессиями могут быть реализованы через внешний скрипт управления. Путь к скрипту handler указывается в конфигурационном файле RADIUS-агента (например, handler = /usr/local/billing/handler.sh). Текст handler можно написать на любом скриптовом языке программирования, рабочий пример на shell можно скачать по ссылке.


7. Завершение настройки АСР

Для завершения настройки АСР требуется создать учетную запись, назначив на неё тарифный план. После этого, требудется в форме редактирования учетной записи выполнить привязку порта устройства Inventory и назначение статического IP адреса. Так же, для успешной авторизации на учетной записи должно быть запланировано отключение блокировки. О том, как это сделать, можно прочесть в стандартной документации.


8. Настройка СКАТ DPI

Необходимо активировать и настроить функционал СКАТ BRAS в режиме DHCP Relay. В этом режиме СКАТ BRAS выступает в качестве DHCP relay агента: предполагается, что DHCP-сервера вынесены в отдельный сегмент сети, напрямую недоступный абонентам, а СКАТ BRAS выступает в роли агента передачи (relay agent) DHCP-запросов от оборудования пользователей к DHCP-серверам и обратного потока – ответов DHCP-серверов к оборудованию пользователей.

Чтобы активировать режим DHCP Relay в СКАТ, следует произвести следующие настройки конфигурационного файла fastdpi.conf:

«udr» - активация встроенной БД, предназначенной для постоянного хранения данных об услугах и настройках полисинга для абонентов оператора.
«bras_enable» - общий флаг разрешения BRAS.
«bras_arp_ip» - задает IPv4-адрес BRAS’а. Это может быть фейковый IP-адрес, не связанный ни с каким сетевым интерфейсом. Главное требование – этот IP-адрес должен быть уникальным, никакому пользователю он не должен быть сопоставлен.
«bras_arp_mac» - MAC-адрес BRAS’а, формат XX:XX:XX:XX:XX:XX. Этот MAC-адрес должен быть уникальным во всей локальной сети. Во избежание случайного дублирования с MAC-адресом оборудования одного из клиентов рекомендуем выбрать реальный MAC-адрес одной из dna-карт.
«bras_dhcp_server» - задает адрес DHCP-сервера в формате host%dev:port{;name=val}* , где:

  • host – IP-адрес DHCP-сервера;
  • dev – имя сетевого интерфейса, с которого производится связь c DHCP-сервером;
  • port – порт, значение по умолчанию: 68;
  • name=val – дополнительные параметры:
    • reply_port – порт, на котором ждем ответы DHCP-сервера. Значение по умолчанию 68.
    • arp_proxy – флаг реагирования на ARP-запросы IP-адреса DHCP-сервера. Если значение данного флага равно 1, то fastDPI будет откликаться на ARP-запрос IP-адреса DHCP-сервера, при этом в качестве MAC-адреса будет возвращаться MAC-адрес fastDPI, задаваемый параметром bras_arp_mac.

Поддерживается несколько DHCP-серверов, каждый DHCP-сервер описывается отдельным параметром bras_dhcp_server.


«bras_terminate_l2» - задает включение (1) или отключение (0) L2-терминации. При включенном режиме L2-терминации должны быть заданы параметры бордера/шлюза за fastDPI.
«bras_gateway_ip» - IP-адрес шлюза.
«bras_gateway_mac» - MAC-адерс шлюза.
«enable_auth» - флаг включения авторизации локальных пользователей.
«enable_acct» - флаг включения аккаунтинга пользователей.

Пример настройки:

udr=1
bras_enable=1
bras_arp_ip=172.10.20.1
bras_arp_mac=a0:00:b1:01:4e:cc
bras_terminate_l2=1
bras_gateway_ip=10.30.45.1
bras_gateway_mac=a0:00:c5:08:ee:f4
enable_auth=1
enable_acct=1
bras_dhcp_server=10.20.30.40%eth1:68;reply_port=67

Доступны так же тонкие настройки конфигурации СКАТ DHCP Relay в документации СКАТ.

Настроить fastpcrf для работы с RADIUS-сервером АСР. Для этого в файле fastpcrf.conf указать:

«fdpi_server_list» - список серверов fastDPI, которые обслуживает данный fastpcrf. Можно указать до 16 различных серверов. Связь с fastDPI - через управляющий порт 29000.
«radius_server» - задает один RADIUS-сервер. Формат: secret@ip%dev:auth_port;acct_port=acct_port;acct_secret=secret, где secret - RADIUS-секрет, ip - IP-адрес RADIUS-сервера, dev - имя локального интерфейса, на котором устанавливать соединение, auth_port - порт RADIUS-сервера для приема запросов авторизации, acct_port - порт RADIUS-сервера для приема запросов аккаунтинга.

fdpi_server_list=127.0.0.1%lo:29000;192.168.20.10%eth2:29000
radius_server=vasexperts@192.168.10.1%eth1:1812;acct_port=1813;acct_secret=vasexperts

Функциональность СКАТ DPI разбита на услуги, каждая из которых имеет свой номер:
1 - бонусная программа
2 - реклама
3 - блокировка рекламы
4 - черный список
5 - белый список
6 - уведомление
7 - кэширование
8 - пройдена ddos защита
9 - сбор netflow статистики для биллинга
10 - услуга защиты от DDOS
11 – CGNAT
Подробнее по услугам в разделе документации.

Для работы с услугами необходимо сконфигурировать соответствующие профили используя встроенный синтаксис.

Пример создания профиля белого списка для абонента

fdpi_ctrl load profile --service 5  --profile.name test_white --profile.json '{ "url_list" : "http://mysite.ru/myfile.bin" , "sni_list" : "http://mysite.ru/myfilesni.bin", "ip_list" : "http://mysite.ru/myfileip.bin", "cn_list" : "http://mysite.ru/myfilecn.bin", "redirect" : "mysite.ru/block" }'
где в формате json задаются следующие настройки профиля:
«redirect» - страница переадресации;
«url_list» - белый список URL;
«sni_list» - белый список SNI;
«ip_list» - белый список IP:PORT;
«cn_list» - белый список Common Name.

Для работы функционала ограничения скорости необходимо подготовить конфигурационный файл, в котором задаются ограничения на доступную полосу в зависимости от класса протоколов.
Для примера создадим файл конфигурации 10M.cfg, описывающий ограничение скорости до 10Мбит/с.

htb_inbound_root=rate 10mbit 
htb_inbound_class0=rate 8bit ceil 10mbit
htb_inbound_class1=rate 8bit ceil 10mbit 
htb_inbound_class2=rate 8bit ceil 10mbit
htb_inbound_class3=rate 8bit ceil 10mbit
htb_inbound_class4=rate 8bit ceil 10mbit
htb_inbound_class5=rate 8bit ceil 10mbit
htb_inbound_class6=rate 8bit ceil 10mbit
htb_inbound_class7=rate 8bit ceil 10mbit
htb_root=rate 10mbit 
htb_class0=rate 8bit ceil 10mbit
htb_class1=rate 8bit ceil 10mbit
htb_class2=rate 8bit ceil 10mbit
htb_class3=rate 8bit ceil 10mbit
htb_class4=rate 8bit ceil 10mbit
htb_class5=rate 8bit ceil 10mbit
htb_class6=rate 8bit ceil 10mbit
htb_class7=rate 8bit ceil 10mbit
После чего загрузим данный конфиг в профиль.
fdpi_ctrl load profile --policing 10M.cfg --profile.name rate_10M
Создаем профиль услуги CGNAT, в котором определяем параметры пула IP-адресов.
fdpi_ctrl load profile --service 11  --profile.name my_nat_profile --profile.json '{ "nat_ip_pool" : "1.2.3.0/24", "nat_tcp_max_sessions" : 2000, "nat_udp_max_sessions" : 2000 }'

Где:
«nat_ip_pool» - диапазон внешних IP адресов в формате CIDR;
«nat_tcp_max_sessions» - максимальное количество tcp сессий, которые может создать абонент;
«nat_udp_max_sessions» - максимальное количество udp сессий, которые может создать абонент.

Другие услуги конфигурируются согласно документации производителя СКАТ DPI.
Перечисленные имена профилей будут использоваться в атрибутах VasExperts-Service-Profile. Для услуг, в которых не требуется передача параметров используется атрибут VasExperts-Enable-Service.

9. Заключение

В статье показан минимальный набор шагов, который необходимо выполнить для настройки данного типа авторизации абонентов. Администраторы сетей могут дополнить приведенные конфигурации, в зависимости от конкретной установки.

Более подробно ознакомиться с настройками СКАТ DPI можно в Wiki вендора.