Это старая версия документа!
L2-балансировщик трафика
Описание и сценарии
СКАТ может работать как балансировщик трафика на основе IP-адресов, принадлежащих AS и определяемой как local
в asnum.dscp
.
Сценарий: Балансировщик на зеркале трафика
Допустим, зеркало трафика 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 (8x8GB) | 2x100G + 14x10/25G | 5000 | 40M pps | |
до 200 | СКАТ-200-LB | 64 AMD 9534 | 64 (8x8GB) | 9x25/40/50/100G | 10000 | 60M pps | |
до 300 | СКАТ-300-LB | 96 AMD 9654 | 64 (8x8GB) | 9x25/40/50/100G | 12000 | 80M pps | |
до 400 | СКАТ-400-LB | 128 AMD 9754 | 64 (8x8GB) | 9x25/40/50/100G | 15000 | 120M pps |