![当我重新启动虚拟机时,KVM 虚拟机断开连接](https://linux22.com/image/220104/%E5%BD%93%E6%88%91%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%97%B6%EF%BC%8CKVM%20%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5.png)
因此,我在 KVM 主机中设置了一个 VLAN,其中我将防火墙 WAN 端口桥接到物理 eth 接口,然后将 LAN 端口桥接到内部网桥,该内部网桥具有 vlan 子接口,这些子接口本身是虚拟机所在网桥的从属接口连接的。防火墙 LAN 端口已标记 VLAN。我希望虚拟机能够连接到正确的 VLAN,而不必在虚拟机内标记其接口,因此需要下面的中间桥。
安装程序的工作原理如下:
+---------+ +--------+
| Bridge | | |
+----------+ +---------+ +--------+-+------------+ | br10 +---+ VM1 |
| | | | | | | VLAN 10 +------+ | | |
+----------+ | | | | | +-+------------+ +---------+ +--------+
|ethernet +-----+ Bridge +----+FIREWALL +----+ Bridge |
+----------+ | | | | | Int +-+------------+ +---------+ +--------+
| | | | | | | VLAN 20 +------+ Bridge | | |
+----------+ +---------+ +--------+-+------------+ | br20 +---+ VM2 |
| | | |
+---------+ +--------+
到目前为止一切顺利,直到我重新启动防火墙为止。连接到 VLAN 网桥的 vnet tun 接口只是从网桥断开连接(例如,如果 VM2 具有 vnet3 并连接到 br20,则一旦我重新启动防火墙,vnet3 就会从网桥 br20 中消失)。
当然,我可以通过用类似的东西来识别它们来重新连接它们
for vm in $(virsh list --name); do echo "$vm: $(virsh dumpxml $vm | grep vnet)"; done
然后将它们连接起来
ip link set vnet3 master br20
但我很想知道为什么我的虚拟机接口与网桥断开连接,也许找到一种方法让它们在防火墙重新启动后“保持”状态。
任何人都知道如何实现这一目标?