Kvm
從另一個來賓複製後,沒有分配給 kvm 來賓的 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 配置的 interface-network 部分:
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 vm2
它ifconfig
給了我:~$ 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 地址。
最終解決問題的是
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]