libvirtがホストdnsmasqサービスを使用するように強制する方法は?

libvirtがホストdnsmasqサービスを使用するように強制する方法は?

dnsmasqLibvirtには、DHCP / DNSサーバーとして機能する定義済みネットワークがあります。ただし、これはdnsmasq別のインスタンス(で構成されている/var/lib/libvirt/dnsmasq/default.conf)であり、追加のプロセスを作成しますdnsmasq。私はしばらく私のグローバル/システムインスタンスを使用してきましたが、dnsmasqそれをlibvirt仮想マシンで使用したいと思います。しかし、これは達成しやすいものではないようです。

これで、virsh net-edit default次の()を削除してプライマリネットワークのDNSとDHCPを無効にしました。

<dhcp>
  <range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>

そして、以下を追加してください:

<dns enable="no"/>

もちろん、これはlibvrtが追加のdnsmasqプロセスを作成するのを止めますが、/etc/dnsmasq.conf仮想マシンがDHCPを介してIPアドレスを取得し、DNS名を使用してネットワークにアクセスできるようにシステム構成ファイルに何を追加する必要がありますか?

答え1

解決しました。

デフォルトでは、問題はプライマリネットワークにあります。使用しないか変更する必要があります。次/etc/libvirt/qemu/networks/host-bridge.xmlの内容で別のネットワーク()を作成しました。

<network>
  <name>host-bridge</name>
  <forward mode="bridge"/>
  <bridge name="virbr0"/>
</network>

その後、仮想マシンで使用していたネットワークを新しく作成されたネットワークに変更しました。

ブリッジはvirbr0次のファイルを使用して作成されます/etc/network/interfaces

auto virbr0
iface virbr0 inet static
    bridge_bridgeprio 20
    address 192.168.122.1
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp on
    bridge_waitport 5
    dns-nameservers 127.0.0.1
    dns-search libvirt

かなりうまくいくようですが、実際に私が望むように動作することを確認するにはもう少し試してみる必要があるようです。

関連情報