我应该如何配置具有多个 IP 的接口以供 Xen 使用?

我应该如何配置具有多个 IP 的接口以供 Xen 使用?

我有一台服务器,它分配了多个 IP。我想将其设置为 Xen 虚拟机管理程序,以便每个 VM 都有自己的专用 IP。我现在设置多个 IP 的方式是:

#IP addresses are examples, actual server has public IPs
auto eth0
iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1
    network 192.168.1.0

auto eth0:0
iface eth0:0 inet static
    address 192.168.1.11
    netmask 255.255.255.0

auto eth0:1
iface eth0:1 inet static
    address 192.168.1.12
    netmask 255.255.255.0

我尝试了多种桥接方法,但说实话,我有点不抱希望自己找到解决方案了。我怎样才能让 Xen 为每个域使用一个特定的 IP?

答案1

每个虚拟机的 IP 地址都应在虚拟机本身中配置,而不是在主机中配置。

它有助于描绘每个虚拟机和主机及其自己的接口,但是只有主机才有从中出来的物理电缆,因此客户虚拟机接口需要桥接到主机接口。

您可以在 /etc/networks/interfaces 文件中创建网桥,如下所示:

auto lo br0 eth0

iface lo inet loopback

iface br0 inet static
        bridge_ports eth0
        address 192.168.1.10
        netmask 255.255.255.0
        gateway 192.168.1.1

这将在网络堆栈启动时(例如在引导时)创建一个新的网桥,并将您的接口添加到其中,并为网桥提供主机的 IP 地址。您可以在此处看到网桥:

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.60a4ecf28d84       no              eth0

您可以将 br0 接口视为其包含的 eth0 接口。

然后在客户机配置文件中,你会看到如下一行:

vif = ['bridge=br0, mac=00:16:3E:12:16:19']

这就是说,“给这个虚拟机一个虚拟接口并将其添加到 br0 桥,并给它以下 mac”。

请注意,这里不需要设置 MAC 地址,但我更喜欢这样,这样我就可以使用 DHCP 为客户机分配静态 IP 地址 - 这样我就不需要对主机(和 DHCP 服务器,在我的情况下是 VM 本身)之外的任何 IP 地址进行硬编码。

然后在客户机中,你只需像配置任何其他 Linux 机器一样进行配置:

auto eth0
iface eth0 inet static
    address 192.168.1.11
    netmask 255.255.255.0
    gateway 192.168.1.1

请注意,这是在客人机器网络配置。

启动虚拟机时,您会看到网桥现在有两个接口:

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.60a4ecf28d84       no              eth0
                                                        vif1.0

vif1.0 是客户端的虚拟接口。现在,客户端将能够 ping 网关并进行通信,就像直接通过一根电缆连接到您的网络一样。

相关内容