
我有一台安裝了 Debian Xen 4.1 的伺服器。稍後我將用字母 A 來指稱該伺服器。我們用字母 B 和 C 來稱呼這些伺服器。
所有伺服器 A(host)、B(vm) 和 C(vm) 都有公用 ip(它們只有公用 ip,沒有其他) 伺服器 A:xxx82 伺服器 B:xxx83 伺服器 C:xxx84
它們都具有相同的網路遮罩和相同的網關。伺服器 A 具有介面 xenbr0、vif2.0 和 vif3.0。伺服器 B 有一個介面 eth0(連結到 vif2.0)。伺服器C有一個介面eth0(連結到vif3.0)。我檢查了路由、網關和網路遮罩是否正確。且配置有效。
route -n (on server A)
Destination Gateway Genmask Flags Metric Ref Use
Iface
0.0.0.0 x.x.x.81 0.0.0.0 UG 0 0 0 xenbr0
x.x.x.80 0.0.0.0 255.255.255.240 U 0 0 0 xenbr0
route -n (on server B and C)
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 x.x.x.81 0.0.0.0 UG 0 0 0 eth0
x.x.x.80 0.0.0.0 255.255.255.240 U 0 0 0 eth0
這可能需要幾天、幾週、幾個月,但隨後就會發生一些事情。只是隨機地虛擬伺服器 B 無法再到達網關,而且任何人都無法透過公用 IP 存取伺服器 B。所有介面均已啟動,路由仍然正確。伺服器A和C可以ping通B,B也可以ping通它們。網關無法存取。我檢查了主機(伺服器 A)上的 iptables,它絕對正確,沒有任何變化。我已經閱讀了主機伺服器 A 和虛擬機器 B 上的 dmesg、syslog 以及我能想像到的所有日誌檔案 - 但找不到任何相關錯誤。路由不再像它應該的那樣工作了!而且什麼都沒有改變!
據我所知,唯一的解決方案是重新啟動虛擬機器。之後的幾個月它會完美運作。
我已經閱讀了數百個論壇和討論,但沒有找到解決方案 - 通常他們的配置有問題或收到一些錯誤訊息。當伺服器 B 無法再連接到網關時,伺服器 C 運作得很好,而且它們的網路設定是相同的(當然除了不同的 ip)。
我還檢查了 brctl,它指出啟用 STP 是“否”。這和這有什麼關係嗎?很難相信,因為 VM C 仍然運作良好。
如果有任何建議,我將不勝感激,從哪裡開始尋找原因。我已經檢查了 iptables、ifconfig、brctl、dmesg、日誌等很多次,以至於我沒有主意了。