====== Полисинг Виртуального канала (vChannel) ======
{{indexmenu_n>3}}
Подробнее о конфигурации vChannels: {{youtube>yP55RSZom48?}}
Когда у оператора есть несколько внешних (аплинков) или внутренних каналов
часто возникает потребность контролировать в них "полку" и ограничивать
низкоприоритетный трафик независимо друг от друга,
так как балансировка трафика обычно неравномерна и каналы часто неравнозначны.
С помощью vChannel можно выделить трафик из общего канала на основе **физических портов / VLAN / CIDR**. На vChannel применяются полисинг и сервисы [[dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_conf|аналогично тарифным планам абонентов]]. Настройка параметров канала и ограничений в канале осуществляется по специальному идентификатору.
{{ :dpi:dpi_options:opt_shaping:shaping_multi:3_type_of_channels_14062023.png?nolink&600 |}}
===== Настройка =====
В настройках DPI **/etc/dpi/fastdpi.conf** указывается способ, по которому он будет различать каналы:
vchannels_type=1
где
* 1 - означает, что для разных каналов используются разные сетевые интерфейсы
* 2 - означает, что будут использоваться разные VLAN
* 3 - означает, что будут определяться через CIDR
**СКАТ 12.4+** Добавлена настройка ''vchannels_default='' для помещения нераспределенного по другим каналам трафика в отдельный канал **(но не 0!)**
Далее нужно указать, какие физические интерфейсы, VLAN, CIDR образуют виртуальный канал.
Для этого используется параметр **vchannels_list** в /etc/dpi/fastdpi.conf.
После добавления в конфигурацию для создания vChannels требуется перезагрузить FastDPI процесс:
systemctl restart fastdpi
==== Для физических интерфейсов ====
vchannels_list=60-00.0:60-00.1|61-00.0:61-00.1
Трафик через сетевые интерфейсы **60-00.0 и 60-00.1 относится к первому виртуальному каналу**,
а трафик через **61-00.0 и 61-00.1 ко второму**.\\
Если на СКАТ есть кроме них еще сетевые интерфейсы, указанные в настройке in_dev/out_dev, то трафик через них будет относиться к общему каналу, ограничения на который заданы в [[dpi:dpi_options:opt_shaping:shaping_settings|конфигурационном файле.]]
==== Для VLAN ====
===Способ 1===
vchannels_list=100:101-115|200:201:240-250
Трафик с **VLAN тегом 100 и от 101 до 115 относится к первому** виртуальному каналу, **с 200 и от 240 до 250 ко второму** каналу,
а весь трафик, который не попал в указанные VLAN, будет относится к общему каналу, ограничения на который
заданы в [[dpi:dpi_options:opt_shaping:shaping_settings|конфигурационном файле.]]
===Способ 2===
:!: При применении настроек ниже значение, заданное в ''fastdpi.conf'' ([[dpi:dpi_options:opt_shaping:shaping_multi#способ_1|способ 1]]), будет перезаписано. Но при рестарте сервиса значение параметра будет применено из файла ''fastdpi.conf''.
- Задание списка vlan: 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: ""
}
]
}
]
Где: 100-vchannel 1, 101-vchannel 2 и т.д.
- Получение спиcка vlan: 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
}
]
}
]
- Подключение тарифного плана: 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}
}
Где:
* ''total'' — число выполняемых запросов
* ''ok'' — число удачных выполнений
* ''ierr'' — количество ошибок
- Проверка подключенного тарифного плана на vchannel: 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":"50, "description":{ "name":"1M" }}
],
"stat_lst" : { "total" : 1, "isset" : 1, "noset" : 0}
}
Name – название тарифного плана.
- Удаление тарифного плана с vchannel: fdpi_ctrl del --policing --vchannel 2 --outformat json
{
"query" : { "cmd":"del", "param":"policing", "all":0, "profile":0},
"lddls" : [
],
"stat_ld" : { "total" : 1, "ok" : 1, "ierr" : 0, "isset" : 0, "noset" : 0}
}
==== Для CIDR ====
Создать файл ipchannels.txt:
10.0.1.0/24 1
10.0.2.0/24 1
10.1.0.0/16 2
Сконвертировать
cat ipchannels.txt | as2bin /etc/dpi/ipchannels.bin
**СКАТ 12.4+** Добавлена поддержка IPv6 channels (с ''reload'').\\
Пример задания:
fe80::0/8 1
cat ipchannels6.txt | as2bin6 /etc/dpi/ipchannels6.bin
**[СКАТ v13+]** во входных файлах утилит as2bin и as2bin6 появилась возможность добавлять комментарии (#) и пустые линии.
Перечислить vChannels в /etc/dpi/fastdpi.conf:
vchannels_list=1|2
Трафик с **CIDR 10.0.1.0/24 и 10.0.2.0/24 относится к первому** виртуальному каналу, **с 10.1.0.0/16 ко второму** каналу,
а весь трафик, который не попал в указанные CIDR, будет относится к общему каналу, ограничения на который
заданы в [[dpi:dpi_options:opt_shaping:shaping_settings|конфигурационном файле.]]
===== Настройка полисинга =====
Загрузим настройки полисинга для каналов 1 и 2
fdpi_ctrl load --policing vchannel1.cfg --vchannel 1
fdpi_ctrl load --policing vchannel2.cfg --vchannel 2
Где vchannel1.cfg это имя файла с описанием настроек полисинга (формат этого файла идентичен для общего канала,
виртуальных каналов и для тарифного плана абонентов)
**Пример конфигурационного файла:**
htb_inbound_root=rate 10mbit
htb_inbound_class0=rate 8bit ceil 10mbit
htb_inbound_class1=rate 1mbit ceil 3mbit
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 100mbit static
htb_inbound_class7=rate 8bit ceil 10mbit
htb_root=rate 10mbit
htb_class0=rate 8bit ceil 10mbit
htb_class1=rate 1mbit ceil 3mbit
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 100mbit static
htb_class7=rate 8bit ceil 10mbit
Проверим какие настройки загружены
fdpi_ctrl list all vchannel --policing
Настройки для виртуальных каналов хранятся во внутренней БД DPI,
их можно на лету менять в процессе работы, и также как и для абонентов,
настройки полисинга для канала можно загружать по имени из профиля,
сохраненного ранее в БД.
fdpi_ctrl load --policing --profile.name vchannel_1 --vchannel 1
Также тарифный план можно задать в [[dpi:dpi_options:opt_bandwidth_mgmt:bandwidth_json|формате JSON]]
===== Настройка Черного списка - 4 услуга =====
Создается профиль аналогично как для абонента: [[dpi:dpi_options:opt_filtration:filtration_ctrl|Управление Черным списком.]]
fdpi_ctrl load --service 4 --profile.name test_blocked ––vchannel 2
===== Настройка Белого списка - 5 услуга =====
Создается профиль аналогично как для абонента: [[dpi:dpi_options:opt_capture:capt_mgmt|Управление Белым списком.]]
fdpi_ctrl load --service 5 --profile.name test_white ––vchannel 1