dnsmasq
Libvirtには、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
かなりうまくいくようですが、実際に私が望むように動作することを確認するにはもう少し試してみる必要があるようです。