как гость QEMU может отправлять пакеты на сетевую карту хоста?

Я пытаюсь протестировать программу XDP, но тестовая среда была предоставлена ​​​​клиентом и состоит из одного сервера и гостя qemu, работающего на нем, и действует как генератор трафика (с использованием scapy или DPDK). и чтобы этот тест прошел успешно, пакеты от гостя должны поступать/вводиться в драйвер сетевой карты (XDP, работающий в собственном режиме) хоста. есть ли какие-либо конфигурации / хаки, которые могут заставить трафик идти от гостя к драйверу хоста?

изменить: некоторые моменты должны быть очищены, как предложил @vipin,

  • на хосте сетевая карта подключена к virbr0 на ядре.
  • XDP работает на физическом сетевом адаптере.
  • я использую bpf_redirect_map для перенаправления, так как мы все еще находимся на простом этапе.

в любом случае, у меня есть обходной путь — просто добавить физический маршрутизатор в лабораторную установку, и этого достаточно для этого этапа теста.


person walid barakat    schedule 03.06.2021    source источник
comment
пожалуйста, обновите вопрос со следующей информацией: 1) что такое интерфейсное соединение между гостем и хостом? 2) на хосте сетевой адаптер подключен к virbr0 на ядре или Vswitch, как DPDK-OVS? 3) где работает XDP на порту qemu, мостовом порту или физическом сетевом адаптере? 4) текущий фрагмент кода XDP? 5) как вы передаете идентификатор физической сетевой карты для XDP_redirect?   -  person Vipin Varghese    schedule 03.06.2021
comment
я связался с клиентом, и он настроил хост и гостя в разных подсетях и предоставил внешний маршрутизатор для маршрутизации трафика между ними, к сожалению, я не могу предоставить какой-либо текущий код XDP из-за моего соглашения с ним, но спасибо за ваш комментарий я можете проверить эту информацию для дальнейших случаев. и я обновлю вопрос, если у меня будет шанс на благо любого достичь этого вопроса   -  person walid barakat    schedule 03.06.2021


Ответы (1)


XDP (Express Data Path), поддерживаемый в Linux, предназначен для стороны RX, а для TX были исправления, но они не были интегрированы. Согласно текущему обновлению, XDP-eBPF находится на физическом сетевом адаптере. Таким образом, обрабатывается весь пакет RX на физическом сетевом адаптере.

Но согласно вопросу поделился packets from the guest should arrive/be injected to the NIC driver ( XDP working in native mode ) of the host.. Если нужно запустить логику для трафика, поступающего из ОС GUEST, XDP должен быть загружен на интерфейс emulator or TAP or Bridge. Это позволит перенаправлять пакеты на основе идентификатора сетевого адаптера ядра на физический сетевой адаптер.

person Vipin Varghese    schedule 04.06.2021