我有一台运行 KVM + Libvirt 的 Ubuntu Trusty 机器来管理小型虚拟机,并使用标准 NetworkManager 连接到常规网络。
我希望能够从主机通过 DNS 访问虚拟机。
Libvirt 使用虚拟专用子网 (192.168.122.0/24),NAT 可通过我的 eth0 上的网桥 (virbr0) 访问世界其他地方。Dnamasq 将该虚拟网络的 DHCP+DNS 私有化。
这是虚拟网络的 libvirt 配置:
<network>
<name>default</name>
<uuid>400c59ff-c276-4154-ab73-9a8a8d1c6be3</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:f4:bd:37'/>
<domain name='kvm'/>
<dns forwardPlainNames='no'>
<forwarder addr='127.0.1.1'/>
<host ip='192.168.122.1'>
<hostname>host</hostname>
<hostname>host.kvm</hostname>
</host>
</dns>
<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>
Run Code Online (Sandbox Code Playgroud)
Libvirt 启动一个 dnsmasq 实例,侦听 192.168.122.1:53,它回答对 .knv 的所有请求并将任何其他请求转发到我的主机。这个 dnsmasq 配置是由 libvirt 自动生成的:
/var/lib/libvirt/dnsmasq/default.conf
##WARNING: THIS …Run Code Online (Sandbox Code Playgroud) domain-name-system internal-dns libvirt dnsmasq kvm-virtualization