L2-балансировщик трафика [Документация VAS Experts]

Это старая версия документа!


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

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

СКАТ может работать как балансировщик трафика на основе IP-адресов, принадлежащих AS и определяемой как local в asnum.dscp. В данном случае в сети СКАТ-LB выступает как L2-bridge, отсюда название L2-балансировщик трафика.

В данном режиме функциональность 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=1
timeout_check_dev=0
 
#FastDPI Control
ctrl_port=29000
ctrl_dev=lo
 
#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) абонентов

Требование к оборудованию СКАТ-LB

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 + 14×10/25G 5000 40M pps
до 200 СКАТ-200-LB 64 AMD 9534 64 (8x8GB) 9×25/40/50/100G 10000 60M pps
до 300 СКАТ-300-LB 96 AMD 9654 64 (8x8GB) 9×25/40/50/100G 12000 80M pps
до 400 СКАТ-400-LB 128 AMD 9754 64 (8x8GB) 9×25/40/50/100G 15000 120M pps