В этой статье описан сценарий работы АСР LANBilling совместно со СКАТ DPI. Настройки СКАТ DPI подробно описаны в Wiki вендора.
СКАТ DPI поддерживает работу в качестве PPPoE-сервера начиная с версии 7.2. На схеме изображена рассматриваемая сеть.
1. Базовая настройка
Установите АСР LANBilling по инструкции. Общая архитектура системы описана в руководстве по эксплуатации.
2. DPI в качестве PPPoE-сервера
В данном случае СКАТ совмещает в себе функции PPPoE-сервера и DPI-системы, что позволяет не просто ограничивать скоростные параметры абонентских сессий, но и создавать гибкие политики полисинга различных классов трафика. При этом управление профилями услуг происходит со стороны АСР LANBilling. Более подробно ознакомиться с функционалом системы можно на странице.
При такой схеме работы задача выдачи IP-адресов для абонентских сессий ложится на сторону АСР LANBilling. В зависимости от потребностей оператора связи может быть организована как статическая привязка IP-адресов к клиентским учетным записям, так и динамическая выдача адресов из заранее определенных сегментов.
За счёт использования DPI системы нет необходимости разделять IP-сегменты на основные и гостевые. Для абонентов, чьи учётные записи находятся в состоянии блокировки, достаточно при авторизации сессии передать специальный флаг. Для данного абонента будут применены политики ограничения доступа в интернет, но при этом он сохранит свой основной IP-адрес. Также может быть создан белый список ресурсов, к которым разрешён доступ в состоянии блокировки, при попытке выхода за пределы данного списка произойдет редирект на страницу Captive Portal оператора связи.
3. Настройка RADIUS-агента
Настройте основную конфигурацию RADIUS-агента (LBarcd)
Важными являются параметры.
- «Интервал между Interim-UPDATE запросами аккаунтинга» — интервал в секундах между Accounting-Update пакетами.
- «Тайм-аут зависшей сессии (сек)» — интервал в секундах между временем обработки последнего Accounting-Update пакета и текущим временем, при превышении которого сессия считается устаревшей. Минимально допустимым значением считается удвоенный интервал Interim-UPDATE. Максимально допустимым - 86400 сек., т.е. 1 день.
- «Запускать handler для зависших сессий» — необходим для запуска внешнего скрипта с целью принудительного разрыва устаревших сессий или отправки Disconnect-Request через внутренний механизм CoA.
- «Запускать handler при изменении текущей скорости» — необходим для запуска внешнего скрипта с целью изменения скорости доступа или отправки, через внутренний механизм CoA, скоростных атрибутов для изменения текущей скоростибез разрыва сессии.
- «Выделять адреса динамически из пула» — регулирует алгоритм выдачи IP-адресов на сессии абонентов. В случае отключения данной настройки в свойствах учётных записей абонентов должны быть вручную указаны IP-адреса.
- «Не использовать гостевые IP-сети при блокировке» — отключает использование сегментов с флагом "Гость" для выдачиIP-адресов на сессии абонентов, находящихся в заблокированном состоянии.
Добавьте СКАТ DPI в качестве сервера доступа (NAS)
Для этого в карточке RADIUS-агента на вкладке «Основные настройки» добавьте сервер доступа. Укажите IP-адрес и RADIUS-secret, которые будут использоваться при общении NAS и биллинга. Методом аутентификации будет выступать login.
Создайте IP-подсети PPPoE-клиентов в АСР LANBilling.
- Перейдите в раздел «Управление сетями» в настройках RADIUS-агента.
- Добавьте подсеть, указав адрес самой сети, маску и шлюз.
4. Дополнительные RADIUS атрибуты
Для корректного взаимодействия со СКАТ DPI добавьте VSA-атрибуты в словарь RADIUS-агента. Для этого в административном интерфейсе АСР LANBilling перейдите в раздел «Объекты» — «Агенты» — «Словарь 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-атрибуты» административного интерфейса АСР LANBilling и добавьте новые пользовательские атрибуты для всех видов блокировок со значениями:
- «VasExperts-Restrict-User» — указывает на пребывание абонента в заблокированном состоянии на стороне АСР. Для такого абонента на DPI будут работать правила captive-portal и ограниченный доступ к интернет-ресурсам. Атрибут со значением «1» должен быть создан для RADIUS Code = Access-Reject и привязан к агенту.
- «VasExperts-Enable-Service» — указывает на необходимость передачи RADIUS-аккаунтинга по сессии абонента. Атрибут
со значением «9:on» должен быть создан как для RADIUS Code = Access-Accept, так и для RADIUS Code = Access-Reject и
привязан к агенту.
- «VasExperts-Service-Profile» — указывает на имя профиля для конкретного идентификатора услуги fastDPI. В качестве примера, создадим атрибут со значением «11:my_nat_profile», который будет указывать на профиль с именем «my_nat_profile» для услуги №11 (CGNAT).
- «VasExperts-Policing-Profile» — указывает на имя предварительно созданного на СКАТ профиля полисинга трафика абонента. В качестве примера, создадим атрибут со значением «rate_10M», который будет указывать на ограничение скорости абонента до 10Мбит/с. Атрибут привязывается к значению скорости или непосредственно к тарифному плану.
6. Настройка CoA (Change of Authorization)
Механизм CoA в АСР LANBilling реализован внутри RADIUS-агента начиная со сборки 2.0.21, и регулируется флагом в особых настройках агента.
Сообщения CoA отправляются на IP-адрес и UDP-порт, которые указаны в свойствах данного сервера доступа в настройках агента. В качестве идентификаторов абонента будут использованы атрибуты «User-Name», «Framed-IP-Address», «Acct-Session-Id». Для сброса сессии используется стандартное сообщение Disconnect-Request.
7. Завершение настройки АСР LANBilling
- Создайте учётную запись.
- Назначьте на неё тарифный план.
- Назначьте учётной записи статические 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 — флаг включения аккаунтинга пользователей.
- netflow — статистика по биллингу абонента.
- netflow_timeout — тайм-аут отправки статистики.
Пример настройки.
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 netflow=4 netflow_timeout=60
Доступны также тонкие настройки работы PPPoE, подробнее о них в документации СКАТ.
Настройте fastpcrf для работы с RADIUS-сервером АСР. Для этого отредактируйте конфигурационный файл fastpcrf.conf.
- fdpi_server_list — список серверов fastDPI, которые обслуживает данный fastpcrf.
- 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-сервера для приема запросов аккаунтинга.
Можно указать до 16 различных серверов. Связь с fastDPI - через управляющий порт 29000.
Пример:
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 разбита на услуги, каждая из которых имеет свой номер:
- бонусная программа;
- реклама;
- блокировка рекламы;
- чёрный список;
- белый список;
- уведомление;
- кэширование;
- пройдена ddos защита;
- сбор netflow статистики для биллинга;
- услуга защиты от DDOS;
- CGNAT.
Подробнее услуги описаны в документации СКАТ DPI.
Для работы с услугами нужно сконфигурировать профили с помощью встроенного синтаксиса.
Белый список
- Создайте файл «my_white_list.txt» с url сайтов платёжных систем.
Каждая строка файла содержит один url (без префикса http://), рекомендуется включать также и субдомены, например:
online.sberbank.ru *.online.sberbank.ru
Перечень платёжных систем доступен по ссылке в wiki.
- Сконвертируйте файл во внутренний формат:
cat my_white_list.txt|url2dic my_url_list.bin cat my_white_list.txt|url2dic my_cn_list.bin cat my_white_list.txt|url2dic my_sni_list.bin
Пример создания профиля белого списка для абонента.
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»
- Создайте профиль услуги «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.