KVM 默认网络给不同的机器相同的 IP

问题描述 投票:0回答:1

我正在尝试使用 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
networking kvm libvirt
1个回答
1
投票

问题是 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
© www.soinside.com 2019 - 2024. All rights reserved.