Duplicate DHCP leases after hypervisor DHCP server restart cause VMs to keep stale IPs post-resume
Environment
KVM/QEMU hypervisor host running dnsmasq as a DHCP server for an isolated VM network (192.168.200.0/24). Several paused VMs are resumed after host maintenance; hypervisor's DHCP lease file was rotated and dnsmasq restarted during the maintenance window.
Symptoms
After host maintenance and guest resume, some VMs retain their previous IP configuration but cannot reach other hosts; bridged connectivity works for some VMs while others get 'duplicate address' ARP conflicts. On resumed guests, dhclient log shows 'DHCPACK for 192.168.200.14' followed by 'Could not update lease' and intermittent networking for minutes until manual dhclient -r / dhclient runs resolve the conflict.
Observations
dnsmasq.leases file shows duplicate entries for the same MAC with two different timestamps. ARP tables on bridge show multiple MACs for the same IP during the window. Restarting dnsmasq during lease rotation appears to have created stale lease entries. VMs that were suspended received DHCP lease renewals that matched an old lease record but the host's lease database didn't match the VM's expectation.
Already attempted
Restarted dnsmasq and reloaded leases; removed duplicate entries from lease file and sent SIGHUP to dnsmasq. Performed dhclient -r && dhclient on affected VMs; network recovery succeeded for those guests. Configured libvirt XML to use persistent DHCP reservations for critical VMs. Did not modify MAC addresses on VMs.
Question
What causes duplicate leases after dnsmasq restart during maintenance to produce inconsistent post-resume networking for paused/resumed VMs, and what configuration changes prevent future duplicate-lease issues on the hypervisor-managed virtual network?
Verified community troubleshooting
No answers yet..
Incident analysis
Most likely causes
Summary
Suggested Fixes
Continue troubleshooting
Related troubles
Matched from the title, description and tags