우분투 18.04의 kvm에 게스트 머신을 설정했습니다 (게스트도 우분투 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 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 주소에 해당합니다.
답변1
마침내 문제를 해결한 것은 dhclient ens3
게스트에서 실행되는 것이었습니다.
현재 방문자에게 고정 IP 주소가 할당되고 있으며 답변은 나중에 업데이트됩니다.
고쳐 쓰다./etc/netplan/[file that's there]
Ubuntu 18.04에서 고정 IP를 할당하려면 다음과 같이 편집 해야 합니다 .
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]