Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
dpi:dpi_options:opt_shaping:shaping_multi [2020/02/05 15:39] – ↷ Страница перемещена из dpi:dpi_options:base_functionality:opt_shaping:shaping_multi в dpi:dpi_options:opt_shaping:shaping_multi lexx26 | dpi:dpi_options:opt_shaping:shaping_multi [2024/12/25 12:37] (текущий) – [Для VLAN] elena.krasnobryzh |
---|
====== Приоритизация нескольких каналов ====== | ====== Полисинг Виртуального канала (vChannel) ====== |
| {{indexmenu_n>3}} |
| |
| <note tip>Подробнее о конфигурации vChannels: {{youtube>yP55RSZom48?}}</note> |
| |
| Когда у оператора есть несколько внешних (аплинков) или внутренних каналов |
| часто возникает потребность контролировать в них "полку" и ограничивать |
| низкоприоритетный трафик независимо друг от друга, |
| так как балансировка трафика обычно неравномерна и каналы часто неравнозначны. |
| |
| <note>С помощью vChannel можно выделить трафик из общего канала на основе **физических портов / VLAN / CIDR**. На vChannel применяются полисинг и сервисы [[dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf|аналогично тарифным планам абонентов]]. Настройка параметров канала и ограничений в канале осуществляется по специальному идентификатору.</note> |
| |
| {{ :dpi:dpi_options:opt_shaping:shaping_multi:3_type_of_channels_14062023.png?nolink&600 |}} |
| ===== Настройка ===== |
| |
| В настройках DPI **/etc/dpi/fastdpi.conf** указывается способ, по которому он будет различать каналы: |
| <code>vchannels_type=1</code> |
| где |
| * 1 - означает, что для разных каналов используются разные сетевые интерфейсы |
| * 2 - означает, что будут использоваться разные VLAN |
| * 3 - означает, что будут определяться через CIDR |
| |
| <note>**СКАТ 12.4+** Добавлена настройка ''vchannels_default='' для помещения нераспределенного по другим каналам трафика в отдельный канал **(но не 0!)**</note> |
| |
| Далее нужно указать, какие физические интерфейсы, VLAN, CIDR образуют виртуальный канал. |
| Для этого используется параметр **vchannels_list** в /etc/dpi/fastdpi.conf. |
| <note important> После добавления в конфигурацию для создания vChannels требуется перезагрузить FastDPI процесс: |
| <code> |
| systemctl restart fastdpi |
| </code></note> |
| |
| ==== Для физических интерфейсов ==== |
| <code> |
| vchannels_list=60-00.0:60-00.1|61-00.0:61-00.1 |
| </code> |
| |
| <note important>Трафик через сетевые интерфейсы **60-00.0 и 60-00.1 относится к первому виртуальному каналу**, |
| а трафик через **61-00.0 и 61-00.1 ко второму**.\\ |
| Если на СКАТ есть кроме них еще сетевые интерфейсы, указанные в настройке in_dev/out_dev, то трафик через них будет относиться к общему каналу, ограничения на который заданы в [[dpi:dpi_options:opt_shaping:shaping_settings|конфигурационном файле.]] |
| </note> |
| |
| ==== Для VLAN ==== |
| ===Способ 1=== |
| <code> |
| vchannels_list=100:101-115|200:201:240-250 |
| </code> |
| |
| <note important>Трафик с **VLAN тегом 100 и от 101 до 115 относится к первому** виртуальному каналу, **с 200 и от 240 до 250 ко второму** каналу, |
| а весь трафик, который не попал в указанные VLAN, будет относится к общему каналу, ограничения на который |
| заданы в [[dpi:dpi_options:opt_shaping:shaping_settings|конфигурационном файле.]]</note> |
| |
| ===Способ 2=== |
| :!: При применении настроек ниже значение, заданное в ''fastdpi.conf'' ([[dpi:dpi_options:opt_shaping:shaping_multi#способ_1|способ 1]]), будет перезаписано. Но при рестарте сервиса значение параметра будет применено из файла ''fastdpi.conf''. |
| - Задание списка vlan: <code bash>fdpi_cli dpi config set vchannels_list='100|101|102|103' --json |
| [ |
| { |
| result: { |
| result_code: 0, |
| message: "All parameters successfully reloaded" |
| }, |
| params: [ |
| { |
| opt_name: "vchannels_list", |
| result: true, |
| err_msg: "" |
| } |
| ] |
| } |
| ]</code>Где: 100-vchannel 1, 101-vchannel 2 и т.д. |
| - Получение спиcка vlan: <code bash>fdpi_cli dpi config get vchannels_list --json |
| [ |
| { |
| result: { |
| result_code: 0 |
| }, |
| params: [ |
| { |
| opt_name: "vchannels_list", |
| opt_value: "100|101|102|103", |
| result: true |
| } |
| ] |
| } |
| ]</code> |
| - Подключение тарифного плана: <code bash>fdpi_ctrl load --policing --profile.name 1M --vchannel 2 --outformat json |
| { |
| "query" : { "cmd":"load", "param":"policing", "all":0, "profile":0}, |
| "lddls" : [ |
| |
| ], |
| "stat_ld" : { "total" : 1, "ok" : 1, "ierr" : 0, "isset" : 0, "noset" : 0} |
| }</code> Где: |
| * ''total'' — число выполняемых запросов |
| * ''ok'' — число удачных выполнений |
| * ''ierr'' — количество ошибок |
| * ''isset'' — количество команд, которые были заданы, но не были выполнены из-за отсутствия настроек или ограничений |
| * ''noset'' — количество команд, которые не были выполнены по другим причинам |
| - Проверка подключенного тарифного плана на vchannel: <code bash>fdpi_ctrl list --policing --vchannel 2 --outformat json |
| { |
| "query" : { "cmd":"list", "param":"policing", "all":0, "profile":0}, |
| "lpolicings" : [ |
| { "nvc":2, "policing":{ "type":"HTB", "outbound":{ "root_rate":"1mbit","root_ceil":"1mbit","root_burst":"500kbit","root_cburst":"500kbit" , "classes" : [ {"cte":"8bit", "ceil":"1mbit","burst":"8bit","cburst":"500kbit" },{"class":1, "rate":"8bit", "ceil":"1mbit","burst":"8bit","cburst":"500kbit" },{"class":2, "rate":"":"1mbit","burst":"8bit","cburst":"500kbit" },{"class":3, "rate":"8bit", "ceil":"1mbit","burst":"8bit","cburst":"500kbit" },{"class":4, "rate":"8bit", "ceil":"1m:"8bit","cburst":"500kbit" },{"class":5, "rate":"8bit", "ceil":"1mbit","burst":"8bit","cburst":"500kbit" },{"class":6, "rate":"8bit", "ceil":"8bit","burst":"8bit8bit" },{"class":7, "rate":"8bit", "ceil":"1mbit","burst":"8bit","cburst":"500kbit" } ]}, "inbound":{ "bw_rate":"0bit", "bw_ceil":"0bit" , "root_rate":"1mbit","rmbit","root_burst":"500kbit","root_cburst":"500kbit" , "classes" : [ {"class":0, "rate":"8bit", "ceil":"1mbit","burst":"8bit","cburst":"500kbit" },{"class":1, "r "ceil":"1mbit","burst":"8bit","cburst":"500kbit" },{"class":2, "rate":"8bit", "ceil":"1mbit","burst":"8bit","cburst":"500kbit" },{"class":3, "rate":"8bit", "ceiburst":"8bit","cburst":"500kbit" },{"class":4, "rate":"8bit", "ceil":"1mbit","burst":"8bit","cburst":"500kbit" },{"class":5, "rate":"8bit", "ceil":"1mbit","bursturst":"500kbit" },{"class":6, "rate":"8bit", "ceil":"8bit","burst":"8bit","cburst":"8bit" },{"class":7, "rate":"8bit", "ceil":"1mbit","burst":"8bit","cburst":" |