我應該如何配置具有多個 IP 的介面以供 Xen 使用?

我應該如何配置具有多個 IP 的介面以供 Xen 使用?

我有一台伺服器,分配了多個IP。我想將其設定為 Xen 虛擬機器管理程序,以便每個虛擬機都有自己的專用 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

您可以像對待它包含的 eth0 介面一樣對待 br0 介面。

然後在來賓設定檔中,您有這樣一行:

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

這就是說,「給這個VM一個虛擬介面並將其添加到br0橋,並給它以下mac」。

請注意,不需要在此處設定 MAC 位址,但我更喜歡它,這樣我就可以使用 DHCP 為來賓分配靜態 IP 位址 - 這樣我不需要硬編碼主機以外的任何 IP 位址(以及DHCP 伺服器,在我的例子中它本身就是一個虛擬機器)。

然後在來賓中,您只需像配置任何其他 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 是 guest 虛擬機器的虛擬介面。現在,訪客將能夠 ping 網關並進行通信,就像它透過一點電纜直接連接到您的網路一樣。

相關內容