Создание HTB, TBF полисера через файл с разметкой [Документация VAS Experts]

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf [2024/09/26 15:29] – внешнее изменение 127.0.0.1dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf [2026/07/02 09:06] (текущий) – [Назначение полисера на IP] atereschenko
Строка 1: Строка 1:
-====== Настройка ======+====== Создание HTB, TBF полисера через файл с разметкой ======
 {{indexmenu_n>2}} {{indexmenu_n>2}}
-<note tip>Установка расписания для тарифных планов: {{youtube>NcFYd_e_8UY?}}</note> +<note tip>Установка расписания для тарифных планов через GUI:\\ \\ 
-Варианты подключения абонентского полисинга: +<html> 
-  - Индивидуальный профиль полисинга: подключается без указания профиля, создается индивидуальный профиль для каждого абонента+      <iframe 
-  - [[dpi:dpi_components:platform:subscriber_management:subsman_profiles|Именованный профиль полисингаподключается с указанием имени профиля]] +        width="720" 
-  - [[dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_json|Профиль полисинга в формате JSON]] +        height="405" 
-<note important>Для BRAS необходимо использовать именованные профили **имя, которых указывается в атрибутах Radius-Accept.**</note> +        src="https://rutube.ru/play/embed/7c6282d89c69468725c8966b226bc915" 
-Включаем работу внутренней базы данных пользователей в **///etc/dpi/fastdpi.conf//**  +        style="border: none;" 
-<code> +        allow="clipboard-write; autoplay" 
-udr=1 +        allowFullScreen 
-</code> +      ></iframe> 
-Для применения изменений необходимо сделать рестарт сервиса: **service fastdpi restart** +</html>     
-===== Индивидуальный профиль полисинга ===== +</note> 
-Для каждой из политик управления полосой создается конфигурационный файл, в котором задаются ограничения на доступную полосу в зависимости от класса полисинга. +В данной статье приведено описание создания HTB и TBF полисеров, приведены примеры использования для разных сценариев. Назначение полисеров на абонентов описано в разделе: [[..:..:dpi_components:platform:subscriber_management:policing_mng|]] 
 +===== Создание полисера HTB ===== 
 +HTB полисер позволет реализовать Иерархический QoS. Ирархия трафика определяется через классы трафика, которые можно определить глобально для всего DPI устройства по протоколу и направлению: [[..:opt_priority|]] или через индивидуальную разметку по протоколам (18 услуга): [[..:opt_shaping:shaping_session|]]. 
 +Полисер описывается через конфигурационный файл, в котором задаются ограничения на доступную полосу в зависимости от класса полисинга. 
  
-Применение настроенных политик по отношению к абонентам осуществляется с помощью утилиты [[dpi:dpi_components:platform:subscriber_management|fdpi_ctrl]]. 
- 
-Формат команды: 
-<code> 
-fdpi_ctrl команда --policing файл_описания_полисинга [список_IP] 
-</code> 
-Подробнее синтаксис команд и способы задания IP адресов описаны в разделе  [[dpi:dpi_components:platform:subscriber_management:subsman_cmd|Команды управления]]\\ 
  
-==== Пример 1: Ограничение торрент ====+==== Пример: Тариф 10Mbps с Ограничением торрент трафика ====
  
 <note tip>Для продвинутых пользователей: Рекомендуем ознакомиться с разделом [[dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf|Управление исходящим трафиком через обратную связь]].</note> <note tip>Для продвинутых пользователей: Рекомендуем ознакомиться с разделом [[dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf|Управление исходящим трафиком через обратную связь]].</note>
  
-Планируем предложить абонентам тарифный план на 10 Mbps, в котором торренты ограничены скоростью 3 Mbps.+Создадим тарифный план с общим ограничением в 10 Mbps, в котором торренты ограничены скоростью 3 Mbps на скачку и загрузку.
  
-Для этого торренты должны быть выделены в отдельный класc, как описано в разделе [[dpi:dpi_options:opt_priority:priority_config|]]. +Для этого сделаем глобальную разметку трафика на DPI платформе, где торренты выделены в отдельный класc трафика, как описано в разделе [[dpi:dpi_options:opt_priority:priority_config|]]. 
 <code> <code>
 default      cs0 default      cs0
-bittorrent   cs1         +bittorrent   cs7         
 </code> </code>
 В данном примере разделим трафик по протоколам всего на 2 класса, где В данном примере разделим трафик по протоколам всего на 2 класса, где
   * cs0 - соответствует DSCP=0 QOS(IPP)=0 Best Effort   * cs0 - соответствует DSCP=0 QOS(IPP)=0 Best Effort
-  * cs1 - соответствует DSCP=QOS(IPP)=Priority+  * cs7 - соответствует DSCP=56 QOS(IPP)=Priority
  
 Создадим файл конфигурации rateplan_1.cfg, в котором для каждого из 8 доступных классов (групп) протоколов задаем ограничение на доступную им полосу. Используем HTB (дисциплина с заимствованием свободной полосы) и для торрентов указываем, что размер полосы ограничен 3mbit, но не меньше чем 1mbit. В отличие от торрентов прочий трафик может занимать всю доступную полосу.  Создадим файл конфигурации rateplan_1.cfg, в котором для каждого из 8 доступных классов (групп) протоколов задаем ограничение на доступную им полосу. Используем HTB (дисциплина с заимствованием свободной полосы) и для торрентов указываем, что размер полосы ограничен 3mbit, но не меньше чем 1mbit. В отличие от торрентов прочий трафик может занимать всю доступную полосу. 
-<note warning>Сумма скорости по классам должна быть меньше, чем root rate.</note>+<note warning>Сумма скорости по классам (classX rate) должна быть меньше, чем root rate.</note>
 <code ini> <code ini>
 htb_inbound_root=rate 10mbit  htb_inbound_root=rate 10mbit 
 htb_inbound_class0=rate 8bit ceil 10mbit htb_inbound_class0=rate 8bit ceil 10mbit
-htb_inbound_class1=rate 1mbit ceil 3mbit +htb_inbound_class1=rate 8bit ceil 10mbit 
 htb_inbound_class2=rate 8bit ceil 10mbit htb_inbound_class2=rate 8bit ceil 10mbit
 htb_inbound_class3=rate 8bit ceil 10mbit htb_inbound_class3=rate 8bit ceil 10mbit
Строка 49: Строка 45:
 htb_inbound_class5=rate 8bit ceil 10mbit htb_inbound_class5=rate 8bit ceil 10mbit
 htb_inbound_class6=rate 8bit ceil 10mbit htb_inbound_class6=rate 8bit ceil 10mbit
-htb_inbound_class7=rate 8bit ceil 10mbit+htb_inbound_class7=rate 1mbit ceil 3mbit 
 htb_root=rate 10mbit  htb_root=rate 10mbit 
 htb_class0=rate 8bit ceil 10mbit htb_class0=rate 8bit ceil 10mbit
-htb_class1=rate 1mbit ceil 3mbit +htb_class1=rate 8bit ceil 10mbit 
 htb_class2=rate 8bit ceil 10mbit htb_class2=rate 8bit ceil 10mbit
 htb_class3=rate 8bit ceil 10mbit htb_class3=rate 8bit ceil 10mbit
Строка 58: Строка 54:
 htb_class5=rate 8bit ceil 10mbit htb_class5=rate 8bit ceil 10mbit
 htb_class6=rate 8bit ceil 10mbit htb_class6=rate 8bit ceil 10mbit
-htb_class7=rate 8bit ceil 10mbit+htb_class7=rate 1mbit ceil 3mbit 
 </code> </code>
-  * htb_inbound_root, htb_root - корневые классы, в которых указан общий размер полосы для входящего и исходящего трафика и в рамках которых проводится перераспределение полосы  +  * htb_inbound_root, htb_root - корневые классы, в которых указан общий размер полосы для входящего и исходящего трафика и в рамках которых проводится перераспределение полосы - заимствование полосы другими классами трафика.  
   * rate - минимальный размер полосы    * rate - минимальный размер полосы 
   * ceil - максимальный размер полосы, который можно заимствовать из корневого класса если полоса свободна    * ceil - максимальный размер полосы, который можно заимствовать из корневого класса если полоса свободна 
-  * class2-7 фактически не будут использоваться, так как у нас в конфигурации определено только 2 класса 0 и +  * class2-7 фактически не будут использоваться, так как у нас в конфигурации определено только 2 класса 0 и 7. Но описать обязаны ВСЕ классы в рамках HTB полисера. При необходимости в будущем можно будет задейтвовать свободные классы через изменение разметки на DPI.
- +
  
-Теперь абонентам с данным тарифом назначаем сконфигурированную политику.\\ +==== Назначение полисера на IP ==== 
-К IP адресам из файла:+<note>Полный набор команд и вариантов описаны в разделе: [[..:..:dpi_components:platform:subscriber_management:policing_mng|]]</note> 
 +Назначение на IP адреса из файла:
 <code> <code>
 fdpi_ctrl load --policing rateplan_1.cfg --file subscribers_with_rateplan_1.txt fdpi_ctrl load --policing rateplan_1.cfg --file subscribers_with_rateplan_1.txt
 </code> </code>
- +Ко всем IP адресам из диапазона по CIDR:
-К абонентам из всего диапазона по CIDR:+
 <code> <code>
 fdpi_ctrl load --policing rateplan_1.cfg --cidr 10.10.10.0/24 fdpi_ctrl load --policing rateplan_1.cfg --cidr 10.10.10.0/24
 </code> </code>
-К абоненту по IP адресу:+К одному IP адресу:
 <code> <code>
 fdpi_ctrl load --policing rateplan_1.cfg --ip 10.10.10.10 fdpi_ctrl load --policing rateplan_1.cfg --ip 10.10.10.10
 </code> </code>
 +
 +<note>[[..:..:dpi_components:platform:subscriber_management:dpi_dynamicip|]].</note>
 К абоненту с созданным Login: К абоненту с созданным Login:
 <code> <code>
 fdpi_ctrl load --policing rateplan_1.cfg --login DEMO fdpi_ctrl load --policing rateplan_1.cfg --login DEMO
 </code> </code>
- +==== Пример 2: Максимальная скорость для пиринга, CDN, Cache серверов ==== 
-==== Пример 2: Максимальная скорость для пиринга ==== +Выделение локального трафика, Cache серверов, CDN, пирингового трафика осущетсвляется по направлению на всю платформу DPI: [[..:opt_priority:priority_config_as|]]. 
-Выделение полосы для некоторых классов (например, содержащих пиринговый трафикможно вывести из HTB иерархии, если в описании указать для них ключевое слово **static**. В этом случае ограничение для данного класса будет действовать независимо, без привязки к htb_root.  +Часть размеченых классов трафика можно вывести из HTB иерархии, если в описании указать для них ключевое слово **static**. В этом случае ограничение для данного класса трафика будет действовать независимо, без привязки к root rate.  
-Например, в примере выше зададим отдельное ограничение в 100 Мбит/для класса 6+HTB полисер с независимой скоростью 100 Mbps для cs6
 <code ini> <code ini>
 htb_inbound_root=rate 10mbit  htb_inbound_root=rate 10mbit 
Строка 109: Строка 105:
 htb_class7=rate 8bit ceil 10mbit htb_class7=rate 8bit ceil 10mbit
 </code> </code>
- 
-==== Пример 3: Назначение полисинга для мультипользователя ==== 
- 
-Назначим тарифный план из примера 1 абоненту с несколькими IP  
- 
- 
-Закрепляем за корпоративным абонентом все его IP 
-<code> 
-fdpi_ctrl load --bind_multi --user OOO_PizzaJohnes:192.168.0.1-192.168.0.5,192.168.1.10-192.168.1.25 
-</code> 
-Списком IP абонента можно управлять [[dpi:dpi_components:platform:subscriber_management:dpi_ipmulti|динамически]] (т.е. добавлять новые или удалять IP) 
- 
-Назначаем ему ограничение полосы в соответствии с тарифным планом 
-<code> 
-fdpi_ctrl load --policing rateplan_1.cfg --login OOO_PizzaJohnes 
-</code>