
私はサーバー(ProLiant DL380 Gen9)を持っています。これには eno1 から eno4 までの 4 つのイーサネット ポートがあります。私は Ubuntu 17.10 と、4 つの複数のゲスト VM を備えた KVM を使用しています。ホストでは、eno1 に virbr0 を設定しました。
Ubuntu 17.04 から 17.10 にアップデートするまではすべて正常に動作していました。そのアップデート後、すべてのゲスト VM に正常にアクセスできますが、DHCP サーバー (Meraki) から IP 競合の警告が送信され続けます。同じ IP を要求しているマシンの MAC アドレスを検索すると、eno1-4 のアドレスであることがわかります。ただし、ゲスト VM に使用できるように、これらを未割り当てのままにしました。
これは私の/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> ...
VM の XML 定義を見ると、MAC アドレスが 30:e1:71:5c:ec:61 から 52:45:... に変更されていることがわかります。
したがって、私の結論は、何らかの理由で、ホスト サーバーが、本来使用するべきではないのに、インターフェイス eno2-4 をまだ使用しているというものでした。
ホスト サーバーがゲスト VM に割り当てられたイーサネット インターフェイスを使用しないようにする方法はありますか?
答え1
答えは簡単なようです。
/etc/network/interfaces で、イーサネット インターフェイスを「manual」として宣言します。これにより、ホストはそれらの IP アドレスを取得しようとせず、ゲスト VM が使用できる状態になります。例:
...
# Ethernet port for cad-srvr VM
auto eno2
iface eno2 inet manual
# Ethernet port for nxtcld-srvr VM
auto eno3
iface eno3 inet manual
...