我正在开展像" openvswitch"这样的项目。 ---一个与之接口的linux内核模块 各种网络接口卡。
您可以将某些网络接口(例如eth0,eth1)绑定到模块,然后从接口接收的数据包将由内核模块处理(它可以修改数据包标头并从另一个绑定接口发送数据包)。
在虚拟机环境中,我可以轻松地进行开发工作(内核空间编程经常使机器崩溃),但我几乎无法进行测试工作。这很困难 将特定数据包发送到vm的特定接口。这有什么简单的方法吗?
答案 0 :(得分:0)
在虚拟机管理程序上使用流量生成工具(如Scapy)将流量发送到连接到VM的虚拟NIC。使用qemu / libvirt,这些接口通常会显示为“vnet0”,“vnet1”等。
不要使用网桥,而是直接将流量发送到vnic。 Linux网桥擅长转发IP流量,但不会让每个以太网帧都经过不加修改。