我正在尝试测试XDP程序,但测试环境是由客户端提供的,由一台服务器和运行在其上的qemu来宾组成,并充当流量生成器(使用scapy或DPDK(。为了成功运行此测试,来自客户的数据包应该到达/注入到主机的NIC驱动程序(在本机模式下工作的XDP(。是否有任何配置/破解可以使流量从来宾到主机驱动程序?
编辑:按照@vipin的建议,需要清除一些点
- 在主机上,NIC连接到内核上的virbr0
- XDP正在物理NIC上运行
- 我使用bpf重定向映射进行重定向,因为我们仍处于简单阶段
无论如何,我的一个解决方案就是在实验室设置中添加一个物理路由器,这就足够进行这个阶段的测试了。
Linux支持的XDP(Express Data Path(是针对RX端的,有针对TX的补丁,但没有集成。根据当前更新,XDP eBPF位于物理NIC上。因此,物理NIC上的所有RX数据包都被处理。
但根据packets from the guest should arrive/be injected to the NIC driver ( XDP working in native mode ) of the host.
分享的问题。如果需要为来自GUEST OS的流量运行逻辑,则必须将XDP加载到emulator or TAP or Bridge
接口。这将允许基于内核NIC id将数据包重定向到物理NIC。