Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
dpi:load_balancer:start [2024/03/29 09:33] – [Таблица] elena.krasnobryzh | dpi:load_balancer:start [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 |
---|
{{indexmenu_n>6}} | |
======L2-балансировщик трафика====== | |
=====Описание и сценарии===== | |
СКАТ может работать как балансировщик трафика на основе IP-адресов, принадлежащих к AS, определенной как ''local'' в ''asnum.dscp''.\\ | |
В данном случае в сети СКАТ-LB выступает как L2-bridge, отсюда название L2-балансировщик трафика. | |
<note>В данном режиме функциональность DPI не работает.</note> | |
====Сценарий: Балансировщик на зеркале трафика==== | |
Допустим, зеркало трафика 400Gbps нужно равномерно распределить между четырьмя VAS-платформами (Value-Added Services), осуществляющими анализ трафика и различное детектирование\\ | |
В данном случае СКАТ-LB позволит равномерно распределить трафик с одинаковой утилизацией портов на съемниках и сохранить симметричность трафика (трафик одной сессии будет направлен только на один съемник). | |
| |
{{ :dpi:load_balancer:load_balancer.png?450 |}} | |
**Пример конфигурации /etc/dpi/fastdpi.conf:** | |
* Зеркало трафика подается в 4х100G интерфейсов. | |
* Трафик балансируется между четырьмя съемниками, каждый съемник подключен 4х25G линками. | |
<code bash> | |
in_dev=05-00.0:05-00.1:05-00.2:05-00.3 | |
out_dev=01-00.0:01-00.1:01-00.2:01-00.3:02-00.0:02-00.1:02-00.2:02-00.3:03-00.0:03-00.1:03-00.2:03-00.3:04-00.0:04-00.1:04-00.2:04-00.3 | |
| |
#Scale factor is about 1 for every 1 Gigabit of bandwidth | |
scale_factor=1 | |
timeout_check_dev=0 | |
| |
#FastDPI Control | |
ctrl_port=29000 | |
ctrl_dev=lo | |
| |
#Turn on Load Balancing | |
enable_l2_lb=1 | |
| |
#Balance algorithm | |
maglev=2 | |
| |
#Hash table | |
lb_hash_out_dev_type=1 | |
| |
</code> | |
=====Настройка===== | |
====Настройка подсетей для балансировки==== | |
Балансировка применяется только к 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:start#примеры_для_ipv4|Примеры для IPv4]] | |
- [[dpi:dpi_options:opt_statistics:statistics_asn:start#настройка_для_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:start|по ссылке]] | |
- Для применения параметров необходимо выполнить 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''.\\ Подробнее о параметре ''dpdk_engine'' [[dpi:dpi_components:platform:dpi_config:start#загрузка_потока_диспетчера|по ссылке]]. | |
- Выбрать алгоритм балансировки. Для балансировки трафика используется ''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 таблицы, содержащей индекс интерфейса из массива выходных интерфейсов. Значение из массива выходных интерфейсов подставляется в текущий контекст и возвращается ''pcs_accept''. | |
=====Информационные команды===== | |
* ''subs prop show active'' — вывести дамп L2-свойств всех активных (не-expired) абонентов | |
| |
=====Требование к оборудованию СКАТ-LB===== | |
^ Max IN трафик\\ Гбит/с \\ (Зеркало на СКАТ-LB) ^ Max OUT трафик\\ Гбит/с \\ (Отбалансированный трафик на съемники) ^ Версия СКАТ LB ^ Количество ядер на __один__ CPU\\ c частотой от 2,5 ГГц ^ RAM \\ GB ^ Тип и __минимальное__ количество портов ^ Packet per second в миллионах \\ при базовой частоте CPU от 2,5ГГц ^ | |
| до 100 | до 100 | **СКАТ-100-LB** | 28 [[https://ark.intel.com/content/www/us/en/ark/products/199350/intel-xeon-gold-6258r-processor-38-5m-cache-2-70-ghz.html|Intel 6258R]], [[https://ark.intel.com/content/www/us/en/ark/products/215285/intel-xeon-gold-5320-processor-39m-cache-2-20-ghz.html|Intel 5320]], \\ 32 [[https://www.amd.com/en/products/cpu/amd-epyc-7502p|AMD 7502P]] | 64 (8x8GB) | 2x100G + 14x10/25G | 40M pps | | |
| до 200 | до 200 | **СКАТ-200-LB** | 64 [[https://www.amd.com/en/products/cpu/amd-epyc-9534|AMD 9534]] | 64 (8x8GB) | 9x25/40/50/100G | 60M pps | | |
| до 300 | до 300 | **СКАТ-300-LB** | 96 [[https://www.amd.com/en/products/cpu/amd-epyc-9654|AMD 9654]] | 64 (8x8GB) | 9x25/40/50/100G | 80M pps | | |
| до 400 | до 400 | **СКАТ-400-LB** | 128 [[https://www.amd.com/en/products/cpu/amd-epyc-9754|AMD 9754]] | 64 (8x8GB) | 9x25/40/50/100G | 120M pps | | |
| |
| |
| |