3 Приоритизация нескольких каналов

Подробнее о конфигурации VChannels: видеоинструкция

Когда у оператора есть несколько внешних (аплинков) или внутренних каналов часто возникает потребность контролировать в них "полку" и ограничивать низкоприоритетный трафик независимо друг от друга, так как балансировка трафика обычно неравномерна и каналы часто неравнозначны.

Чтобы платформа могла отличить, какой трафик относится к какому каналу, необходимо либо физически разнести каналы по разным интерфейсам DPI, либо прокинуть трафик разных каналов через разные VLAN.

Настройка параметров канала и ограничений в канале осуществляется аналогично тарифным планам абонентов по специальному идентификатору.

В настройках DPI /etc/dpi/fastdpi.conf указывается способ, по которому он будет различать каналы:

vchannels_type=1

где

1 - означает, что для разных каналов используются разные сетевые интерфейсы

2 - означает, что будут использоваться разные VLAN

3 - означает, что будут определяться через IP/CIDR

Далее нужно указать, какие физические интерфейсы, VLAN, IP/CIDR образуют виртуальный канал.

Для физических интерфейсов

vchannels_list=dna0:dna1|dna2:dna3

Трафик через сетевые интерфейсы dna0 и dna1 относится к первому виртуальному каналу, а трафик через dna2 и dna3 ко второму. Если на dpi есть кроме них еще сетевые интерфейсы, указанные в настройке in_dev/out_dev, то трафик через них будет относится к общему каналу, ограничения на который заданы в конфигурационном файле.

Для VLAN

vchannels_list=100:101-115|200:201:240-250

Трафик с VLAN тегом 100 и от 101 до 115 относится к первому виртуальному каналу, с 200 и от 240 до 250 ко второму каналу, а весь трафик, который не попал в указанные VLAN, будет относится к общему каналу, ограничения на который заданы в конфигурационном файле.

Настройка полисинга

Загрузим настройки полисинга для каналов 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

Также тарифный план можно задать в формате JSON

Настройка Черного списка - 4 услуга

Создается профиль аналогично как для абонента: Управление Черным списком.

fdpi_ctrl load --service 4 --profile.name test_blocked ––vchannel 2

Настройка Белого списка - 5 услуга

Создается профиль аналогично как для абонента: Управление Белым списком.

fdpi_ctrl load --service 5 --profile.name test_white ––vchannel 1