L2-балансировщик трафика

Описание и сценарии

СКАТ может работать как балансировщик трафика на основе IP-адресов, принадлежащих AS и определяемой как local в asnum.dscp.

В данном режиме функциональность DPI не работает.

Сценарий: Балансировщик на зеркале трафика

Допустим, зеркало трафика 400Gbps нужно равномерно разбить между четырьмя VAS-платформами (Value-Added Services), осуществляющими анализ трафика и различное детектирование
В данном случае СКАТ позволит равномерно распределить трафик и добиться равномерной утилизации портов на съемниках.

Пример конфигурации:

Зеркало трафика подается в 4х100G интерфейсов.

Трафик балансируется между четырьмя съемниками, каждый съемник подключен 4х25G линками.

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=10 timeout_check_dev=0 #FastDPI Control ctrl_port=29000 ctrl_dev=lo #Turn on UDR udr=1 #Turn on Load Balancing enable_l2_lb=true #Balance algorithm maglev=2 #Hash table lb_hash_out_dev_type=1

Настройка и управление

Для корректной работы требуются следующие настройки:

Определение автономной системы с IP адресами, которые используются абонентами. Описание

Отметка заданной автономной системы как local. Описание

Определение входных и выходных интерфейсов в конфигурационном файле. Входные интерфейсы задаются в параметре 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=true
Вводимые параметры:
enable_l2_lb=false|true - включить балансировщик трафика
lb_hash_out_dev_type = 0|1 - по какому значению выполнять инициализацию hash таблицы:
0 — использовать внутренний индекс выходного интерфейса
1 — использовать имя интерфейса из [in|out]_dev
В качестве dpdk_engine могут использоваться следующие типы: 0 (по умолчанию), 1 и 2.

Для балансировки трафика используется 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) абонентов

Требование к оборудованию

Max Rx трафик Гбит/с	Max OUT трафик Гбит/с	Версия СКАТ LB	Количество ядер на один CPU c частотой от 2,5 ГГц	RAM GB	Тип и минимальное количество портов	Кол-во Public IP в NAT pool	Packet per second в миллионах при базовой частоте CPU от 2,5ГГц
до 100	СКАТ-100-LB	28 Intel 6258R, Intel 5320, 32 AMD 7502P	64	2x100G + 14x10/25G	5000	40M pps
до 200	СКАТ-200-LB	64 AMD 9534	128	9x25/40/50/100G	10000	60M pps
до 300	СКАТ-300-LB	96 AMD 9654	256	9x25/40/50/100G	12000	80M pps
до 400	СКАТ-400-LB	128 AMD 9754	256	9x25/40/50/100G	15000	120M pps