我正在尝试使用 KVM 创建虚拟机。
我正在使用 libvirt 创建虚拟机,包含以下软件包
bridge-utils libvirt-daemon-system virt-manager virt-viewer qemu-kvm qemu-efi
创建虚拟机的命令:
virt-install --import --name guest1 \
--memory 2048 --vcpus 1 --noautoconsole \
--os-variant ubuntu22.04 --hvm \
--network network=default \
--disk=/vm-images/jammy01.img --import
virt-install --import --name guest2 \
--memory 2048 --vcpus 1 --noautoconsole \
--os-variant ubuntu22.04 --hvm \
--network network=default \
--disk=/vm-images/jammy02.img --import
virt-install --import --name guest3 \
--memory 2048 --vcpus 1 --noautoconsole \
--os-variant ubuntu22.04 --hvm \
--network network=default \
--disk=/vm-images/jammy03.img --import
网络=默认为:
<network>
<name>default</name>
<uuid>9ea90610-3814-4508-b943-3e53aa5d3404</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:6a:55:17'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
每台机器中的 netplan yaml:
network:
ethernets:
enp1s0:
dhcp4: true
version: 2
renderer: networkd
但是,即使我使用的是 dhcp4,所有机器都具有相同的 IP。
索性,我用
virsh net-dhcp-leases default
查了一下,果然是
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID
------------------------------------------------------------------------------------------------------------------------------------------------
2023-02-22 12:07:14 00:50:52:a7:d7:92 ipv4 192.168.122.241/24 ubuntu ff:5d:e2:6c:15:00:02:00:00:ab:11:33:33:f1:46:a3:8b:cb:28
只分配一个ip。 在配置机器时,只会更改 MAC 地址。
我该如何解决这个问题?
我预计,每台机器都有自己的IP地址,比如:
Expiry Time MAC address Protocol IP address Hostname Client ID or DUID
------------------------------------------------------------------------------------------------------------------------------------------------
2023-02-22 12:07:14 00:50:52:a7:d7:92 ipv4 192.168.122.241/24 ubuntu ff:5d:e2:6c:15:00:02:00:00:ab:11:33:33:f1:46:a3:8b:cb:28
2023-02-22 12:07:14 00:50:52:b7:a7:22 ipv4 192.168.122.151/24 ubuntu ff:5d:e2:6c:15:00:02:00:00:ab:11:33:33:f1:46:a3:8b:cb:28
2023-02-22 12:07:14 00:50:52:17:5b:ef ipv4 192.168.122.199/24 ubuntu ff:5d:e2:6c:15:00:02:00:00:ab:11:33:33:f1:46:a3:8b:cb:28
问题是 dhcp 标识符默认设置为
Machine Id
。
当我通过模板创建机器时,我必须在
/etc/machine-id
上更改机器 ID 或明确声明 dhcp-indeitifer
我将使用 MAC 地址作为标识符。
最后一个,明确设置MAC地址为
dhcp-identifier
,你可以在/etc/netplan/NETWORK.yaml
->上设置它
network:
ethernets:
enp1s0:
dhcp4: true
dhcp-identifier: mac # This is the key of this problem.
version: 2
renderer: networkd