从另一个 guest 克隆后,没有分配给 kvm guest 的 IP 地址

从另一个 guest 克隆后,没有分配给 kvm guest 的 IP 地址

我已经在 ubuntu 18.04 上的 kvm 上设置了一台来宾机器(来宾也是 ubuntu 18.04)。我能够通过 ssh 连接到它,当我键入时,我可以看到分配给它的 IP 地址,virsh domifaddr vm1我看到以下输出:

 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet0      52:54:00:64:10:51    ipv4         192.168.122.246/24

但是,当我克隆它时

virt-clone --connect qemu:///system --original vm1 --name vm2 --auto-clone

并启动机器,virsh domifaddr vm2显示以下输出:

 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------

所以没有 IP 地址,我什至不知道如何连接到它,尽管来宾本身显示为“正在运行”:

# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     vm1                            running
 2     vm2                            running

我已经检查了两个来宾的 xml 配置文件 - 唯一的区别是 MAC 地址以及所连接的计算机和磁盘的名称。我什至添加了这个 mac 地址并为其分配了静态 IP virsh net-edit default

  1 <network>
  2   <name>default</name>
  3   <uuid>9a270817-c5bc-4571-877a-43b97a5a3e48</uuid>
  4   <forward mode='nat'/>
  5   <bridge name='virbr0' stp='on' delay='0'/>
  6   <mac address='52:54:00:8a:fe:4f'/>
  7   <ip address='192.168.122.1' netmask='255.255.255.0'>
  8     <dhcp>
  9       <range start='192.168.122.2' end='192.168.122.254'/>
 10       <host mac='52:54:00:64:10:51' name='vm1' ip='192.168.122.246'/>
 11       <host mac='52:54:00:f0:38:6e' name='vm2' ip='192.168.122.247'/>
 12     </dhcp>
 13   </ip>
 14 </network>

然后重新开始一切。没有帮助。我还需要做什么才能获得分配给克隆来宾的 IP 地址?

作为参考,每个访客的 xml 配置的接口网络部分:

vm1

 45     <interface type='network'>
 46       <mac address='52:54:00:64:10:51'/>
 47       <source network='default'/>
 48       <model type='virtio'/>
 49       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
 50     </interface>


vm2

 45     <interface type='network'>
 46       <mac address='52:54:00:f0:38:6e'/>
 47       <source network='default'/>
 48       <model type='virtio'/>
 49       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
 50     </interface>

我还能够连接到 vm2,其中virsh console vm2ifconfig里面给了我:

~$ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2184  bytes 191249 (191.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2184  bytes 191249 (191.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

更新:我还在 中重新生成了机器 ID /etc/machine-id /var/lib/dbus/machine-id,更改了 ssh 密钥并运行了virt-sysprep -d vm2。然后重新启动一切。那也没有帮助。

更新 2:ip a在主机上运行会给出以下结果:

5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master virbr0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:64:10:51 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe64:1051/64 scope link 
       valid_lft forever preferred_lft forever
6: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master virbr0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:f0:38:6e brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fef0:386e/64 scope link 
       valid_lft forever preferred_lft forever

它对应于两个虚拟机的 MAC 地址。

答案1

最终解决问题的是dhclient ens3在来宾上运行。

现在正在为访客分配静态 IP 地址,稍后将更新答案。

更新。 要在 Ubuntu 18.04 上分配静态 IP,您需要进行/etc/netplan/[file that's there]如下编辑:

network:
    version: 2
    ethernets:
        ens3:
            dhcp4: no
            addresses: [192.168.122.245/24]
            gateway4: 192.168.122.1
            nameservers:
              addresses: [8.8.8.8,8.8.4.4]

相关内容