I'm running libvirt on ArchLinux using its
default network with manually created nftables rules.
I noticed that libvirt's DHCP server wasn't assigning IP addresses to VMs:
journalctl -u libvirtd Sep 06 17:46:19 laptop dnsmasq-dhcp: no address range available for DHCP request via virbr0
I did some investigating and found that when I take a look at
virbr0 bridge only has the IP range
192.168.100.0/24 assigned to it. It's missing the
192.168.122.0/24 range, which is why libvirt's dnsmasq instance is refusing to assign IPs to VMs.
Now, libvirt automatically reconfigures the
virbr0 bridge when I start/stop a VM, so I always have to manually run
sudo ip address add 192.168.122.1/24 dev virbr0 broadcast 192.168.100.255
to get networking to work.
Is there a configuration issue on my end, or is there something off with how libvirt is treating the bridge?
I'd like to find a way to continue using as much of libvirt's out-of-the-box networking as possible and not have to manually manage the bridge or its IP ranges.