有没有一种简单的方法可以在两个虚拟机之间路由网络流量,一个在 virtualbox 中,另一个在 KVM/libvirt 中?
在 KVM World 中,我可以看到virbr
接口(虚拟桥?)并且它们已分配 IP:
virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether fe:32:01:44:a9:c5 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever
但 Virtualbox 接口没有分配 IP
vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
虚拟机的 IP:
- KVM_虚拟机: 192.168.122.101
- VBox_虚拟机: 192.168.56.101
您认为有哪些选择?
答案1
是的,virbr
接口在 KVM 术语中是桥梁。如果您不知道,您可以使用实用程序查看有关桥梁的详细信息brctl
(例如# brctl show vibr0
:)
我看到的第一件事是vboxet0
处于该DOWN
状态,因此您可能只需要为其分配一个 IP 并将其带上UP
。 如果vboxet0
(我不太了解 Virtualbox)是桥接接口,请确保应该位于该桥接网络上的 VM 是该桥接的成员。
此外,假设 192.168.122.101 和 192.168.56.101 的网络掩码均为 /24,那么您将需要在其中某处安装一个路由器,该路由器的一个接口位于 192.168.122.0/24 网络中,另一个接口位于 192.168.56.0/24 网络中。然后,您可以通过路由器设置到任一网络的静态路由,或者将路由器设为每个子网的默认网关。
您可能能够使用虚拟机管理程序上的一些 DNAT 诡计来实现相同的目的,但使用桥接器就没有什么意义了。我只需为虚拟机分配一个 NAT 接口,让虚拟机管理程序处理其余的事情。