我想知道除了使用 Linux 桥来连接两个虚拟机的接口之外是否还有其他方法?
由于我试图在虚拟机中运行私有生成树实现...连接两个虚拟机的底层 Linux 桥正在丢弃 BPDU。
VirtualBox 通过提供内部网络选项解决了该问题。
如果我使用 KVM,是否有类似的选项?
更新-01:启用 STP 最终会创建一个包含 3 个桥接器(2 个虚拟机和 1 个连接两个虚拟机的 Linux 桥接器)而不是 2 个桥接器(2 个虚拟机)的拓扑。
答案1
似乎您可以-netdev socket
在这里使用 QEMU 的选项,可能 UDP 版本更适合。
也-netdev vde
可以工作,尽管更复杂并且需要配置 VDE 交换机守护进程。
但无论如何,我都会尝试解决 Linux 桥接的问题,启用 STP 选项,正如 @Martin 所建议的那样。这是一个简单且非常常见的设置。
答案2
您可以尝试使用 macvtap 驱动程序。请注意,这确实有一些限制 - 请务必阅读有关它的 libvirt 文档。
答案3
答案4
建议使用 TAP 设备的人是正确的,但您还需要其他东西:
首先,创建一个veth 对。这是一对虚拟接口,每个接口只是将接收到的任何流量传递给另一个接口。
接下来,通过 macvtap 将两台虚拟机中的一台连接到对中的一个 veth 接口,并将另一台虚拟机连接到另一个 veth 接口。
最后,发送一些流量。