libvirt:在虚拟networking中使用dhcp设置主机名

我在CentOS 7主机上为一组虚拟机configuration了一个仅主机(又名私有)networking。 我已经在虚拟networking的DHCP部分创build了静态租约。

IP地址设置正确,但主机名被忽略。 相反,它会回落到临时主机名。 这是hostnamectl的输出:

 Static hostname: n/a Transient hostname: vmname Icon name: computer-vm Chassis: vm Machine ID: 7944dc3acb404c81b272fb8ac4b047fd Boot ID: ac7efda81d644700a9a51a9cff9c12cb Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-327.13.1.el7.x86_64 Architecture: x86-64 

这是我的networkingconfiguration:

 <network> <name>virtnet1</name> <bridge name="virbr1" /> <ip address="10.2.2.101" netmask="255.255.255.0"> <dhcp> <range start='10.2.2.30' end='10.2.2.99'/> <host mac='52:54:00:a3:5d:44' name='myhost' ip='10.2.2.9'/> </dhcp> </ip> </network> 

您需要为主机设置DHCP选项列表 。

像这样的标准DHCP:

 host **foobar** { hardware ethernet c0:18:85:e3:13:31; fixed-address 10.1.1.129; option domain-name "**example.org**"; option host-name "foobar"; ddns-hostname "**foobar.mydomain.com**"; } 

编辑

像libvirt一样:请注意你必须有libvirt的补丁,因为这个Bug 824573已经有一段时间了。 补丁信息可以在这里find。

 <network> <name>virtnet1</name> <bridge name="virbr1" /> <ip address="10.2.2.101" netmask="255.255.255.0"> <dhcp> <range start='10.2.2.30' end='10.2.2.99'/> <host mac='52:54:00:a3:5d:44' name='myhost' ip='10.2.2.9'/> <option number="12" value="foobar" /> <option number="15" value="mydomain.com" /> <option number="42" value="NTP Servers" /> <option number="56" value="DHCP Message" /> </dhcp> </ip> </network>