Это старая версия документа!
L2-балансировщик трафика
Описание и сценарии
Данная доработка позволяет использовать СКАТ как балансировщик трафика на основе IP-адресов, принадлежащих AS и определяемой как local
в asnum.dscp
. В данном режиме функциональность DPI не работает.
Для балансировки трафика используется 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
.
Сценарий. Балансировщик на зеркале трафика
Допустим, зеркало трафика 400GB нужно равномерно разбить между четырьмя VAS-платформами (Value-Added Services), осуществляющими анализ трафика, детекции и др.
В данном случае СКАТ позволит балансировать трафик и равномерно распределить его — т.е. реализовать функцию балансировщика.
Настройка и управление
Для корректной работы требуются следующие настройки:
- Определение автономной системы с 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.
Информационные команды
subs prop show active
— вывести дамп L2-свойств всех активных (не-expired) абонентов