当我重新启动虚拟机时,KVM 虚拟机断开连接

当我重新启动虚拟机时,KVM 虚拟机断开连接

因此,我在 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

但我很想知道为什么我的虚拟机接口与网桥断开连接,也许找到一种方法让它们在防火墙重新启动后“保持”状态。

任何人都知道如何实现这一目标?

相关内容