我配置了与客户机相连的桥接器,以便与外界通信。在客户机中,我配置了网关以指示桥接器 IP。(目前使用 DHCP 实现此目的)
eth0 <--> 桥接 <--> 客户机
它确实有效。但是当我迁移(实时迁移)时,问题就出现了。客户网络无法工作,因为客户中的网关没有改变,并且客户一致地指示源主机节点的网关桥。如果我可以重新启动客户机,这将很容易(编辑 libvrit xml 文件或配置 DHCP)。但我想进行实时迁移。而且我不能使用 ssh 在客户机中运行命令。因为我不知道客户的用户名和密码。当我进行实时迁移时,如何自动将客户的网关更改为适当的网关?我认为 open vswitch 可以解决这个问题。但看起来 open vswitch 只能更改路由而不能更改客户的网关。问题仍然存在。如果有一种方法可以在没有 ssh 的情况下在客户机中运行命令,那也是合适的。如果我可以做到这一点,我可以强制客户的 DHCP 客户端发出 DHCPDISCOVERY 信号。但遗憾的是,这种方式仅在 vmware(VIX api)中可用。我在 kvm 中找不到相应的功能。
添加:网桥具有实际 IP,网桥 IP 是主机中来宾的网关。因此,一个子网中有多个网关,每个主机每个子网都有一个网关。我已将每个主机配置为处理其来宾的 NAT。来宾公共 IP 由其主机处理。我使用这种方法的原因是避免“单点故障”并将 NAT 工作负载分配给每个主机。我是否必须抛弃上述结构才能实现实时迁移?这是构建虚拟机集群的糟糕方法吗?
答案1
网桥(主机)IP 是否是此子网上的实际网关?如果不是,则无需使用网桥 IP 作为虚拟机中的网关,而是使用子网网关。将网桥视为哑交换机或集线器,只是虚拟机插入的逻辑对象,它会将其流量传递到外面的真实网络。这意味着虚拟机与物理主机一样在子网上,因此它应该使用相同的网络基础设施定义 - 网关、DNS、DHCP......一切都与物理主机相同