我有两个虚拟机(基于 Linux 的虚拟机)在 UBUNTU/QEMU KVM 上运行。我正在研究一个简单的网络模型,其中虚拟机具有公共地址并需要与外界通信,外界也应该能够与虚拟机通信。我这样做了
- 创建了 ABCD/16(B 类地址)的网桥
- eth2 是桥接器的一部分,具有 ABCE /32 主机地址
- VM 的接口(通过 TAP)具有 ABCF / 16 地址
eth2 和 VM 接口都是桥接器的一部分。但是现在,我无法从外部 ping 这些地址。如果我从桥接器中移除 eth2,我就可以 ping eth2。
请告诉我发生了什么事。
客人
答案1
您需要一些东西来告诉外界将 AB/16 路由到您的网桥,这涉及某种路由器,可能还有某种虚拟路由器。
我不确定学习这种路由是否是您的目标,或者仅仅让虚拟机桥接是您的目标。
如果您只想桥接虚拟机,那么将它们桥接到与主机相同的网络上。
例如
$ sudo brctl show br0
bridge name bridge id STP enabled interfaces
br0 8000.001fd085d98b no eth0
eth2
tap0
tap0 已添加到我的 br0 桥。eth0 和 eth2 是我的 VM 主机中的物理网卡。
现在,当我启动 KVM 时,我告诉它使用 tap,它将使用 tap0。
sudo kvm -m 1024 -smp 2 ... -net tap ...
它将位于“我的 LAN 上”。这是我能建议的最简单的方法。