Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| 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> | ||
| - | |||
| - | < | ||