为跨多个主机的 KVM 来宾创建虚拟网络

Sha*_*Sha 6 networking ubuntu virtual-machines kvm-virtualization ubuntu-14.04

我有 5 台运行 Ubuntu 14.04 的物理机,它们都在一个网络中。这些都有静态 IP 地址。每台机器都有 1 到 4 个通过 KVM/QEMU 运行 Ubuntu 14.04 的虚拟机。我可以使用 DHCP 为物理网络上的所有虚拟机获取非静态地址。但对于我的分布式软件,我需要所有虚拟机在虚拟网络中拥有静态 IP 地址(因为我无法在物理网络上获得更多地址)。然而,这个虚拟网络应该跨越所有虚拟机上的所有来宾。此外,其中一台虚拟机还应该在物理网络上拥有静态地址。

我已经设法在单个主机中为所有虚拟机创建一个虚拟网络,因此这些虚拟机可以在那里拥有静态 IP,但如果我为每个主机执行此操作,则它将无法工作。我还在其中一台虚拟机的物理网络上为静态 IP 创建了一个桥接接口。

这是我想要的方案:

123.45.144.0/28 (physical network)
192.168.0.0/16 (virtual network for all the vms)

123.45.147.3 (host)
    192.168.122.101, 123.45.147.49 (vm)
    192.168.122.102 (vm)
    192.168.122.103 (vm)
    192.168.122.104 (vm)

123.45.147.4 (host)
    192.168.122.105 (vm)

123.45.147.5 (host)
    192.168.122.106 (vm)

123.45.147.6 (host)
    192.168.122.107 (vm)
    192.168.122.108 (vm)

123.45.147.7 (host)
    192.168.122.109 (vm)
    192.168.122.110 (vm)
Run Code Online (Sandbox Code Playgroud)

以下是 的输出ifconfig

主持人之一:

eth0      Link encap:Ethernet  HWaddr 5c:f9:dd:75:07:72  
          inet addr:123.45.147.3  Bcast:123.45.151.255  Mask:255.255.248.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

virbr0    Link encap:Ethernet  HWaddr 52:54:00:bd:2b:39  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
Run Code Online (Sandbox Code Playgroud)

具有桥接接口 ( eth1) 和虚拟网络接口 ( eth0)的虚拟机

eth0      Link encap:Ethernet  HWaddr 52:54:00:59:2d:c8  
          inet addr:192.168.122.101  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth1      Link encap:Ethernet  HWaddr 52:54:00:4d:d0:59  
          inet addr:123.45.147.49  Bcast:123.45.151.255  Mask:255.255.248.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
Run Code Online (Sandbox Code Playgroud)

经过几个小时的谷歌搜索,我无法找到我所面临的问题的类似设置。由于我对网络的熟悉程度相当低,因此我将不胜感激任何解决方案。

Bil*_*hor 0

如果系统上有一个单独的 ethX 接口并连接到物理网络,请在该接口上创建第二个网桥。然后,您可以在该虚拟网桥上配置物理地址。

可以在虚拟机上配置静态地址。这使得保持稳定的地址空间变得更简单。