
ich habe einen Server (Proliant DL380 Gen9). Er hat 4 Ethernet-Ports von eno1 bis eno4. Ich verwende Ubuntu 17.10 und KVM mit 4 mehreren Gast-VMs. Auf dem Host habe ich virbr0 auf eno1 eingerichtet.
Alles funktionierte einwandfrei, bis ich mein Update von Ubuntu 17.04 auf 17.10 durchführte. Nach diesem Update kann ich auf alle Gast-VMs ordnungsgemäß zugreifen, aber mein DHCP-Server (Meraki) sendet mir ständig Warnungen wegen IP-Konflikten. Wenn ich die MAC-Adressen der Maschinen nachschlage, die dieselbe IP anfordern, stelle ich fest, dass es sich um die von eno1-4 handelt. Aber ich habe diese absichtlich nicht zugewiesen, damit ich sie für meine Gast-VMs verwenden kann.
Hier ist meine /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
Hier ist meine cldsrvr.xml-Definition
> ... <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> ...
Wenn Sie in meiner XML-Definition der VM bemerken, habe ich die MAC-Adresse von 30:e1:71:5c:ec:61 in 52:45:.... geändert.
Meine Schlussfolgerung war also, dass der Hostserver aus irgendeinem Grund immer noch die Schnittstellen eno2-4 verwendet, obwohl er das nicht sollte.
Gibt es eine Möglichkeit, den Host-Server daran zu hindern, die der Gast-VM zugewiesene Ethernet-Schnittstelle zu verwenden?
Antwort1
Die Antwort scheint einfach zu sein.
Deklarieren Sie in /etc/network/interfaces die Ethernet-Schnittstellen als „manuell“. Auf diese Weise versucht der Host nicht, eine IP-Adresse für sie zu erhalten, und sie bleiben für die Verwendung durch die Gast-VMs verfügbar. Beispiel:
...
# Ethernet port for cad-srvr VM
auto eno2
iface eno2 inet manual
# Ethernet port for nxtcld-srvr VM
auto eno3
iface eno3 inet manual
...