ユーザーネットワークモードで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 準拠クライアント識別子を生成します。

関連情報