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

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

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


Рассмотрим сценарий применения АСР LANBilling совместно с программным продуктом СКАТ DPI. Начиная с версии 7.2, система СКАТ DPI поддерживает работу в качестве PPPoE сервера.

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

lanbilling

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


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

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


2. DPI в качестве PPPoE сервера

В данном случае СКАТ совмещает в себе функции PPPoE-сервера и DPI-системы, что позволяет не просто ограничивать скоростные параметры абонентских сессий, но и создавать гибкие политики полисинга различных классов трафика. При этом управление профилями услуг происходит со стороны АСР. Более подробно ознакомиться с функционалом системы можно на странице.

При такой схеме работы задача выдачи IP-адресов для абонентских сессий ложится на сторону АСР. В зависимости от потребностей оператора связи может быть организована как статическая привязка 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-адресов на сессии абонентов, находящихся в заблокированном состоянии.

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

lanbilling

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

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

lanbilling

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


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

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

Название Номер Вендор Тип Функция
VasExperts-Service-Profile 1 43823 string Имя профиля полисинга для пользователя
VasExperts-Policing-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)

Механизм CoA в АСР реализован внутри RADIUS-агента начиная со сборки 2.0.21, для его включения необходимо внести изменения в таблицу agent_options:

insert into agent_options set id=:sysid, name='radius-enable-coa', value='1';

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

Сообщения CoA отправляются на IP-адрес и UDP-порт, которые указаны для свойствах данного сервера доступа в настройках агента. В качестве идентификаторов абонента будут использованы атриуты User-Name, Framed-IP-Address, Acct-Session-Id. Для сброса сессии используется стандартное сообщение Disconnect-Request.


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

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


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

Необходимо активировать и настроить функционал BRAS. Для этого произвести следующие настройки конфигурационного файла fastdpi.conf:

«udr» - активация встроенной БД, предназначенной для постоянного хранения данных об услугах и настройках полисинга для абонентов оператора.
«bras_enable» - общий флаг разрешения BRAS.
«bras_pppoe_enable» - флаг включения PPPoE BRAS.
«bras_arp_ip» - задает IPv4-адрес BRAS’а. Это может быть фейковый IP-адрес, не связанный ни с каким сетевым интерфейсом. Главное требование – этот IP-адрес должен быть уникальным, никакому пользователю он не должен быть сопоставлен.
«bras_arp_mac» - MAC-адрес BRAS’а, формат XX:XX:XX:XX:XX:XX. Этот MAC-адрес должен быть уникальным во всей локальной сети. Во избежание случайного дублирования с MAC-адресом оборудования одного из клиентов рекомендуем выбрать реальный MAC-адрес одной из dna-карт.
«bras_pppoe_session» - максимальное число PPPoE-сессий. Рекомендуемое значение - в 1.5 - 2 раза больше числа PPPoE-абонентов.
«bras_ppp_auth_list» - список разрешенных протоколов авторизации. PAP=1, CHAP-MD5=2, MS-CHAPv2=3.
«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_pppoe_enable=1
bras_arp_ip=172.10.20.1
bras_arp_mac=a0:00:b1:01:4e:cc
bras_pppoe_session=10000
bras_ppp_auth_list=2,3
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

Доступны так же тонкие настройки работы PPPoE, подробнее о них в документации СКАТ.

Настроить 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 вендора.