1

我正在做一个像“openvswitch”这样的项目——一个与各种网络接口卡接口的linux内核模块。

您可以将一些网络接口(如eth0,eth1)绑定到模块,然后从接口接收的数据包将由内核模块处理(它可能会修改数据包头并从另一个绑定接口发送数据包)。

在虚拟机环境中,我可以轻松地进行开发工作(内核空间编程经常使机器崩溃),但我几乎无法进行测试工作。很难将特定的数据包发送到虚拟机的特定接口。有什么简单的方法吗?

4

1 回答 1

0

在虚拟机管理程序上使用流量生成工具(如Scapy)将流量发送到连接到 VM 的虚拟 NIC。对于 qemu/libvirt,这些接口通常以“vnet0”、“vnet1”等形式出现。

不要使用网桥,而是将流量直接发送到 vnic。Linux 网桥擅长转发 IP 流量,但不会让每个以太网帧都未经修改地通过。

于 2014-05-20T19:10:48.637 回答