我使用桥接网络模式的 KVM,这样我就可以拥有一个具有主机 LAN 网络 IP 的 VM。我的主机(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 为我的 VM 创建了桥接连接。
<network>
<name>host-bridge</name>
<uuid>0fe3b67b-5155-4581-92f2-2510d864ed65</uuid>
<forward mode='bridge'/>
<bridge name='br0'/>
</network>
但是,当我在 VM 上执行 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?
我考虑过在客户机 grub 上启用 ipV6,但这似乎会导致虚拟机出现问题。我的服务器是远程服务器,我不想失去 ssh 连接。
答案1
我必须在 enp0s31f6 接口中明确禁用 dhcp4 和 dhcp4,然后重新启动主机和虚拟机。这是我使用的最终 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 地址,以避免路由器不将网桥作为单独的设备进行更新。