
我有一台(proliant DL380 gen9)。它有 4 個乙太網路連接埠 eno1 到 eno4。我正在使用 ubuntu 17.10 和帶有 4 個多來賓虛擬機的 KVM。在主機上,我在 eno1 上設定了 virbr0。
一切工作正常,直到我從 ubuntu 17.04 更新到 17.10。更新後,我可以正確存取所有來賓虛擬機,但我的 DHCP 伺服器 (Meraki) 不斷向我發送 IP 衝突警告。如果我查找請求相同 IP 的機器的 MAC 位址,我會發現它們是 eno1-4 的 MAC 位址。但我特別保留了這些未分配的內容,以便我可以將它們用於我的來賓虛擬機器。
這是我的 /etc/network/interfaces
auto virbr0
iface virbr0 inet dhcp
bridge_ports eno1
bridge_stp off
bridge_fd 0
bridge_maxwait 0
#hwaddress ether 30:e1:71:5c:ec:60
這是我的 cldsrvr.xml 定義
> ... <interface type='direct'>
> <mac address='52:54:00:92:c2:cc'/>
> <source dev='eno3' mode='private'/>
> <model type='virtio'/>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
> </interface> ...
如果您注意到我在虛擬機器的 xml 定義中,我將 MAC 位址從 30:e1:71:5c:ec:61 更改為 52:45:....
所以我的結論是,主機伺服器在不應該使用的情況下仍在使用 eno2-4 介面。
有沒有辦法阻止主機伺服器使用分配給來賓虛擬機器的乙太網路介面?
答案1
看來答案很簡單。
在 /etc/network/interfaces 中,將乙太網路介面聲明為「手動」。這樣主機就不會嘗試取得它們的 IP 位址,而且它們仍然可供來賓虛擬機器使用。例如
...
# Ethernet port for cad-srvr VM
auto eno2
iface eno2 inet manual
# Ethernet port for nxtcld-srvr VM
auto eno3
iface eno3 inet manual
...