Как настроить DPDK, не теряя SSH-соединение?

Как настроить DPDK, не теряя SSH-соединение?

Похожий вопрос уже задавался на этом сайте [1], но, похоже, он не отвечает ни на что, что имеет практическое значение для моей проблемы. Поэтому я решил задать тот же вопрос для своей среды.

Я использую сервер Linode Ubuntu с одной сетевой картой и вчера попытался запустить DPDK, он установил драйвер ядра и связал сетевую карту, а затем отключил меня от SSH. С тех пор я не смог подключиться снова, и я продолжил и перезапустил сервер, я смог снова войти на сервер.

Мое сетевое устройство, как показано в выводе статуса DPDK,

 dpdk-devbind -s

Network devices using kernel driver
===================================
0000:00:04.0 'Virtio network device 1000' if=eth0 drv=virtio-pci unused=vfio-pci *Active*

[1]Привязка DPDK к сетевой карте без потери соединения

решение1

Поскольку eth0это единственный интерфейс по умолчанию, текущий ssh ​​работает через него через ядро. Следовательно, удаление интерфейса из ядра и привязка к DPDk приведет к потере соединения.

Как указано в ответе, https://superuser.com/questions/1204835/binding-dpdk-to-a-nic-without-loosing-connection/1546752#1546752есть возможность выбора

  1. Создать виртуальный TAP-интерфейс внутри виртуальной машины
  2. Создать код eBPF-XDP, который перенаправляет нужные пакеты на интерфейс TAP через XDP-REDIRECT, в то время как остальная часть ядра пакета XDP-PASS
  3. Использование PCAP-PMD и eal-arg--vdev=net_pcap0,iface=[virtual tap interface]

другой вариант -

  1. запустите приложение DPDK с помощью--vdev=net_tap0,iface=[DPDK tap interface name]
  2. затем загрузите eBPF-XDP, который перенаправляет нужный пакет на интерфейс DPDK-TAP.

таким образом, не теряя соединения, можно использовать трафик, поступающий от virtio.

примечание: ядро ​​должно быть собрано и поддерживать eBPF-XDP для virtio.

[РЕДАКТИРОВАТЬ-1]

  1. код ссылки: измените https://github.com/vipinpv85/DPDK-DDoS/blob/master/test/ebpf/l2_port_fwd.cв соответствии с потребностями.
  2. Как собрать: `https://github.com/vipinpv85/DPDK-DDoS/blob/master/README.md``

Связанный контент