Virsh は仮想マシンに動的 IP アドレスを割り当てません。

Virsh は仮想マシンに動的 IP アドレスを割り当てません。

libvirtが作成したプライマリネットワークに接続されているDebian 12ホストにKVMシステムを設定しようとしています。しかし、ネットワークがアクティブで利用可能ですが192.168.122.1/24...

# ip addr show virbr0
55: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:16:d4:1a brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

...割り当てられたIPアドレスがありません。VM(つまり、出力は空virsh net-dhcp-leasesです)。

切り捨てられた出力virsh dumpxml vm0は次のとおりです。

<domain type='kvm' id='5'>
...
    <interface type='network'>
      <mac address='52:54:00:ab:71:69'/>
      <source network='default' portid='8ff73a58-1d26-460a-81e9-94f3143e9006' bridge='virbr0'/>
      <target dev='vnet4'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
...
</domain>

ネットワークダンプのXMLはdefault次のとおりです。

<network connections='1'>
  <name>default</name>
  <uuid>e9f0c964-b736-4c6f-826f-0845a952f8ec</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:16:d4:1a'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

を使用して問題を追跡しようとしましたが、journalctl成功しませんでした。

答え1

ネットワーク接続テスト

固定アドレスを割り当てるときに仮想マシンに接続があるかどうかをテストします。仮想マシンコンソールにログインし、インターフェイスにアドレスを割り当てます(名前があると仮定しますeth0が、他の場合は適切なアドレスに置き換えます)。

ip addr add 192.168.122.100/24 dev eth0
ip link set eth0 up

使用しているアドレスがすでに他の仮想マシンで使用されていないことを確認してください。

これを行うには、明らかに仮想マシンコンソールにログインできる必要があります。これまでに実行できるパスワードを設定していない場合は、利用可能な解決策がたくさんありますguestfishvirt-customize

これで、ブリッジにpingを送信できることを確認してください。

ping 192.168.122.1

大丈夫ですか?

ネットワークが正常であることを確認してください。

接続されているネットワークが動作していることを確認してください。defaultの出力にネットワークが見えますかvirsh net-list

dnsmasqが実行されていることを確認してください。

libvirt ネットワークを起動すると、libvirtd はdnsmasqネットワークへのアドレス割り当てを管理するためにインスタンスを起動します。ネットワークの場合、default出力には次のような内容が表示されますps -fe

dnsmasq   252591       1  0 Mar29 ?        00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper

dnsmaq機能しない場合は、ネットワークをリセットしてみてください。

  1. 仮想マシンを終了します。
  2. 走るvirsh net-destroy default
  3. 走るvirsh net-start default
  4. 仮想マシンの起動

その後、状況が変わっていることを確認してください。

関連情報