| Следующая версия | Предыдущая версия |
| dpi:load_balancer:setting [2024/08/16 12:24] – создано elena.krasnobryzh | dpi:load_balancer:setting [2025/12/17 08:39] (текущий) – [Настройка /etc/dpi/fastdpi.conf] elena.krasnobryzh |
|---|
| ======setting====== | ====== Настройка ====== |
| | |
| | =====Настройка подсетей для балансировки===== |
| | Балансировка применяется только к IP-адресам, принадлежащим к AS, определенной как ''local'' в ''asnum.dscp''. |
| | - Определить автономную систему с IP-адресами, которые используются абонентами:<code bash>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</code> |
| | - [[dpi:dpi_options:opt_statistics:statistics_asn#примеры_для_ipv4|Примеры для IPv4]] |
| | - [[dpi:dpi_options:opt_statistics:statistics_asn#настройка_для_ipv6|Пример для IPv6]] |
| | - Отметить заданную автономную систему как local:<code bash>vi my_as_dscp.txt |
| | 64511 local |
| | 10415 local |
| | cat my_as_dscp.txt | as2dscp /etc/dpi/asnum.dscp</code> В качестве AS можно использовать как кастомную, так и публичную AS.\\ Подробнее [[dpi:dpi_options:opt_priority:priority_config_as|по ссылке]] |
| | - Для применения параметров необходимо выполнить reload:<code bash>service fastdpi reload</code> |
| | =====Настройка /etc/dpi/fastdpi.conf===== |
| | - Определить входные и выходные интерфейсы в конфигурационном файле.\\ Входные интерфейсы, на которые подается зеркало трафика задаются в параметре ''in_dev'', а выходные — в ''out_dev''.\\ Интерфейсы не образуют пары и допускаются конструкции вида:<code bash>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</code> Или <code bash>in_dev=05-00.0 |
| | out_dev=out_dev=08-00.0:08-00.1:08-00.2:08-00.3</code> |
| | - Включить режим балансировки в параметре ''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'' [[dpi:dpi_components:platform:dpi_config#загрузка_потока_диспетчера|по ссылке]]. |
| | - Выбрать алгоритм балансировки в параметре ''lb_hash_type''. Для балансировки трафика используется ''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 таблицы, содержащей индекс интерфейса из массива выходных интерфейсов. |