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[8083]: no address range available for DHCP request via virbr0
I did some investigating and found that when I take a look at
ip addr
The 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.