如何使用 dpdk 向另一台服务器发送数据包?
How to send packet another server using dpdk?
我的问题是如何使用 dpdk 从我的计算机向另一个物理服务器发送数据包。
我已经看过示例代码 rxtx_callbacks 并且我想使用此代码。
但是没有地方输入特定的ip和端口到另一台服务器。
如何使用具有指定 ip 和端口的 dpdk 将数据包发送到服务器上的位置?
以及如何使用 dpdk 接收数据包?
l3fwd 是正确的还是另一个概念?
帮助我
DPDK 是一个开源库,它允许绕过内核和 ETH-IP-TCP 堆栈,直接在 NIC 或其他自定义硬件上从用户空间发送数据包。有多个示例和项目,如 pktgen
和 TREX
用于生成用户定义的数据包(所需的 MAC 地址、VLAN、IP 和 TCP-UDP)有效载荷。
查询
- 如何使用具有指定 ip 和端口的 dpdk 将数据包发送到服务器上的位置?
[答]利用DPDK PKTGEN as an easy way to generate. Other examples are pcap based burst replay and trex.
但生成和发送流量的最简单方法是使用 scapy
和 DPDK 示例应用程序 skeleton
。以下是实现相同目标所需的步骤。
- 将 DPDK 安装到所需平台(最好是 Linux)
- 构建在路径
[dpdk root folder]/examples/skeleton
中找到的 DPDK 示例框架
- 将物理 NIC(如果流量需要从服务器发送出去)与 igb_uio、uio_pci_generic 或 vfio-pci
等用户空间驱动程序绑定
- 使用选项 '-l 1 --vdev=net_tap0,iface=scapyEth' 启动应用程序。这将创建名称为 scapyEth.
的 TAP 接口
- 现在使用 scapy 创建包含所需 MAC、VLAN、IP 和端口号的自定义数据包。
以及如何使用 dpdk 接收数据包?
[Answer] 在接收方 运行 DPDK 应用程序,如 testpmd、l2fwd 或骨架,如果数据包需要由用户空间 DPDK 应用程序或任何 Linux 套接字接收 UDP 数据包。
注意:检查是否收到数据包的最简单方法是运行 tcpudmp。示例 tcpdump -eni eth1 -Q in
(其中 eth1 是接收服务器上的物理接口。
注:由于要求how i can send packets to places on a server
不清楚
- 使用 DPDK 可以使用专用 NIC、FPGA 和无线设备通过物理接口发送数据包
- DPDK 可以使用 memif 接口在应用程序之间发送数据包
- DPDK 可以使用 virtio 和 vhost 在 VM 之间发送数据包
- DPDK 可以向内核发送和接收数据包,其中内核路由堆栈和 ARP table 决定哪个内核接口将转发数据包。
我的问题是如何使用 dpdk 从我的计算机向另一个物理服务器发送数据包。
我已经看过示例代码 rxtx_callbacks 并且我想使用此代码。 但是没有地方输入特定的ip和端口到另一台服务器。
如何使用具有指定 ip 和端口的 dpdk 将数据包发送到服务器上的位置? 以及如何使用 dpdk 接收数据包?
l3fwd 是正确的还是另一个概念?
帮助我
DPDK 是一个开源库,它允许绕过内核和 ETH-IP-TCP 堆栈,直接在 NIC 或其他自定义硬件上从用户空间发送数据包。有多个示例和项目,如 pktgen
和 TREX
用于生成用户定义的数据包(所需的 MAC 地址、VLAN、IP 和 TCP-UDP)有效载荷。
查询
- 如何使用具有指定 ip 和端口的 dpdk 将数据包发送到服务器上的位置?
[答]利用DPDK PKTGEN as an easy way to generate. Other examples are pcap based burst replay and trex.
但生成和发送流量的最简单方法是使用 scapy
和 DPDK 示例应用程序 skeleton
。以下是实现相同目标所需的步骤。
- 将 DPDK 安装到所需平台(最好是 Linux)
- 构建在路径
[dpdk root folder]/examples/skeleton
中找到的 DPDK 示例框架
- 将物理 NIC(如果流量需要从服务器发送出去)与 igb_uio、uio_pci_generic 或 vfio-pci 等用户空间驱动程序绑定
- 使用选项 '-l 1 --vdev=net_tap0,iface=scapyEth' 启动应用程序。这将创建名称为 scapyEth. 的 TAP 接口
- 现在使用 scapy 创建包含所需 MAC、VLAN、IP 和端口号的自定义数据包。
以及如何使用 dpdk 接收数据包?
[Answer] 在接收方 运行 DPDK 应用程序,如 testpmd、l2fwd 或骨架,如果数据包需要由用户空间 DPDK 应用程序或任何 Linux 套接字接收 UDP 数据包。
注意:检查是否收到数据包的最简单方法是运行 tcpudmp。示例 tcpdump -eni eth1 -Q in
(其中 eth1 是接收服务器上的物理接口。
注:由于要求how i can send packets to places on a server
不清楚
- 使用 DPDK 可以使用专用 NIC、FPGA 和无线设备通过物理接口发送数据包
- DPDK 可以使用 memif 接口在应用程序之间发送数据包
- DPDK 可以使用 virtio 和 vhost 在 VM 之间发送数据包
- DPDK 可以向内核发送和接收数据包,其中内核路由堆栈和 ARP table 决定哪个内核接口将转发数据包。