首页 > 解决方案 > dpdk 接口上的 pktgen 流量活动

问题描述

我有两台物理机(主机 1 和主机 2),每台都有两个 DPDK 配置的 10G Intel NIC(端口 0 和端口 1)。两台机器的端口0和端口1直接相连。在主机 2 上,l3fwd 正在运行以启用 dpdk NIC 之间的流量转发。在主机 1 上,pktgen 作为数据包生成器运行。

当我启动 pktgen 时,两个端口都开始接收流量(见附件),我无法弄清楚从哪里来。即使在通过“停止”或更改 Mac 地址和 IP 地址后,它也会继续发生。

请指教。在此处输入图像描述

标签: dpdk

解决方案


如果默认启用 LLDP 协议(​​Intel X710),一旦 DPDK 应用程序启动,您将收到发现数据包。我相信这就是您在 pkt-gen 上看到的虚假数据包。

我修改了主 DPDK 应用程序以调用 rte_pdump_init 并在另一个控制台中运行 dpdk-pdump 实用程序。

# tcpdump -r /tmp/rx.pcap
reading from file /tmp/rx.pcap, link-type EN10MB (Ethernet)
18:40:29.405996 LLDP, length 69
18:40:30.402803 LLDP, length 69
18:40:31.399615 LLDP, length 69
18:40:32.396427 LLDP, length 69

DPDK Pktgen 还允许在运行时从所需端口或多个端口捕获数据包。为了达到同样的目的,请遵循以下步骤

  1. 以交互模式启动 Pktgen 工具
  2. 启用捕获选项执行 enable [portlist] capture
  3. 接口上接收到的所有数据包都将被捕获,并带有唯一的文件名(附加端口号)
  4. 要禁用/停止捕获,请执行 disable [portlist] capture

使用上述任何一种方法,我们都可以捕获进来的默认数据包,在我的 X710 系统中,它是从其他设备发送的 LLDP 数据包。我们可以通过以下方式禁用 LLDP 数据包ethtool -set-priv-flags <interface name> disable-fw-lldp on


推荐阅读