사용자 네트워크 모드에서 qemu-kvm의 IP를 정의하는 방법

사용자 네트워크 모드에서 qemu-kvm의 IP를 정의하는 방법

나는 qemu의 다양한 네트워크 모드를 배우려고 노력하고 있습니다.
사용자 네트워크 모드에서 qemu는 가상 DNS를 생성하고 DHCP를 사용하여 IP 주소를 가상 머신에 연결합니다.
문제는 내가 만든 모든 VM이 동일한 IP를 가지고 있기 10.0.2.15때문에 서로 다른 네트워크 허브에 있을 수 있다는 것입니다. 동일한 네트워크 ID로 VM을 생성하거나 MAC을 변경하려고 시도했지만 결과가 변경되지 않습니다.
가상 머신을 생성하는 데 사용한 명령은 다음과 같습니다.

kvm -m 3G -cdrom ubuntu-22.04-desktop-amd64.iso -netdev user,id=network0 -device e1000,netdev=network0,mac=52:54:00:12:34:77 -name "kvm1" 

kvm -m 3G -cdrom ubuntu-22.04-desktop-amd64.iso -netdev user,id=network0 -device e1000,netdev=network0 -name "kvm2"

그리고제이드 한의브리지 모드를 사용하여 가상 머신을 생성할 때 virsh가 수행하는 작업을 이해하려고 노력하라는 제안이 있었습니다. 먼저 호스트 머신에 브리지를 생성하고 브리지와 함께 virsh를 사용하여 가상 머신을 생성했습니다. 이 방법을 사용하면 가상 머신으로 이동하여 인터페이스의 IP를 수동으로 설정해야 합니다. 불행하게도 VM 생성 명령은 ps출력에서 ​​혼란스럽고 브리지가 어디에 있는지 찾을 수 없습니다! 이 같은:

qemu-system-x86_64 *** -netdev tap,fd=38,id=hostnet0,vhost=on,vhostfd=40 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:a8:7b:3b,bus=pci.1,addr=0x0

답변1

IP를 구성하기 위해 DHCP 서버를 사용하는 경우 이것이 문제라고 생각합니다.

아마도 가상 머신을 복제했고 Ubuntu 22.04(또는 20?)부터 시작하여 머신 ID라는 것을 사용하여 주소를 가져옵니다. 머신이 복제본이므로 ID는 모든 머신에서 동일합니다. 이 컴퓨터 ID를 업데이트하거나(systemd-machine-id-setup을 통해) netplan 구성 파일의 dhcp-indentifier를 다음과 같이 변경하여 DHCP에 MAC 주소를 사용할 수 있습니다.

    network
  version 2
  renderer networkd
  ethernets
    enp1s0
      dhcp4: true
      dhcp-identifier: mac

네트워크 계획 문서에서:

DHCP 식별자(스칼라)

(네트워크 백엔드에만 해당) DHCPv4 클라이언트 식별자의 소스를 설정합니다. mac이 지정되면 링크의 MAC 주소가 사용됩니다. 이 옵션을 생략하거나 duid를 지정하면 networkd는 링크의 IAID와 DUID를 결합하여 인터페이스에 대한 RFC4361 호환 클라이언트 식별자를 생성합니다.

관련 정보