[Pkg-libvirt-maintainers] Bug#504605: Bug#504605: libvirt-bin: README.Debian says dnsmasq should not be already running

Guido Günther agx at sigxcpu.org
Thu Nov 6 08:11:25 UTC 2008


On Wed, Nov 05, 2008 at 05:02:52PM +0100, Adeodato Simó wrote:
> Package: libvirt-bin
> Version: 0.4.6-4
> Severity: normal
> 
> From /usr/share/doc/libvirt-bin/README.Debian:
> 
>   | In order for things to work this way you need to have the recommended packages
>   | dnsmasq, bridge-utils and iptables installed and dnsmasq must not be already
>   | running since libvirt starts it with the above parameters.
> 
> In my system dnsmasq was previously installed and running; nevertheless
> libvirt-bin's own dnsmasq started normally, and served well the guests,
> because it only listened in the bridge interface.
This doesn't work here. If I do 

/etc/init.d/dnsmasq  stop
virsh net-start default

I have:
# ps awux | grep dnsm
nobody    6327  0.0  0.0   5784  1080 ?        S    08:47   0:00 dnsmasq --keep-in-foreground --strict-order --bind-interfaces --pid-file  --conf-file  --listen-address 192.168.122.1 --except-interface lo --dhcp-leasefile=/var/lib/libvirt/dhcp-default.leases --dhcp-range 192.168.122.2,192.168.122.254

If I have dnsmasq already running I have:

# ps awux | grep dnsm
dnsmasq   6373  0.0  0.0   5780   696 ?        S    08:48   0:00 /usr/sbin/dnsmasq -u dnsmasq -r /var/run/dnsmasq/resolv.conf
root      6457  0.0  0.0      0     0 ?        Z    08:49   0:00 [dnsmasq] <defunct>

because (this is what libvirt basically does):

# brctl addbr virbr0
# ifconfig virbr0 192.168.122.1
# dnsmasq --keep-in-foreground --strict-order --bind-interfaces --pid-file  --conf-file  --listen-address 192.168.122.1 --except-interface lo --dhcp-leasefile=/var/lib/libvirt/dhcp-default.leases --dhcp-range 192.168.122.2,192.168.122.254 
dnsmasq: failed to bind listening socket for 192.168.122.1: Address already in use

One can partially work around this by using:

DNSMASQ_OPTS=-z

in /etc/defaults/dnsmasq but even this only works as long as you don't
restart dnsmasq. There are two possible solutions I can think of:

* Using conf-file multiple times and running only one dnsmasq instance
  per defined libvirt network (we'd need to  restart the daemon when new
  networks come up)

* have the default dnsmasq instance ignore virbr* interface via a new
  commandline switch and have this instance use -z by default.

However, I'd still be interested why this works for you.
Cheers,
 -- Guido





More information about the Pkg-libvirt-maintainers mailing list