Ubuntu

Xen VM 上的多個 IP 與橋接

  • July 30, 2015

雖然我對 XEN(在 Ubuntu 14.04 下執行)相當陌生,但直到現在我還沒有遇到任何真正的問題。我已經使用橋接設置了我的網路,直到現在它在許多不同的機器上都執行良好。通常我可以在某個地方找到我的答案,但這次我遇到了問題並尋求幫助。

我有客戶端虛擬機(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 中還使用兩個橋接 nic /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' ]

一旦一切都設置好並正常工作,我計劃從 VM 中刪除本地 IP。

我正在使用別名,因為我試圖將其從裸機機器移至 VM 機器。最終會解決過度使用 IPS 的問題,但由於各種原因,我還不能這樣做。無論如何,當我啟動 VM 時,只有少數 IP 是可 ping 的,除非我arping -U -I eth1 x.y.z.162為每個 IP 地址執行 等操作。然後事情似乎至少有反應,但路由並不能真正正常工作。我可以 ssh 並通過 http 瀏覽到 IP,但虛擬站點無法正常工作(即它只將我發送到一個而忽略其他站點)並且重新啟動綁定和其他一些服務沒有正確響應。就好像路由設置不正確,當 IP 響應時,它不是真正請求的 IP 正在回复,而是另一個 IP。

然而,這僅適用於一些額外的 IPS。當我重新啟動時,arp 命令修復的路由失去了。然後 Bind 和 VM 上的其他一些服務將不起作用。我執行了 arp 命令,一切又恢復了。

我認為arping只是一個創可貼,但不能解決真正的問題。由於完全相同的系統可以在裸機上執行,因此我幾乎可以肯定問題出在我的 XEN 網路設置上,而不是我嘗試遷移的交換機設置或作業系統上。

/etc/networking/interfaces為了進一步隔離問題,我使用下面 VMs文件中顯示的更現代(而不是折舊的 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

所有結果都相同。我錯過了什麼?任何援助將不勝感激。

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

在我的 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地址沒有改變一切都很好。

引用自:https://serverfault.com/questions/688184