Настройка
Настройка подсетей для балансировки
Балансировка применяется только к IP-адресам, принадлежащим к AS, определенной как local
в asnum.dscp
.
- Определить автономную систему с IP-адресами, которые используются абонентами:
vi aslocal.txt 10.0.0.0/8 64511 172.16.0.0/12 64511 192.168.0.0/16 64511 cat aslocal.txt | as2bin /etc/dpi/aslocal.bin
- Отметить заданную автономную систему как local:
vi my_as_dscp.txt 64511 local 10415 local cat my_as_dscp.txt | as2dscp /etc/dpi/asnum.dscp
В качестве AS можно использовать как кастомную, так и публичную AS.
Подробнее по ссылке - Для применения параметров необходимо выполнить reload:
service fastdpi reload
Настройка /etc/dpi/fastdpi.conf
- Определить входные и выходные интерфейсы в конфигурационном файле.
Входные интерфейсы, на которые подается зеркало трафика задаются в параметреin_dev
, а выходные — вout_dev
.
Интерфейсы не образуют пары и допускаются конструкции вида:in_dev=05-00.0:05-00.1:05-00.2:05-00.3:0b-00.0:0b-00.1:0b-00.2:0b-00.3 out_dev=08-00.0:08-00.1:08-00.2:08-00.3
Или
in_dev=05-00.0 out_dev=out_dev=08-00.0:08-00.1:08-00.2:08-00.3
- Включить режим балансировки в параметре
enable_l2_lb
, где:0
— выключить балансировку;1
— включить балансировку.
- Определить, по какому значению выполнять инициализацию hash таблицы в параметре
lb_hash_out_dev_type
, где:0
— использовать внутренний индекс выходного интерфейса;1
— использовать имя интерфейса из [in|out]_dev.
- Выбрать движок для работы с потоками-диспетчерами в параметре
dpdk_engine
, где:0
— read/write движок по умолчанию, один диспетчер на все;1
— read/write движок с двумя потоками-диспетчерами: на каждое направление по диспетчеру;2
— read/write движок с поддержкой RSS: для каждого направления создаетсяdpdk_rss
диспетчеров (по умолчаниюdpdk_rss=2
), таким образом, общее количество диспетчеров = 2 *dpdk_rss
— для работы с in_dev, и отдельный диспетчер для работы с out_dev.
При значении параметра 2 активируется движокmqrx_lb_engine
. Принцип работы такой же, как и при обычном режимеdpdk_engine=2
, только rss включается на in_dev, а на out_dev создается только одна очередь rx.
Подробнее о параметреdpdk_engine
по ссылке.
- Выбрать алгоритм балансировки. Для балансировки трафика используется
maglev
алгоритм с фиксированным размером hash таблицы, где:1
— если src и dst ip оба local, то рассчитывается hash на основании этих двух адресов;2
— если только src ip local, то рассчитывается hash на основании src ip;3
— если только dst ip local, то рассчитывается hash на основании dst ip;4
— рассчитывается hash на основе src и dst ip.
На основании рассчитанного hash значения производится определение выходного интерфейса путем определения индекса ячейки hash таблицы, содержащей индекс интерфейса из массива выходных интерфейсов.