#author("2026-01-10T20:41:45+09:00","default:nobuoki","nobuoki")
#author("2026-01-10T20:42:20+09:00","default:nobuoki","nobuoki")
* 概要 [#jb420de1]

- virbr0の定義で、mac/hostname/ipaddrを指定する
- vmを作成するときに、macアドレスを指定する

* 実践例 [#k6005352]

コピペ用の文字列を生成

#prism(bash){{{
$ for i in $(seq -w 10 20); do echo "      <host mac='52:54:00:ff:ff:$i' name='vm$i' ip='192.168.122.$i'/>"; done
      <host mac='52:54:00:ff:ff:10' name='vm10' ip='192.168.122.10'/>
      <host mac='52:54:00:ff:ff:11' name='vm11' ip='192.168.122.11'/>
      <host mac='52:54:00:ff:ff:12' name='vm12' ip='192.168.122.12'/>
      <host mac='52:54:00:ff:ff:13' name='vm13' ip='192.168.122.13'/>
      <host mac='52:54:00:ff:ff:14' name='vm14' ip='192.168.122.14'/>
      <host mac='52:54:00:ff:ff:15' name='vm15' ip='192.168.122.15'/>
      <host mac='52:54:00:ff:ff:16' name='vm16' ip='192.168.122.16'/>
      <host mac='52:54:00:ff:ff:17' name='vm17' ip='192.168.122.17'/>
      <host mac='52:54:00:ff:ff:18' name='vm18' ip='192.168.122.18'/>
      <host mac='52:54:00:ff:ff:19' name='vm19' ip='192.168.122.19'/>
      <host mac='52:54:00:ff:ff:20' name='vm20' ip='192.168.122.20'/>
}}}

virsh net-edit default で、上記を <dhcp> 要素の下に追加(省略)
追加後の状態を表示するとこう

#prism(bash){{{
$ virsh net-dumpxml default --inactive
<network>
  <name>default</name>
  <uuid>b4adef5f-bcc2-484a-96fc-d66f792930a5</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:20:fe:58'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
      <host mac='52:54:00:ff:ff:10' name='vm10' ip='192.168.122.10'/>
      <host mac='52:54:00:ff:ff:11' name='vm11' ip='192.168.122.11'/>
      <host mac='52:54:00:ff:ff:12' name='vm12' ip='192.168.122.12'/>
      <host mac='52:54:00:ff:ff:13' name='vm13' ip='192.168.122.13'/>
      <host mac='52:54:00:ff:ff:14' name='vm14' ip='192.168.122.14'/>
      <host mac='52:54:00:ff:ff:15' name='vm15' ip='192.168.122.15'/>
      <host mac='52:54:00:ff:ff:16' name='vm16' ip='192.168.122.16'/>
      <host mac='52:54:00:ff:ff:17' name='vm17' ip='192.168.122.17'/>
      <host mac='52:54:00:ff:ff:18' name='vm18' ip='192.168.122.18'/>
      <host mac='52:54:00:ff:ff:19' name='vm19' ip='192.168.122.19'/>
      <host mac='52:54:00:ff:ff:20' name='vm20' ip='192.168.122.20'/>
    </dhcp>
  </ip>
</network>
}}}

networkを再起動(停止+起動)
既存のリース情報があれば削除しておきます

#prism(bash){{{
# network 停止
sudo virsh net-destroy default

# leases を削除
sudo rm -f /var/lib/libvirt/dnsmasq/default.leases
sudo rm -f /var/lib/libvirt/dnsmasq/default.status 2>/dev/null || true
sudo rm -f /var/lib/libvirt/dnsmasq/virbr0.status 2>/dev/null || true

# network 起動
sudo virsh net-start default
}}}

vm起動時にmacアドレスを指定

#prism(bash){{{
virt-install \
  --network network=default,model=virtio,mac=52:54:00:ff:ff:10 \
  ...
(以下略)
}}}

vm起動後に確認

#prism(bash){{{
$ virsh domifaddr vm10 --source lease
 名前     MAC アドレス     プロトコル     アドレス
-------------------------------------------------------------------------------
 vnet13     52:54:00:ff:ff:10    ipv4         192.168.122.10/24

}}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS