В этой статье описан сценарий работы АСР LANBilling совместно со СКАТ DPI. Настройки СКАТ DPI подробно описаны в Wiki вендора.
СКАТ будет выступать в качестве L2-BRAS при предоставлении абоненту доступа в интернет. На схеме изображена рассматриваемая сеть.
1. Базовая настройка
Установите АСР LANBilling по инструкции. Общая архитектура системы описана в руководстве по эксплуатации.
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)
Важными являются параметры.
- «Интервал между Interim-UPDATE запросами аккаунтинга» — интервал в секундах между Accounting-Update пакетами.
- «Тайм-аут зависшей сессии (сек)» — интервал в секундах между временем обработки последнего Accounting-Update пакета и текущим временем, при превышении которого сессия считается устаревшей. Минимально допустимым значением считается удвоенный интервал Interim-UPDATE. Максимально допустимым — 86400 сек., т.е. 1 день.
- «Запускать handler для зависших сессий» — необходим для запуска внешнего скрипта с целью принудительного разрыва устаревших сессий или отправки Disconnect-Request через внутренний механизм CoA.
- «Запускать handler при изменении текущей скорости» — необходим для запуска внешнего скрипта с целью изменения скорости доступа или отправки, через внутренний механизм CoA, скоростных атрибутов для изменения текущей скорости без разрыва сессии.
- «Не использовать гостевые IP-сети при блокировке» — отключает использование сегментов с флагом «Гость» для выдачи IP-адресов на сессии абонентов, находящихся в заблокированном состоянии.
Настройте параметры для DHCP-сервера
- «Включить DHCP-сервер» — активирует использование информации об учётных записях агента RADIUS, для выдачи IP-адресов через DHCP-сервер (модуль LBinet).
- «Server Identifier» — IP-адрес DHCP-сервера. Будет использован клиентами для подтверждения и продления IP-адреса.
Добавьте СКАТ DPI в качестве сервера доступа (NAS)
Для этого в карточке RADIUS-агента на вкладке «Основные настройки» добавьте сервер доступа. Укажите IP-адрес и RADIUS-secret, которые будут использоваться при общении NAS и биллинга. Методом аутентификации будет выступать IP.
Добавьте используемые домовые коммутаторы в базу Inventory
Это нужно для выдачи IP-адреса на основе опции 82Для этого выполните несколько действий.
- Создайте группу устройств, к ним будет производиться привязка IP-сегментов для выдачи адресов абонентам.
- Создайте устройство, здесь важно правильное заполнение поля «Agent-Remote-Id».
- Добавьте к устройству набор портов, на которые будут подключаться абоненты.
- Включите устройство в ранее созданную группу.
Создайте IP-подсети IPoE-клиентов в АСР LANBilling
- Перейдите в раздел «Управление сетями» в настройках RADIUS-агента.
- Добавьте подсеть, указав адрес самой сети, маску, шлюз и группу устройств Inventory.
Добавьте в базу данных опцию, запрещающую выдачу IP-сегментов
В параметре :sysid передайте идентификатор RADIUS-агента.
insert into agent_options set id=:sysid, name='lease-segment', value='1';
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 — указывает на то, что абонент заблокирован на стороне АСР LANBilling. Для такого абонента на 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)
Механизмы управления сессиями могут быть реализованы через внешний скрипт управления. Путь к скрипту handler указывается в конфигурационном файле RADIUS-агента. Например, handler = /usr/local/billing/handler.sh. Текст handler можно написать на любом скриптовом языке программирования, рабочий пример на shell можно скачать по ссылке.
Для работы приведенного handler-скрипта нужно установить пакет «freeradius-utils».
7. Завершение настройки АСР LANBilling
- Создайте учётную запись.
- Назначьте на неё тарифный план.
- Привяжите порт устройства к учётной записи.
- Назначьте учётной записи статические 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-сервера.
Если значение arp_proxy=1, то fastDPI будет откликаться на ARP-запрос IP-адреса DHCP-сервера, при этом в качестве MAC-адреса будет возвращаться MAC-адрес fastDPI, задаваемый параметром bras_arp_mac.
Каждый DHCP-сервер нужно описать отдельным параметром bras_dhcp_server.
- 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_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 netflow=4 netflow_timeout=60 bras_dhcp_server=10.20.30.40%eth1:68;reply_port=67
Доступны так же тонкие настройки конфигурации СКАТ DHCP Relay в документации СКАТ.
Настройте fastpcrf для работы с RADIUS-сервером АСР LANBilling. Для этого отредактируйте конфигурационный файл 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-сервера для приёма запросов аккаунтинга.
- acct_auth_sync — отправка Acct-Stop перед запросом на авторизацию, если для данного абонента уже существует сессия.
Пример:
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 acct_auth_sync=1
Функциональность СКАТ 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.