我有一台伺服器,分配了多個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 網關並進行通信,就像它透過一點電纜直接連接到您的網路一樣。