Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
dpi:dpi_options:use_cases:qs_rateplans:start [2023/10/13 12:40] – ↷ Операцией перемещения обновлены ссылки elena.krasnobryzh | dpi:dpi_options:use_cases:qs_rateplans:start [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Быстрый старт: Тарифный план и Captive Portal (доступ к СЗР) ====== | ||
- | {{indexmenu_n> | ||
- | ====== Введение ====== | ||
- | Для реализации [[playground: | ||
- | * **rate_10M** - базовый тарифный план, который используется после авторизации абонента. | ||
- | * **blocked** - тарифный план, который используется для блокировки абонента и предоставления доступа только по определенным протоколам. Его имя необходимо передавать в Radius Access-Reject. | ||
- | * При блокировке совместно с тарифным планом **blocked** абоненту назначается (Услуга 5) **my_white_list** - Белый список | ||
- | <note important> | ||
- | ===== Распределение трафика по классам для тарифного плана ===== | ||
- | Для разметки приоритетов используем опцию [[dpi: | ||
- | |||
- | 1. Создаем файл **protocols.txt** c описанием групп протоколов, | ||
- | < | ||
- | dns cs0 | ||
- | ICMP cs0 | ||
- | http cs0 | ||
- | https cs0 | ||
- | QUIC cs1 | ||
- | default cs2 | ||
- | bittorrent cs7 | ||
- | </ | ||
- | где | ||
- | * cs0 соответствует приоритету 0, class0 соответственно | ||
- | * cs1 - приоритету 1, class1 | ||
- | * cs7 - приоритету 7, низший класс | ||
- | <note important> | ||
- | кроме того в соотвтетвии с ними будет производится приоритезация протоколов в полосе.</ | ||
- | |||
- | 2. Конвертируем его в формат dscp, который понимает fastDPI | ||
- | < | ||
- | cat protocols.txt|lst2dscp / | ||
- | </ | ||
- | |||
- | 3. Применяем настройки | ||
- | < | ||
- | service fastdpi reload | ||
- | </ | ||
- | ===== Создание тарифного плана ===== | ||
- | Для организации абонентской полосы согласно тарифному плану используем опцию [[dpi: | ||
- | \\ | ||
- | 1. Для каждого тарифного плана абонента в биллинге создаем файл конфигурации, | ||
- | <note important> | ||
- | |||
- | Пример описания для тарифа 10mbit, название в биллинге " | ||
- | |||
- | Создаем файл 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 | ||
- | </ | ||
- | Примечания: | ||
- | * htb_class0-1 - имеют гарантированную скорость в 4Мбит/ | ||
- | * htb_class7 - минимальную полосу 8bit, что означает, | ||
- | |||
- | 2. Создаем тарифный план с именем **rate_10M** | ||
- | < | ||
- | fdpi_ctrl load profile --policing / | ||
- | </ | ||
- | |||
- | 3. Чтобы наши настройки для абонентов, | ||
- | < | ||
- | udr=1 | ||
- | </ | ||
- | 4. Применяем настройки через перезапуск fastDPI | ||
- | < | ||
- | service fastdpi restart | ||
- | </ | ||
- | |||
- | ===== Подготовка Captive Portal с доступом к платежным системам и Социально-значимым ресурсам (СЗР) ===== | ||
- | <note important> | ||
- | Для того, чтобы ограничить доступ к остальным ресурсам с использованием различных протоколов, | ||
- | |||
- | 1.Создаем описание тарифного плана для абонентов в блокировке blocked.cfg. | ||
- | Разрешаем только трафик [[dpi: | ||
- | < | ||
- | 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 / | ||
- | </ | ||
- | |||
- | 3. Создаем список сайтов, | ||
- | |||
- | Создаем файл **my_white_url_list.txt** с url сайтов платежных систем. | ||
- | Каждая строка файла содержит один url (без префикса < | ||
- | < | ||
- | online.sberbank.ru | ||
- | *.online.sberbank.ru | ||
- | </ | ||
- | |||
- | Для добавления **Социально-значимых ресурсов** необходимо [[https:// | ||
- | Содержание архива: | ||
- | < | ||
- | url_list.txt - URL для HTTP запросов | ||
- | cn_list.txt - Common Name для HTTPS запросов | ||
- | sni_list.txt - Server Name Indication для HTTPS запросов | ||
- | ip_list.txt - IP адреса | ||
- | </ | ||
- | |||
- | <note tip> | ||
- | Для формирования белого списка рекомендуем использовать готовый список. | ||
- | |||
- | **1. [[https:// | ||
- | |||
- | 2. [[https:// | ||
- | |||
- | 3. [[https:// | ||
- | ** | ||
- | </ | ||
- | |||
- | |||
- | 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 | ||
- | </ | ||
- | Любой из списков может отсутствовать. Подробнее в описании опции [[dpi: | ||
- | <note tip> Чтобы исключить блокировку для HTTPS сайтов | ||
- | нужно подготовить белый список для CN и SNI **с символом ***, | ||
- | сигнализирующего что CN и SNI может быть любой.</ | ||
- | |||
- | 5. Создаем **именованный профиль** для белого списка | ||
- | < | ||
- | fdpi_ctrl load profile --service 5 --profile.name my_white_list --profile.json '{ " | ||
- | </ | ||
- | где | ||
- | * redirect - страница переадресации((Внимание если указываете https сайт, то обязательно требуется данный домен внести в список SNI иначе домен будет заблокирован))((доп. праметры можно дописать (по правилам http) только после ? или &, их надо обязательно указывать в url для белого списка и тут надо подумать за dpi, | ||
- | * url_list: белый список URL | ||
- | * sni_list: белый список SNI | ||
- | * cn_list: белый список Common Name((проверка по ip:port или cname осуществляется если в запросе отсутствуют url или sni)) | ||
- | * ip_list: белый список IP адресов **включающий СЗР** | ||
- | |||
- | |||
- | ===== Интеграция с биллингом без Radius ===== | ||
- | <note important> | ||
- | 1. Проводим интеграцию с биллингом | ||
- | |||
- | Вариант интеграции зависит от того, обладает ли биллинг возможностью управления оборудованием по событиям или нет. | ||
- | |||
- | **1а. Биллинг умеет управлять оборудованием по событиям: | ||
- | |||
- | В этом случае выбираем тип оборудования с управлением по SSH/ | ||
- | < | ||
- | fdpi_ctrl load --policing ${rateplan}.cfg --ip ${ip_address} | ||
- | или | ||
- | fdpi_ctrl load --policing ${rateplan}.cfg --login ${login} | ||
- | </ | ||
- | где | ||
- | * ${rateplan} | ||
- | * ${ip_address} - сюда биллинг подставит ip адрес 192.168.0.1 абонента (для абонентов с фиксированным ip) | ||
- | * ${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 " | ||
- | </ | ||
- | |||
- | 2. Помещаем абонента в Captive Portal((Если событийное управление не поддерживается, | ||
- | < | ||
- | 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} | ||
- | </ | ||