I have a libvirt network defined as so:
<bridge name='customers' macTableManager='libvirt' />
<port isolated='yes' />
<dns enable='no' />
<ip address='10.0.0.1' prefix='24'>
<host mac='02:99:92:43:eb:b8' name='dhcp-test' ip='10.0.0.10' />
And that network is attached to a virtual machine:
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
But for some reason when the domain starts, it never gets an address. If I tcpdump the bridge that was created by the network I can see it sending out discover packets, but dnsmasq never seems to respond:
01:26:25.039987 02:99:92:43:eb:b8 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 02:99:92:43:eb:b8, length 300, xid 0xc7283f76, secs 228, Flags [none]
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether 02:99:92:43:eb:b8
MSZ Option 57, length 2: 576
Parameter-Request Option 55, length 7:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Hostname
Domain-Name, BR, NTP
Vendor-Class Option 60, length 3: "d-i"
Despite that appearing to be the correct mac address.
Looking in /var/lib/libvirt/dnsmasq/customers.hostsfile, it's returning what I would expect to be there:
If I add a <range> stanza to the configuration, that does appear to work, so it seems this is only related to static addresses.
This is libvirtd 5.8.0.