Kvm-Virtualization

主機自發斷開網路連接,但 KVM 客人保持線上

  • February 10, 2017

這是我幾年來一直忽略的問題。

我有一個執行 linux 3.16.0-4-amd64 的 Debian 穩定伺服器。啟動後幾分鐘到幾小時,伺服器失去出站網路連接並停止響應 SSH 和 ping。打開的 SSH 連接掛起。不過,我在該主機上執行了 3 個基於 KVM 的虛擬機,它們實際上可以執行多年而沒有任何連接問題。我也可以重新啟動它們。

/etc/network/interfaces:

auto lo
iface lo inet loopback

iface eth0 inet manual

auto br0
iface br0 inet static
   address xxx.xxx.xxx.6
   netmask 255.255.255.0
   network xxx.xxx.xxx.0
   broadcast xxx.xxx.xxx.255
   gateway xxx.xxx.xxx.1
   bridge_ports eth0
   bridge_stp off
   bridge_maxwait 0
   bridge_fd 0

該雜誌沒有顯示任何有趣的東西。其中唯一與網路相關的消息如下,通常在啟動後 10-15 分鐘出現,但可能在斷開連接前幾個小時出現:

kernel: br0: Multicast hash table maximum of 512 reached, disabling snooping: eth0

route -n斷開連接時ip addr輸出不會改變。ping 8.8.8.8說:

From OWN_IPv4 icmp_seq=1 Destination Host Unreachable

禁用 IPv6(我目前不使用)沒有幫助。

編輯:無論虛擬機是否正在執行,都會發生這種情況。我只是好奇他們有連接而主機沒有連接,這就是我提到它們的原因。除了偶爾的 SSH 掃描之外,不應該有任何流量。

這台機器已經連續 16 個小時沒有失去網路連接,所以我很確定它是“固定的”。我所做的是使用/etc/network/interfaces沒有定義網橋的文件啟動:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
   address xxx.xxx.xxx.6
   netmask 255.255.255.0
   network xxx.xxx.xxx.0
   broadcast xxx.xxx.xxx.255
   gateway xxx.xxx.xxx.1
   # dns-* options are implemented by the resolvconf package, if installed
   dns-nameservers SOME_IP SOME_OTHER_IP

兩個小時後(只是為了確定),我/etc/network/interfaces從問題中複製並執行:

ip address flush eth0 scope global && ifup br0

四分鐘後,多播雜湊表又滿了,但我不在乎。又過了兩個小時,我啟動了虛擬機。

因此,顯然使用網橋啟動會使系統在一段時間後失去連接,而在啟動後添加網橋似乎可以工作。不過,不知道為什麼會這樣。

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