You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Scapy向DPDK L3FWD应用发流无接收问题求助

DPDK L3FWD无法接收Scapy流量问题解决方案

根因定位

你的连通性验证逻辑存在错误:当Host B的网卡绑定到vfio-pci驱动后,内核原生网络栈就不再接管该网卡,此时用tcpdump抓包只能抓到内核管理的网卡流量,你能抓到包说明你发流的目标口并非绑定了DPDK驱动的网口,或网卡绑定操作未生效。

分步排查&修复

1. 确认网卡绑定状态

在Host B执行dpdk-devbind.py --status,检查两块XXV710网卡的驱动是否为vfio-pci。如果仍显示为i40e内核驱动,需要先执行ifconfig 对应网卡名 down,再重新绑定vfio-pci驱动。

2. 确认物理口对应关系

你启动L3FWD时-p 0x3对应启用的两个端口,分别对应PCI地址0000:18:00.0和0000:18:00.1,需确认Host A发流的对端物理口就是这两个PCI地址对应的网口,避免插错物理口。

3. 修正Scapy发流参数

当前你发的流量不符合L3FWD默认路由规则,L3FWD默认仅处理目的IP匹配以下网段的流量,非匹配流量会直接丢弃,不会产生日志:

  • IPv4:198.18.0.0/24(端口0转发)、198.18.1.0/24(端口1转发)
  • IPv6:2001:200::/64、2001:200:0:1::/64
    同时二层目的MAC必须填DPDK对应端口的实际MAC,不能使用广播或错误MAC。正确发流示例如下:
# dst替换为Host B DPDK端口0的实际MAC地址
sendp(Ether(dst="xx:xx:xx:xx:xx:xx")/IP(dst="198.18.0.10", src="192.168.1.10")/ICMP(), iface="enp25s0f0", count=1000)

4. 开启L3FWD统计验证

启动L3FWD时增加--print-stats 1参数,每秒打印一次收发包统计,可直观确认是否收到流量:

./dpdk-l3fwd -l 1,2 -n 4 -- -p 0x3 --config="(0,0,1),(1,0,2)" --print-stats 1

额外优化建议

你的启动日志显示EAL: Using IOMMU type 8 (No-IOMMU),说明未开启IOMMU,会影响vfio-pci驱动运行稳定性。建议在Host B的grub配置中添加iommu=pt intel_iommu=on(AMD平台替换为amd_iommu=on),更新grub后重启主机,再重新绑定网卡启动L3FWD。


内容的提问来源于stack exchange,提问作者Vinay Gowda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:15:02