On Mon, Jan 27, 2025 at 12:50:05PM +0000, Iain M Conochie wrote:
Good day all,
I have having an issue starting virtual networks defined within
libvirt:
virsh # net-start cmdb
error: Failed to start network cmdb
error: internal error: Child process (VIR_BRIDGE_NAME=virbr3
/usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/cmdb.conf --
leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper)
unexpected exit status 2:
dnsmasq: failed to create listening socket for 172.26.80.1: Address
already in use
The definition of the network is pretty simple:
virsh # net-dumpxml cmdb
<network>
<name>cmdb</name>
<uuid>42ffd3c4-624d-46ad-be21-bb3c61c67e41</uuid>
<bridge name='virbr3' stp='on' delay='0'/>
<mac address='52:54:00:5b:e9:6c'/>
<domain name='shihad.org'/>
<ip address='172.26.80.1' netmask='255.255.255.0'>
</ip>
</network>
At the OS level, this network interface should get created by libvirt,
so I am a bit mystified why dnsmasq is having an issue starting, as
there is nothing using this address yet. In fact, virbr3 does not exist
There might be, you can probably see an old dnsmasq listening on that
address using lsof or ss. This is a bug that is already fixed and it
could happen in various ways.
This was fixed with a series of patches 97ed0574ea6c..d0a48eeb720f and
is included upstream in v10.8.0.
until libvirt would bring up this interface:
ifconfig -a | grep virbr
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
I am running libvirt 9.0.0 on Debian 12.
Unfortunately that either needs to be backported or your system updated.
But as a workaround just make sure nothing is listening on that address,
which might need killing some dnsmasq processes.
Any help or pointers greatly appreciated.
Thanks!
Iain