Конструктор пакетов
Плагин «Конструктор пакетов» генерирует кадры по шаблону, который пользователь собирает из стека заголовков от Ethernet до VXLAN. Для каждого поля задаётся, как оно меняется от кадра к кадру: фиксированное значение, инкремент, декремент, список, случайное значение или адреса из источников и целей задачи. В одной записи можно задать несколько потоков с разными шаблонами и скоростями. До запуска можно посмотреть кадры в превью и выгрузить их в pcap: превью строится тем же кодом, что и генератор, поэтому кадры в превью совпадают с отправленными побайтно.
У плагина две стороны: Клиент собирает и отправляет кадры, Сервер принимает их и считает приём, потери, дубликаты, порядок и задержку по каждому потоку, а при необходимости по сочетаниям значений полей.
Плагин подходит для проверки обработки нестандартных и специально сформированных кадров: QinQ и стеков MPLS-меток, туннельной инкапсуляции, перебора адресов и портов, кадров с намеренно неверной контрольной суммой, смеси размеров кадров. С серверной стороной он показывает, какие потоки DUT потерял, продублировал или переставил и какую задержку внёс.
Плагин входит в модуль «Сетевое тестирование» (см. Стоимость) и настраивается в Data Plane: в каталоге плагинов выберите Конструктор пакетов и сторону Клиент или Сервер. У клиента настраиваются разделы Источники, Цели, Шаблон пакета и Длительность, у сервера только Источники и Длительность.
Клиент и сервер
| Сторона | Что делает | Что настраивается |
|---|---|---|
| Клиент | Собирает кадры по шаблону и отправляет их с каждого порта из Источников | Источники, цели, шаблон пакета, потоки, скорость, длительность |
| Сервер | Принимает кадры на портах из своих Источников и ведёт статистику по потокам: приём, потери, дубликаты, порядок, задержку | Источники (порты приёма) и длительность. Шаблона у сервера нет |
Если в задаче есть хотя бы одна серверная запись конструктора пакетов, клиент пишет в последние 16 байт каждого кадра перед FCS сигнатуру: метку задачи, номер потока, номер порта-источника, номер кадра и время отправки. По сигнатуре сервер относит кадр к потоку и считает потери, дубликаты, порядок и задержку. Размер кадра при этом не меняется: сигнатура занимает конец payload. Поэтому самый маленький кадр каждого включённого потока должен вмещать заголовки, 16 байт сигнатуры и 4 байта FCS, иначе задача не сохранится с ошибкой «для сигнатуры кадр должен быть не меньше N байт». Кадр 64 байта с Ethernet II, IPv4 и UDP (42 байта заголовков) сигнатуру вмещает.
Без сервера сигнатура не пишется: кадры идут ровно по шаблону, и считается только передача. Форма клиента показывает, какой режим действует: Сигнатура включена или Считается только передача.
- Серверу нужна хотя бы одна клиентская запись конструктора пакетов в той же задаче. Сервер считает потоки всех клиентских записей задачи.
- Клиент и сервер могут работать на разных агентах. Задержка измеряется, только если клиент и сервер работают на одном агенте (см. Задержка и зонды).
- Клиент и сервер могут использовать один и тот же порт: DUT возвращает кадры в порт, с которого они ушли, например маршрутизирует их в другой VLAN этого порта. Так измеряется задержка DUT на одном порту тестера.
- Сервер только принимает кадры и не отвечает на них.
Порядок запуска
- Создайте отдельную задачу и добавьте в неё клиентскую запись Конструктор пакетов. Другие плагины в эту задачу добавить нельзя, клиентские и серверные записи конструктора пакетов можно.
- В Источниках клиента выберите агенты, интерфейсы и сети, с которых будут отправляться кадры. Кадры отправляются с каждого выбранного порта; поля, которые берут значения из источников, на каждом порту получают адреса его сетей.
- В Целях выберите сети назначения, если поля шаблона должны брать адреса, MAC или порты из целей. Если все поля заданы вручную, цели не нужны.
- В разделе Шаблон пакета соберите стек заголовков и настройте поля, размер кадра и payload на вкладке Пакет, скорость и количество кадров на вкладке Передача. Проверьте кадры на вкладке Кадры. Чтобы с тех же портов шли кадры по другим шаблонам, добавьте потоки (см. Потоки).
- Чтобы считать приём, потери, порядок и задержку, добавьте серверную запись Конструктор пакетов и выберите в её Источниках порты, на которые DUT вернёт кадры.
- Задайте Длительность и запустите задачу. Результаты приёма отображаются на дашборде Конструктор пакетов на вкладке Метрики (см. Статистика потоков).
Шаблон проверяется при сохранении и при запуске задачи. Ошибки показываются с префиксом «Конструктор пакетов:» и путём к полю шаблона, ошибки отдельного потока — с префиксом «Конструктор пакетов: поток «имя»:».
Шаблон пакета
Раздел Шаблон пакета состоит из вкладок Пакет, Группы, Передача, Кадры и Потоки. Над вкладками находится переключатель Поток: вкладки Пакет, Группы, Передача и Кадры показывают выбранный поток, вкладка Потоки показывает все потоки записи.
Кнопки раздела:
| Кнопка | Что делает |
|---|---|
| Готовые шаблоны | Заменяет шаблон выбранного потока одним из типовых: UDP поверх IPv4 (64 байта или IMIX), UDP с 4096 сочетаниями адресов и портов, TCP SYN, ICMP Echo Request, VLAN 802.1Q, QinQ 802.1ad, две метки MPLS, UDP поверх IPv6, VXLAN, GRE (IPv4 в IPv4), ARP-запрос. Прежний шаблон можно вернуть кнопкой Вернуть прежний |
| Библиотека | Открывает сохранённые шаблоны (см. Библиотека шаблонов) |
| В библиотеку | Сохраняет шаблон выбранного потока в библиотеку |
| Скачать pcap | Выгружает первые 1000 кадров выбранного потока для просмотра в Wireshark |
Кнопка в правом верхнем углу разворачивает конструктор на всю ширину страницы и возвращает список параметров.
Пакет
Вкладка Пакет — редактор пакета в три колонки, как Packet Editor в Keysight IxNetwork:
- Редактор пакета — стек заголовков выбранного потока в виде плашек от Ethernet II до Payload. Выбранный заголовок подсвечен. Кнопка + справа от заголовка добавляет заголовок после него, кнопка × удаляет заголовок.
- Поля выбранного заголовка — название поля и его значение в кадре, например
<Авто> 0x0800,Инк: 49152, 1, 100или<Из источника> 192.168.1.10. Поле Фильтр… оставляет поля, в названии которых есть введённый текст. Поля приоритета и флагов IPv4, флаги TCP и тег VLAN собраны в сворачиваемые разделы Приоритет, Флаги и Тег VLAN. Значок рядом с названием отмечает поле, по которому отслеживается поток. - Редактор поля — значения выбранного поля: флажок Авто, Паттерн и его параметры, Группа и флажок Отслеживание (см. ниже).
Под редактором находится Hex-вид: байты первого кадра, раскрашенные по заголовкам. Поле можно выбрать и щелчком по его байту; кнопка Hex-вид сворачивает дамп.
Кнопка + открывает список протоколов: сверху поле Фильтр…, под ним Закреплённые протоколы (Ethernet II, MPLS, VLAN, IPv4, IPv6, GRE, VXLAN, TCP, UDP), затем Другие протоколы. Протокол, который не может стоять на этом месте, показан серым, а подсказка называет причину: например, после VLAN можно добавить ещё один VLAN (QinQ), после MPLS следующую метку или IP, после UDP заголовок VXLAN. В поле фильтра можно ввести название протокола или его стандарт и нажать Enter, чтобы добавить первый подходящий. Заголовок, без которого соседние заголовки не могут идти подряд, удалить нельзя.
| Заголовок | Стандарт | Длина, байт | Что может идти дальше |
|---|---|---|---|
| Ethernet II | IEEE 802.3 | 14 | ARP, Ethernet II, IPv4, IPv6, MPLS, VLAN |
| VLAN | IEEE 802.1Q | 4 | ARP, Ethernet II, IPv4, IPv6, MPLS, VLAN |
| MPLS | RFC 3032 | 4 | Ethernet II, IPv4, IPv6, MPLS |
| ARP | RFC 826 | 28 | — |
| IPv4 | RFC 791 | 20 | GRE, ICMP, ICMPv6, IPv4, IPv6, TCP, UDP |
| IPv6 | RFC 8200 | 40 | GRE, ICMP, ICMPv6, IPv4, IPv6, TCP, UDP |
| GRE | RFC 2784 | 4 | ARP, Ethernet II, IPv4, IPv6, MPLS, VLAN |
| ICMP | RFC 792 | 8 | — |
| ICMPv6 | RFC 4443 | 8 | — |
| TCP | RFC 9293 | 20 | — |
| UDP | RFC 768 | 8 | VXLAN |
| VXLAN | RFC 7348 | 8 | Ethernet II |
В стеке может быть до 32 заголовков. Опции IPv4 и TCP, а также дополнительные заголовки IPv6 не поддерживаются; поля длины заголовка IPv4 (IHL) и TCP (Data Offset) доступны только для чтения. Если у внешнего тега QinQ оставлен TPID 0x8100, конструктор предлагает заменить его на 0x88a8 по IEEE 802.1ad кнопкой Сделать 0x88a8: порт коммутатора в режиме trunk отбрасывает кадры с тегом 0x8100 из VLAN, которых на нём нет.
Чтобы настроить поле, выберите его в колонке полей. Значения вводятся в формате поля: десятичное или шестнадцатеричное (0x) число, MAC-адрес, IPv4- или IPv6-адрес.
| Паттерн | Значение в кадре |
|---|---|
| Одно значение | Одно фиксированное значение во всех кадрах |
| Инкремент | Начало, Шаг и Количество значений; после последнего значения счёт начинается заново |
| Декремент | То же, что инкремент, но значение уменьшается |
| Список | Значения по кругу; вводятся по одному в строке или через запятую, до 65 536 значений. Кнопка Импорт CSV заполняет список из файла CSV или текстового файла |
| Повторяемое случайное | Случайные биты под маской (необязательно), остальные биты берутся из фиксированных битов. Например, маска 0.0.0.255 делает случайным последний октет IPv4-адреса |
| Случайное из диапазона | Равномерно случайное значение из ряда «от», «от + шаг», …, не больше «до» |
| Из источника | MAC, IP-адреса или порты сети порта-источника |
| Из цели | MAC следующего узла, IP-адреса или порты сетей целей |
Флажок Авто есть у авто-полей: пока он установлен, значение вычисляется автоматически, а паттерн недоступен. Если снять флажок, поле получает значение, которое было в кадре, в паттерне Одно значение.
Для случайных паттернов можно задать seed: с одним seed последовательность повторяется при каждом запуске.
Флажок Отслеживание включает статистику потоков по этому полю: сервер будет считать отдельно каждое сочетание значений отмеченных полей (см. Отслеживание). Флажок доступен в паттернах Инкремент, Декремент, Список, Из источника и Из цели.
Авто-поля заполняются автоматически, пока пользователь не задал их вручную:
- поле следующего протокола (EtherType, протокол IP, Next Header, тип протокола GRE, порт назначения UDP) — по следующему заголовку стека;
- бит Bottom of Stack у MPLS — 1, если дальше нет метки MPLS;
- поля длины — для каждого кадра по его размеру;
- контрольные суммы заголовка IPv4, UDP, TCP, ICMP и ICMPv6 — для каждого кадра.
Если снять у поля длины или контрольной суммы флажок Авто и задать значение, вычисление отключается. Так формируются кадры с намеренно неверной контрольной суммой для негативных тестов.
Поля из источников и целей. Поля MAC, IP-адресов и портов могут брать значения из задачи, как в остальных плагинах:
| Поле | Из источника | Из цели |
|---|---|---|
| MAC | MAC каждого адреса источника по MAC-политике его сети: MAC порта, фиксированный или свой для каждого адреса | MAC следующего узла к целям: MAC шлюза из сети источника или найденный по ARP/ND при запуске |
| IPv4 / IPv6 | Адреса сетей порта-источника: подсеть без шлюза и исключений, у IPv4 без адресов .0 и .255 | Адреса сетей всех целей по порядку, по тем же правилам |
| Порт | Порты, заданные в сетях порта-источника | Порты, заданные в сетях целей |
Если источники и цели задачи уже выбраны, а MAC, IP и порты заданы вручную, конструктор предлагает подставить их из задачи кнопкой Подставить из задачи или оставить как есть кнопкой Оставить вручную.
Payload и размер кадра
Плашка Payload в конце стека открывает две настройки: Размер кадра и Заполнение:
| Параметр | Описание | Значение |
|---|---|---|
| Размер кадра с FCS | Фиксированный: один размер. Инкремент: от «От» до «До» с шагом. Случайный: случайный размер из диапазона с шагом. IMIX: Simple IMIX 7:4:1 (64 байта × 7, 594 × 4, 1518 × 1, размеры перемешаны равномерно). Свой IMIX: свои размеры и веса. Авто: наименьший размер для стека заголовков, но не меньше 64 байт | От 64 до 9216 байт; по умолчанию фиксированный, 128 байт. Сумма весов своего IMIX не больше 4096 |
| Заполнение: байты после последнего заголовка | Шаблон байт (hex, повторяется до конца кадра, например 0xDEADBEEF, до 1024 байт), Возрастающие байты, Убывающие байты или Случайные байты (с необязательным seed) | По умолчанию нули. Payload одинаков во всех кадрах и обрезается по размеру кадра |
Четыре байта FCS добавляет сетевая карта; в превью они не показываются. Если в задаче есть сервер, последние 16 байт перед FCS занимает сигнатура (см. Клиент и сервер).
Группы
Группы определяют, как сочетаются изменяемые поля:
- поля одной группы меняются вместе, каждое по своему кругу, как независимые инкременты;
- разные группы вложены, как разряды счётчика: верхняя группа внешняя, нижняя меняется быстрее всех. Так получаются все сочетания полей из разных групп.
Поля без группы попадают в группу По умолчанию. Группа выбирается в редакторе поля в паттернах инкремента, декремента, списка, из источника и из цели; случайные паттерны в группы не входят. В шаблоне может быть до 16 групп, кроме группы по умолчанию. На вкладке показывается число уникальных кадров до повтора полей (не более 2^62).
Передача
Скорость и количество кадров задаются для выбранного потока; при нескольких потоках заголовок раздела называет поток.
| Параметр | Описание | Значение |
|---|---|---|
| Режим скорости | % линейной скорости — доля скорости каждого порта-источника. Кадров в секунду — частота кадров потока на каждом порту-источнике | Доля линии больше 0 и не более 100%, по умолчанию 10%; частота от 1 до 1 000 000 000 кадров в секунду |
| Кадров на порт | Сколько кадров потока отправить с каждого порта-источника. После этого поток молчит, а остальные потоки продолжают; если поток один, порт молчит до конца длительности задачи | 0 (по умолчанию) — отправлять до конца длительности задачи |
| Время работы плагина | Длительность работы, общая для всех потоков записи; те же значения, что в разделе Длительность | — |
При расчёте линейной скорости к среднему размеру кадра добавляются 20 байт преамбулы и межкадрового интервала. Под полем скорости конструктор показывает, сколько кадров в секунду это даст на каждом порту-источнике, а для скорости в кадрах в секунду — какую долю линии порта она займёт. Если заданное количество кадров не успеет уйти за длительность задачи, под полем Кадров на порт показывается, сколько кадров уйдёт на самом деле. Режим % линейной скорости требует известной скорости порта; если её не удаётся определить, задайте скорость в кадрах в секунду.
Кадры
Вкладка Кадры показывает кадры выбранного потока по страницам: таблицу кадров, разбор выбранного кадра по заголовкам и полям и его байты. В сводке указаны число уникальных кадров, размер кадра, длина заголовков и цикл размеров. Если в задаче несколько портов-источников, порт для превью выбирается в поле Порт-источник: поля из источника берут адреса сетей этого порта.
MAC порта и MAC шлюза становятся известны только при запуске, поэтому в превью и в pcap на их месте нули. Сигнатура для сервера пишется при отправке, поэтому в превью и в pcap её нет. Если источники или цели ещё не выбраны, поля, которые берут из них значения, в превью показывают значения по умолчанию. Сохранить такую задачу нельзя, пока нужные источники и цели не выбраны.
Файл pcap содержит кадры без FCS; временная метка кадра n равна n мкс.
Потоки
В одной клиентской записи можно задать до 32 потоков. У каждого потока свой шаблон, группы, скорость, количество кадров и отслеживание. Все включённые потоки идут вместе с каждого порта-источника: порт делит время между ними по их скоростям и перемежает кадры равномерно, так что на любом отрезке поток отстаёт от своей доли не больше чем на один кадр. Поток, отправивший заданное количество кадров, замолкает, остальные сохраняют свою скорость.
Действия с потоками находятся рядом с переключателем Поток над вкладками:
| Кнопка | Что делает |
|---|---|
| Новый поток | Добавляет после текущего поток с шаблоном по умолчанию (Ethernet II, IPv4, UDP) |
| Копия потока | Добавляет после текущего копию выбранного потока: шаблон, группы, скорость и отслеживание |
| Удалить поток | Удаляет выбранный поток. Единственный поток удалить нельзя |
| Все потоки (N) | Открывает вкладку Потоки. Кнопка видна, когда потоков больше одного |
На вкладке Потоки таблица показывает каждый поток: имя, заголовки, размер кадра, скорость, количество кадров с порта и отправляется ли поток. Щелчок по строке выбирает поток, двойной щелчок или кнопка Изменить шаблон потока открывает его шаблон на вкладке Пакет. Под таблицей настраивается выбранный поток:
- Имя потока — до 64 символов. Без имени поток называется «Поток N». Под этим именем поток показывается в переключателе и на дашборде.
- Отправлять поток — выключенный поток остаётся в задаче, но кадров не отправляет и долю линии не занимает. Хотя бы один поток должен отправляться.
- Отслеживание — как сервер делит поток на отслеживаемые потоки (см. Отслеживание).
Блок Доля линии на порту показывает сумму потоков, заданных в % линии, и для каждого порта-источника с известной скоростью — долю линии, которую займут все включённые потоки вместе с потоками в кадрах в секунду (по среднему размеру кадра). Если сумма потоков в % линии больше 100 %, задача не сохранится. Если на порту с учётом потоков в кадрах в секунду получается больше 100 % линии, порт не успеет отправить все кадры и скорости потоков упадут. Для потока в кадрах в секунду с размером кадра Минимальный долю линии заранее не посчитать.
Отслеживание
Сервер ведёт отдельную статистику (приём, потери, дубликаты, порядок, задержку) по каждому отслеживаемому потоку. Как поток делится на отслеживаемые потоки, задаётся у каждого потока в блоке Отслеживание на вкладке Потоки или флажком Отслеживание в редакторе поля на вкладке Пакет:
| Режим | Что считается одним отслеживаемым потоком |
|---|---|
| По потоку целиком | Весь поток. Режим по умолчанию |
| По полям | Каждое сочетание значений выбранных полей. Например, если адрес источника (256 значений) и порт источника (16 значений) находятся в разных группах, отслеживание по обоим полям даёт 4096 отслеживаемых потоков |
Режим По полям доступен, когда в шаблоне потока есть поле в паттерне Инкремент, Декремент, Список, Из источника или Из цели. Авто-поля и поля в паттернах Одно значение, Повторяемое случайное и Случайное из диапазона отслеживать нельзя: их значение не выводится из номера кадра. Если отслеживаемое поле перевести в такой паттерн, оно перестаёт отслеживаться. При переключении на По полям отмечаются все поля, которые можно отслеживать; лишние снимите в таблице, где для каждого поля показаны заголовок, режим и число значений.
Под таблицей показывается число отслеживаемых потоков. Для полей из источников и целей оно зависит от сетей каждого порта и уточняется при запуске. На один поток можно отслеживать до 16 777 216 отслеживаемых потоков; если их больше, задача не сохранится, а для полей из источников и целей не запустится. Если отслеживаемых потоков больше 1024, во время работы задачи сервер записывает худшие из них, а полная таблица по всем потокам доступна после остановки задачи.
Библиотека шаблонов
Шаблон можно сохранить в библиотеку (название до 128 символов и описание), чтобы использовать его в другой задаче. В библиотеке есть поиск по названию, описанию и заголовкам; шаблон можно открыть, обновить или удалить. Задача хранит свою копию шаблона: изменение или удаление шаблона в библиотеке задачи не затрагивает.
Статистика потоков
Статистика отслеживаемых потоков находится на дашборде Конструктор пакетов на вкладке Метрики задачи, в разделе Отслеживаемые потоки. Данные собирает сервер: если серверной записи в задаче нет или задача ещё не запускалась, панели пустые.
- Срез таблицы потоков — какие данные показаны: живой срез (обновляется раз в секунду), худшие потоки (во время работы задачи, если отслеживаемых потоков больше 1024: худшие по потерям и задержке, обновляются раз в 5 секунд) или итог задачи (все потоки после её остановки).
- Отслеживаемые потоки — сколько всего отслеживаемых потоков, сколько из них С потерями и сколько Замолчавших (отправлено больше нуля, принято ноль).
- Потоки по доле потерь — сколько отслеживаемых потоков попало в каждый диапазон доли потерь.
- Худшие потоки — до 100 потоков с потерями, дубликатами или переупорядоченными кадрами, худшие сверху.
- Все отслеживаемые потоки — первые 10 000 отслеживаемых потоков по доле потерь, по страницам. Таблица сортируется щелчком по заголовку столбца, значок фильтра в заголовке отбирает строки по значениям столбца.
Столбцы таблиц потоков:
| Столбец | Что показывает |
|---|---|
| Поток | Имя потока |
| Порт | Номер порта-источника. Порты всех клиентских записей задачи нумеруются по порядку с 0 |
| № потока | Номер отслеживаемого потока внутри потока |
| Поля | Значения отслеживаемых полей этого отслеживаемого потока, например Source Address: 192.168.1.10, Source Port: 49152. Прочерк — поток отслеживается целиком |
| Передано, Принято | Отправлено и принято кадров |
| Потеряно, Потери, % | В итоге задачи — отправленные кадры, которые не были приняты (дубликаты не засчитываются как принятые); во время работы — пропуски в номерах принятых кадров. Доля — от ожидаемых кадров |
| Дубликаты | Кадры, принятые повторно |
| Переупорядочено | Кадры, пришедшие позже кадра с бо́льшим номером |
| Задержка мин, сред, макс, мкс | Задержка по кадрам данных: от отправки до приёма. Пусто, если сервер не снял ни одного замера: клиент работает на другом агенте или кадры потока не дошли |
| Джиттер, мкс | Среднее изменение задержки между соседними кадрами потока |
Задержка и зонды
Задержка в таблице отслеживаемых потоков измеряется по кадрам данных: сервер сравнивает время отправки из сигнатуры с временем приёма. Её можно измерить, только если клиент и сервер работают на одном агенте; иначе столбцы задержки пустые. Пока нагрузка на порт далека от скорости линии, очереди тестера в этой задержке нет. При нагрузке, близкой к скорости линии, она включает время ожидания кадра в очереди самого тестера.
Задержку самого DUT при любой нагрузке, вплоть до скорости линии, измеряют зонды. Зонд — копия кадра одного из потоков, которую порт отправляет в случайный момент. Сетевая карта ставит на зонд метку времени выхода из порта, поэтому очередь тестера в результат не входит. Зонды идут один на 1 000 кадров данных, но не больше 20 000 в секунду на порт, и не входят в счётчики потоков: TX и RX в таблице учитывают только кадры данных. Результат показывает раздел Задержка DUT по зондам на дашборде: среднее, минимум, p99, p99.9, максимум и число зондов, по которым она измерена, а также задержка по каждому потоку и её изменение во времени.
Зонды работают, когда выполнены все условия:
- порт-источник находится на сетевой карте NVIDIA ConnectX-6 Dx, которая ставит метку времени выхода из порта;
- клиент и сервер работают на одном агенте;
- порт отправляет не меньше 1 000 кадров в секунду.
Если зондов нет, раздел Задержка DUT по зондам пуст, а задержку DUT показывают столбцы задержки по кадрам данных: пока тестер далёк от предела порта, его очереди в них нет.
Зонды дают выборку: перцентили по десяткам тысяч зондов точны, но единичный выброс задержки одного кадра зонд может не застать. Такой выброс видно в столбце Задержка макс по кадрам данных.
Метрики
Отправленный трафик отображается в общих метриках передачи: пакеты, байты, L1-биты, загрузка линии и отбрасывания на передаче (см. Общие метрики (Total)).
На вкладке Метрики задачи с конструктором пакетов доступен дашборд Конструктор пакетов: передача и приём по потокам, потери, дубликаты, порядок, задержка по кадрам данных и по зондам, статистика отслеживаемых потоков со значениями их полей (см. Статистика потоков), а также счётчики сервера: кадры без сигнатуры и кадры, отброшенные сетевой картой. Без серверной записи на дашборде есть только передача по потокам.
Ограничения
- В задаче с конструктором пакетов могут быть только клиентские и серверные записи конструктора пакетов; для других плагинов создайте отдельную задачу.
- Сервер принимает и считает кадры, но не отвечает на них: состояния TCP-соединений нет. TCP-заголовок формируется как обычный заголовок кадра.
- Серверу нужна хотя бы одна клиентская запись в той же задаче. В задаче с сервером у всех клиентских записей вместе может быть не больше 256 портов-источников, а самый маленький кадр каждого включённого потока должен вмещать заголовки, 16 байт сигнатуры и FCS.
- Задержка измеряется, только если клиент и сервер работают на одном агенте. Задержка DUT по зондам требует сетевой карты NVIDIA ConnectX-6 Dx на порту-источнике и не меньше 1 000 кадров в секунду на порт.
- Сети доступа (access-группы) в качестве источников и целей не поддерживаются. Профили из библиотеки «Сетевые туннели» не применяются: GRE, VXLAN, MPLS и IP-in-IP добавляются как заголовки стека.
- Если поле MAC берёт значение из цели, у сети источника должен быть шлюз. Если MAC шлюза не задан в сети, порт определяет его по ARP/ND при запуске, и задача не стартует, пока шлюз не ответит.
- Каждому порту-источнику нужно хотя бы одно ядро CPU: агент делит ядра между портами-источниками. Для кадров больше 1518 байт агент включает jumbo-кадры; если на всех ядрах не хватит hugepages, задача не запустится. В этом случае задайте 4–8 ядер в Расширенных параметрах.
- Шаблон: до 32 заголовков, до 16 групп, до 65 536 значений в одном списке и до 2^20 значений во всём шаблоне, до 2^62 уникальных кадров. Значения из нескольких диапазонов адресов задачи ограничены 65 536.
- Запись: до 32 потоков, до 16 777 216 отслеживаемых потоков на поток.
- Превью показывает до 1000 кадров за раз, выгрузка pcap из интерфейса содержит первые 1000 кадров.
- Задачу можно запустить только на агентах, версия которых поддерживает конструктор пакетов. Для нескольких включённых потоков и для серверной записи нужна версия агента, которая поддерживает потоки и приём, на всех агентах задачи.