Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
dpi:dpi_components:platform:dpi_inst_spec:dpi_onstick:start [2024/01/30 09:04] – elena.krasnobryzh | dpi:dpi_components:platform:dpi_inst_spec:dpi_onstick:start [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | {{indexmenu_n> | ||
- | ====== Поддержка on-stick девайсов ====== | ||
- | |||
- | [FastDPI 12+] | ||
- | |||
- | On-stick девайсы хороши тем, что позволяют экономить на физическом оборудовании. Fastdpi обычно работает с мостами, | ||
- | |||
- | Каждый оn-stick порт описывается особым образом: | ||
- | < | ||
- | # описание базового девайса | ||
- | dpdk_device=port1: | ||
- | |||
- | # описание on-stick на основе девайса port1: | ||
- | onstick_device { | ||
- | # базовый девайс | ||
- | base=port1 | ||
- | |||
- | # логическое выражение для определения направления пакета (фильтр) | ||
- | # Если это выражение возвращает true, значит, | ||
- | # иначе — со стороны inet. | ||
- | filter=< | ||
- | |||
- | # Имя девайса со стороны subs | ||
- | subs=subs1 | ||
- | |||
- | # Имя девайса со стороны inet | ||
- | inet=inet1 | ||
- | } | ||
- | |||
- | # задаем мосты. | ||
- | # Базовый девайс port1 НЕ МОЖЕТ входить ни в какие мосты | ||
- | in_dev=subs1 | ||
- | out_dev=inet1 | ||
- | </ | ||
- | |||
- | Везде, где требуется указание девайса, | ||
- | |||
- | В описании on-stick порта наиболее важная часть — это выражение '' | ||
- | Основой выражения '' | ||
- | Термы задают элементарные выражения над L2-свойствами пакета. Существуют следующие термы (регистр важен): | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | Примеры (напомним, | ||
- | * сеть Q-in-Q со стороны абонентов терминируется в single VLAN: '' | ||
- | * гетерогенная сеть: со стороны абонентов Q-in-Q или PPPoE в VLAN: '' | ||
- | * single VLAN-сеть, | ||
- | * со стороны inet MAC-адрес бордера 3c: | ||
- | |||
- | Формальное описание грамматики выражения '' | ||
- | < | ||
- | filter ::= and | and ‘|’ filter | ||
- | and ::= mult | mult ‘&’ and | ||
- | mult ::= ‘!’ mult | term | ‘(‘ filter ‘)’ | ||
- | term ::= vlan | qinq | pppoe | smac | dmac | ||
- | |||
- | vlan ::= ‘vlan’ | ‘vlan’ ‘(‘ список_int ‘)’ | ||
- | qinq ::= ‘qinq’ | ||
- | pppoe ::= ‘pppoe’ | ||
- | smac ::= ‘smac’ ‘(‘ mac_address ‘)’ | ||
- | dmac ::= ‘dmac’ ‘(‘ mac_address ‘)’ | ||
- | mac_address ::= xx: | ||
- | </ | ||
- | |||
- | {{indexmenu_n> | ||
- | ======Агрегация портов LAG/ | ||
- | Агрегация портов средствами СКАТ поддерживается для режимов [[dpi: | ||
- | В LAG могут входить либо обычные порты, либо on-stick, смешение недопустимо. LAG на on-stick организуется на базовом (физическом) порту. LAG реализуется в fastdpi на логическом уровне: | ||
- | |||
- | Возможны 3 разных конфигурации: | ||
- | * LAG на стороне subs, на стороне inet нет LAG | ||
- | * LAG на стороне inet, на стороне subs нет LAG | ||
- | * LAG на стороне subs И на стороне inet | ||
- | |||
- | =====Настройка LAG===== | ||
- | Требования к девайсам, | ||
- | * девайс может входить только в один lag-девайс; | ||
- | * все девайсы в LAG должны иметь одинаковую скорость; | ||
- | |||
- | В настоящее время конфигурирование LAG производится в fastdpi.conf без возможности применения на лету, то есть требуется рестарт fastdpi при изменении конфигурации LAG. | ||
- | bash> | ||
- | # [cold] Описание LAG | ||
- | # Для каждого LAG - отдельная секция lag. | ||
- | # В LAG могут входить только девайсы либо in_dev, либо из out_dev, | ||
- | # смешение недопустимо. | ||
- | lag { | ||
- | # Необязательное имя LAG, используется для вывода в лог | ||
- | #name= | ||
- | |||
- | # перечисляются все девайсы, | ||
- | # LAG должен содержать как минимум 2 девайса | ||
- | device= | ||
- | device= | ||
- | |||
- | # поддержка LACP: | ||
- | # - 0 - LACP отключено, | ||
- | # - 1 - LAG в пассивном режиме: | ||
- | # но отвечаем на пришедшие LACPDU | ||
- | # - 2 - LAG в активном режиме: | ||
- | # Default value: 0 (LACP отключено) | ||
- | #lacp=0 | ||
- | |||
- | # MAC-адрес - system_id данного LAG | ||
- | # Если не задано - используется arp_mac | ||
- | #system_id= | ||
- | |||
- | # system priority для данного LAG | ||
- | # число в диапазоне 1 - 65535, default 32768 | ||
- | # | ||
- | |||
- | # short (off) или long (on) LACP timeout | ||
- | # | ||
- | </ | ||
- | =====Применение балансировки к исходящему трафику LAG===== | ||
- | Тип применяемого алгоритма балансировки задается параметром '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | |||
- | Дополнительные параметры конфигурации хеша в секции '' | ||
- | * вычисляем 64-битный хеш от тех или иных полей пакета и '' | ||
- | * из 64-битного хеша берем '' | ||
- | * по получившемуся числу N определяем номер порта в LAG: '' | ||
- | // | ||
- | // hash: | XXXXXXXXXX------| | ||
- | // | ||
- | // ^ ^ | ||
- | // | | ||
- | // hash_bits = 10 | ||
- | </ | ||
- | |||
- | hash_seed=0 | ||
- | hash_offset=0 | ||
- | hash_bits=64 | ||
- | |||
- | <note important> | ||
- | |||
- | < | ||