
Я использую KVM в режиме мостовой сети, поэтому у меня может быть виртуальная машина с IP-адресом из локальной сети хоста. Моя сеть хоста (сервер Ubuntu 18.04) настроена следующим образом:
network:
ethernets:
enp0s31f6:
dhcp4: true
enp5s0:
dhcp4: true
bridges:
br0:
interfaces: [enp0s31f6]
macaddress: EX:DX:5X:X0:X0:XO
dhcp4: yes
version: 2
Я создал мостовое соединение с помощью virtsh для своей виртуальной машины.
<network>
<name>host-bridge</name>
<uuid>0fe3b67b-5155-4581-92f2-2510d864ed65</uuid>
<forward mode='bridge'/>
<bridge name='br0'/>
</network>
Однако когда я выполняю ifconfig на виртуальной машине, я вижу только назначенный адрес IPv6.
enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 2a01:cb00:c3c:e500:9949:de93:1df3:c13c prefixlen 64 scopeid 0x0<global>
inet6 2a01:cb00:c3c:e500:ae16:cee:c3a6:c493 prefixlen 64 scopeid 0x0<global>
inet6 fe80::ff22:79d5:c7fe:884f prefixlen 64 scopeid 0x20<link>
ether XX:XX:XX:XX:XX:XX txqueuelen 1000 (Ethernet)
RX packets 5990 bytes 560495 (560.4 KB)
RX errors 0 dropped 2778 overruns 0 frame 0
TX packets 702 bytes 89008 (89.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Как принудительно настроить KVM или изменить хостовую/гостевую сеть так, чтобы она назначала только IPV4?
Я думал включить ipV6 на гостевом grub, но это, похоже, вызывает проблемы на виртуальных машинах. Мой сервер удаленный, и я не хочу терять подключение по ssh.
решение1
Мне пришлось явно отключить dhcp4 и dhcp4 в интерфейсе enp0s31f6 и перезапустить как хост, так и VM. Это окончательная конфигурация netplan, которую я использовал:
network:
ethernets:
enp0s31f6:
dhcp4: false
dhcp6: false
enp5s0:
dhcp4: false
dhcp6: false
bridges:
br0:
interfaces: [enp0s31f6]
macaddress: XX:XX:XX:XX:XX:X
dhcp4: yes
dhcp6: true
version: 2
После этого все заработало нормально. Также важно отметить, что мне пришлось явно задать mac-адрес моста в конфигурации, чтобы маршрутизатор не обновлял мост как отдельное устройство.