В Ubuntu 17.04 с libvirt 3.0.0
На моем сервере определено несколько виртуальных сетей:
# virsh net-list --all
Name State Autostart Persistent
----------------------------------------------------------
default active yes yes
...
virtual-mgt-5 active yes yes
...
Когда виртуальная машина запускается на «virtual-mgt-5» с интерфейсом, которому требуется DHCP-сервер dnsmasq для получения ее IP-адреса / длины подсети, она остается недоступной через свое полное доменное имя после получения IP-информации.
Значения по умолчанию используются для каждого экземпляра dnsmasq:
systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2017-06-10 19:48:58 CEST; 3ms ago
Docs: man:libvirtd(8)
http://libvirt.org
Main PID: 25365 (libvirtd)
Tasks: 35 (limit: 4915)
Memory: 27.1M
CPU: 28ms
CGroup: /system.slice/libvirtd.service
├─22262 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
├─22263 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
...
├─24061 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/virtual-mgt-5.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
├─24062 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/virtual-mgt-5.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
...
├─25365 /usr/sbin/libvirtd
└─25384 /usr/sbin/dnsmasq --help
Интересно, мешает ли опция «--leasefile-ro»: может быть ключ = значение в /etc/libvirt/qemu/networks/virtual-mgt-5.xml, чтобы включить такое поведение, но я не смог найти это в Сетевой формат XML.
Содержимое соответствующего XML-файла:
virsh net-edit virtual-mgt-5
<network ipv6='yes'>
<name>virtual-mgt-5</name>
<uuid>193ac2c9-13fc-44a6-83f8-477790f1f470</uuid>
<forward mode='route'/>
<bridge name='virbr5' stp='on' delay='0'/>
<mac address='52:54:00:b9:ea:63'/>
<domain name='actionmystique.net'/>
<ip address='172.21.0.1' netmask='255.255.0.0'>
<dhcp>
<range start='172.21.0.1' end='172.21.255.254'/>
</dhcp>
</ip>
<ip family='ipv6' address='fc21::1' prefix='64'>
<dhcp>
<range start='fc21::1' end='fc21::fffe'/>
</dhcp>
</ip>
</network>
Любое предложение?
Libvirt предоставляет два модуля nss, которые могут включать разрешение имен для гостей. Модуль libvirt преобразует имена хостов (определенные в сетевом XML) в IP-адреса. Модуль libvirt-guest использует несколько иной подход, разрешая имя гостевого домена вместо имени хоста в IP-адреса. Последнее означает, что вам не нужно добавлять имена хостов в сетевой XML - вы можете просто virsh start myguest && ssh myguest