
У меня есть сервер (Proliant DL380 Gen9). Он имеет 4 порта Ethernet от eno1 до eno4. Я использую Ubuntu 17.10 и KVM с 4 несколькими гостевыми виртуальными машинами. На хосте я настроил virbr0 на eno1.
Все работало отлично, пока я не обновился с Ubuntu 17.04 до 17.10. После этого обновления я могу нормально получить доступ ко всем гостевым виртуальным машинам, но мой DHCP-сервер (Meraki) продолжает отправлять мне предупреждения о конфликте IP. Если я посмотрю MAC-адреса машин, запрашивающих тот же IP, то обнаружу, что это адреса eno1-4. Но я специально оставил их неназначенными, чтобы использовать их для своих гостевых виртуальных машин.
Вот мой /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, хотя ему это не положено.
Есть ли способ запретить хост-серверу использовать интерфейс Ethernet, назначенный гостевой виртуальной машине?
решение1
Кажется, ответ прост.
В /etc/network/interfaces объявите интерфейсы Ethernet как «ручные». Таким образом, хост не будет пытаться получить для них 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
...