Для реализации BRAS в данном разделе приведен пример создания двух тарифных планов (policing):
Доступ к Белому списку ресурсов и переадресация HTTP-запросов пользователя на Captive Portal подключается через 5 или 16 услугу. Ниже приведен пример для 5 услуги.
Варианты использования 5 услуги my_white_list:
VasExperts-Policing-Profile = "blocked" VasExperts-Service-Profile = "5:my_white_list"
Для разметки приоритетов используем опцию Назначение приоритетов в зависимости от протокола.
1. Создаем файл protocols.txt c описанием групп протоколов, которые мы хотим выделить из общего трафика, и назначенных им приоритетов (классов):
dns cs0 ICMP cs0 http cs0 https cs0 QUIC cs1 default cs2 bittorrent cs7
где
2. Конвертируем его в формат dscp, который понимает fastDPI
cat protocols.txt|lst2dscp /etc/dpi/protocols.dscp
3. Применяем настройки
service fastdpi reload
Для организации абонентской полосы согласно тарифному плану используем опцию Распределение канала доступа между абонентами.
1. Для каждого тарифного плана абонента в биллинге создаем файл конфигурации, с описанием его настроек для DPI.
Пример описания для тарифа 10mbit, название в биллинге "rate_10M"
Создаем файл rate_10M.cfg
htb_inbound_root=rate 10mbit htb_inbound_class0=rate 4mbit ceil 10mbit htb_inbound_class1=rate 3mbit 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 4mbit ceil 10mbit htb_class1=rate 3mbit 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
Примечания:
2. Создаем тарифный план с именем rate_10M
fdpi_ctrl load profile --policing /path/to/rate_10M.cfg --profile.name rate_10M
3. Чтобы наши настройки для абонентов, которые мы сделаем в дальнейшем, не пропали при перезагрузке DPI подключаем БД UDR
udr=1
4. Применяем настройки через перезапуск fastDPI
service fastdpi restart
1.Создаем описание тарифного плана для абонентов в блокировке blocked.cfg. Разрешаем только трафик cs0, с протоколами согласно списка в п.1.
htb_inbound_root=rate 10mbit htb_inbound_class0=rate 1mbit ceil 10mbit htb_inbound_class1=rate 8bit ceil 8bit htb_inbound_class2=rate 8bit ceil 8bit htb_inbound_class3=rate 8bit ceil 8bit htb_inbound_class4=rate 8bit ceil 8bit htb_inbound_class5=rate 8bit ceil 8bit htb_inbound_class6=rate 8bit ceil 8bit htb_inbound_class7=rate 8bit ceil 8bit htb_root=rate 10mbit htb_class0=rate 1mbit ceil 10mbit htb_class1=rate 8bit ceil 8bit htb_class2=rate 8bit ceil 8bit htb_class3=rate 8bit ceil 8bit htb_class4=rate 8bit ceil 8bit htb_class5=rate 8bit ceil 8bit htb_class6=rate 8bit ceil 8bit htb_class7=rate 8bit ceil 8bit
2. Создаем тарифный план с именем blocked для заблокированного абонента
fdpi_ctrl load profile --policing /path/to/blocked.cfg --profile.name blocked
3. Создаем список сайтов, доступных в режиме Captive Portal. Подробнее в описании опции Белый список.
Создаем файл my_white_url_list.txt с url сайтов платежных систем. Каждая строка файла содержит один url (без префикса http://), рекомендуется включать также и субдомены, например:
online.sberbank.ru *.online.sberbank.ru
Для добавления Социально-значимых ресурсов необходимо скачать архив с VAS Cloud распаковать и добавить содержимое файлов из архива к вашим спискам до конвертации. Содержание архива:
url_list.txt - URL для HTTP запросов cn_list.txt - Common Name для HTTPS запросов sni_list.txt - Server Name Indication для HTTPS запросов ip_list.txt - IP адреса
1. Перечень платежных систем на github
2. Список банков подготовленный нашими партнерами
3. Список социально-значимых ресурсов на VAS Cloud
4. Конвертирование во внутренний формат:
cat my_white_url_list.txt|url2dic my_url_list.bin cat my_white_cn_list.txt|url2dic my_cn_list.bin cat my_white_sni_list.txt|url2dic my_sni_list.bin cat my_white_ip_list.txt|ip2bin my_ip_list.bin
Любой из списков может отсутствовать. Подробнее в описании опции Белый список.
5. Создаем именованный профиль для белого списка
fdpi_ctrl load profile --service 5 --profile.name my_white_list --profile.json '{ "url_list" : "/path/to/my_url_list.bin" , "sni_list" : "/path/to/my_sni_list.bin", "cn_list" : "/path/to/my_cn_list.bin", "ip_list" : "/path/to/my_ip_list.bin", "redirect" : "mysite.ru/block" }'
где
1. Проводим интеграцию с биллингом
Вариант интеграции зависит от того, обладает ли биллинг возможностью управления оборудованием по событиям или нет.
1а. Биллинг умеет управлять оборудованием по событиям: создание абонента, смена тарифного плана, блокировка
В этом случае выбираем тип оборудования с управлением по SSH/RSH4) или с помощью выполнения локальных скриптов и заносим в настройки соответствующих команд (или скриптов) команды подключения (смены) тарифного плана:
fdpi_ctrl load --policing ${rateplan}.cfg --ip ${ip_address} или fdpi_ctrl load --policing ${rateplan}.cfg --login ${login}
где
1б. Биллинг не умеет управлять оборудованием по событиям
Настроим выгрузку данных из биллинга по расписанию в crontab. В файлы с именами имя_тарифного_плана.lst выгружаем из биллинга список абонентов с соответвующими тарифными планамм (список может содежать ip или login) и запускаем загрузку этих данных в dpi
fdpi_ctrl load --policing rate_10M.cfg --file rate_10M.lst fdpi_ctrl load --policing rate_20M.cfg --file rate_20M.lst ... или (для всех сразу) for rateplan in *.cfg; do fdpi_ctrl load --policing "$rateplan" --file "${rateplan%%.*}".lst; done
2. Помещаем абонента в Captive Portal5)
fdpi_ctrl load --policing blocked.cfg --ip ${ip_address} fdpi_ctrl load --service 5 --ip ${ip_address}
3. После оплаты отключаем абоненту Captive Portal и восстанавливаем его тарифный план
fdpi_ctrl load --policing ${rateplan}.cfg --ip ${ip_address} fdpi_ctrl del --service 5 --ip ${ip_address}