具有橋接功能的 Xen VM 上的多個 IP

具有橋接功能的 Xen VM 上的多個 IP

雖然我對 XEN(在 Ubuntu 14.04 下運行)相當陌生,但到目前為止我還沒有遇到任何實際問題。我已經使用橋接設置了網絡,到目前為止,這對於許多不同的機器都運作良好。通常我可以在某個地方找到答案,但這次我找不到答案並尋求幫助。

我有客戶端 VM(DomU),我正在嘗試使用大量 IP 設定它,這給我帶來了很多悲傷。這是設定:

主機有兩個 NIC,一個用於專用 (10.10.10.x) xenbr0,另一個僅橋接公共 IPS(例如 xyz*)xenbr1:

以下是我/etc/networking/interfaces從主機那裡得到的檔案:

iface eth0 inet manual
auto xenbr0
iface xenbr0 inet static
    bridge_ports eth0
    address 10.10.10.112
    netmask 255.255.255.0
    network 10.10.10.0
    broadcast 10.10.10.255
    gateway 10.10.10.1

auto eth1
iface eth1 inet manual
auto xenbr1
iface xenbr1 inet manual
       bridge_ports eth1
       bridge_maxwait 1

在客戶端VM中也使用兩個橋接網路卡/etc/networking/interfaces

auto eth0
iface eth0 inet  static
    address x.y.z.170
    netmask 255.255.255.240
    broadcast x.y.z.175
    gateway x.y.z.161

auto eth1
iface eth1 inet static
    address 10.10.10.155
    netmask 255.255.255.0
    broadcast 10.10.10.255
auto eth0:1                    
iface eth0:1 inet static       
        address x.y.z.162      
        netmask 255.255.255.240
        broadcast x.y.z.175    
auto eth0:2                    
iface eth0:2 inet static       
        address x.y.z.163      
        netmask 255.255.255.240
        broadcast x.y.z.175    
auto eth0:3                    
iface eth0:3 inet static       
        address x.y.z.164      
        netmask 255.255.255.240
        broadcast x.y.z.175    
etc…. up to 8 alaises.    

在我的 xen 設定檔中,我有: vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]

我計劃在一切設定完畢並正常運行後從虛擬機器中刪除本機 IP。

我正在使用別名,因為我試圖將其從裸機轉移到虛擬機器。最終IPS的過度使用將會得到解決,但由於各種原因我還不能做到這一點。無論如何,當我啟動虛擬機器時,只有少數 IP 是可 ping 通的,除非我arping -U -I eth1 x.y.z.162對每個 IP 位址執行 , 等操作。然後事情似乎至少有反應,但路由並沒有真正正常工作。我可以透過 ssh 並透過 http 瀏覽到 IP,但虛擬網站無法正常運作(即它只將我傳送到一個網站而忽略其他網站),並且重新啟動綁定和其他一些服務無法正確回應。這就好像路由設定不正確,當 IP 回應時,實際上並不是所要求的 IP 進行回應,而是另一個 IP。
然而,這僅適用於某些額外的 IPS。當我重新啟動時,arp 命令修復的路由就會遺失。然後虛擬機器上的 Bind 和其他一些服務將無法運作。我執行 arp 指令,一切又恢復正常了。
我認為琶音只是一個創可貼,但並不能解決真正的問題。由於完全相同的系統在裸機上運行,我幾乎可以肯定問題出在我的 XEN 網路設定上,而不是我嘗試遷移的交換器設定或作業系統上。

為了進一步隔離問題,我使用 VM/etc/networking/interfaces檔案中顯示的更現代(且未折舊的 IP 別名)設定設定了一個具有多個 IP 的乾淨 Ubuntu 14.04 來賓:

 auto eth0
allow-hotplug eth0
iface eth0 inet static
      address x.y.z.110
      netmask 255.255.255.240
      broadcast x.y.z.175
      gateway x.y.z.161
iface eth0 inet static
      address x.y.z 162
      netmask 255.255.255.240
      broadcast x.y.z.175
iface eth0 inet static
      address x.y.z 163
      netmask 255.255.255.240
      broadcast x.y.z.175
   and on with the other IPS

全部結果相同。我缺什麼?任何援助將不勝感激。

答案1

我弄清楚了我的問題是什麼,如果有人遇到類似的問題,我會將其發佈在這裡。

在我的 Xen 配置中,我沒有輸入 MAC 位址。我有:

vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]

當我需要類似的東西時:

vif = [ 'bridge=xenbr0', 'mac=00:11:5e:5n:2c:1c,bridge=xenbr1' ]

MAC 位址的路由不會立即過期,因此對每個 IP 執行以下 ARP 命令可以修復路由: arping -U -I eth1 x.y.z.162

我猜測每次虛擬機器啟動時它都有一個新的 MAC 位址,並且在虛擬機器啟動時僅更新了一些路由表。

現在 MAC 位址沒有改變,一切都很好。

答案2

嘗試在 DomU 中交換介面配置。根據您的 Dom0 配置,您應該在 DomU 中使用 eth0 作為私人 IP,使用 eth1 作為公用 IP。

相關內容