使用Netcat与DPDK收发数据时,无法接收转发数据包的问题排查
问题分析与修正方案
核心错误:误解DPDK Skeleton示例的功能
Skeleton示例的唯一作用是转发物理PCI网卡端口接收的以太网数据包,它完全不处理Unix套接字的数据。你看到的三个Unix套接字是DPDK框架内部用于进程通信、资源管理的工具,并非用户数据的转发通道。
具体操作错误点
- 你用
nc -l -p 108476 < /dev/random向DPDK的内部监听套接字发送数据,但Skeleton程序根本不会从这个套接字读取任何数据,自然无法触发转发逻辑。 - 监听110213端口的操作也无效:这个已连接的DGRAM套接字是DPDK内部组件间通信使用的,不是对外的转发输出端口,不会输出任何用户流量。
正确的测试方法
要验证Skeleton的转发功能,需要利用它探测到的两个物理PCI网卡:
- 用网线将两个网卡直连,或者都接入同一交换机。
- 在其中一个网卡所在的网络环境(比如另一台机器)发送测试流量(例如
ping目标网段、用tcpreplay发送数据包)。 - 在另一个网卡连接的设备上监听,就能收到Skeleton转发的数据包。
内容的提问来源于stack exchange,提问作者intrigued_66
相关产品推荐
相关产品推荐

