#690540 libvirt-bin: dnsmasq should not use option --bind-interfaces

#690540#5
Date:
2012-10-15 11:09:38 UTC
From:
To:
Hi there!

While debugging #689221, I experienced such a bug, which is actually the
counterpart of #504605, which I still think it deserves a better
solution ;-)

=====
root@gismo:/srv/tftp/QNAP_TS-409U# ps aux | grep virt
nobody    1480  0.0  0.0  19864   908 ?        S    12:16   0:00 \
 /usr/sbin/dnsmasq --strict-order --bind-interfaces \
  --pid-file=/var/run/libvirt/network/default.pid --conf-file= \
  --except-interface lo --listen-address 192.168.122.1 \
  --dhcp-range 192.168.122.2,192.168.122.254 \
  --dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases \
  --dhcp-lease-max=253 --dhcp-no-override \
  --dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile
root      3134  0.0  0.2 273392  7084 ?        Sl   Oct14   0:00 /usr/sbin/libvirtd -d
root      4045  0.0  0.0   7828   888 pts/5    S+   12:27   0:00 grep virt

root@gismo:/srv/tftp/QNAP_TS-409U# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:d3:2c:fc:f5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.11/24 scope global eth0
    inet6 fe80::216:d3ff:fe2c:fcf5/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:19:d2:07:2c:a0 brd ff:ff:ff:ff:ff:ff
6: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
    link/ether ea:65:11:58:3b:99 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

root@gismo:/srv/tftp/QNAP_TS-409U# dnsmasq --no-daemon \
 --enable-tftp --tftp-root=/srv/tftp/QNAP_TS-409U/

dnsmasq: failed to create listening socket for port 53: Address already in use

root@gismo:/srv/tftp/QNAP_TS-409U# dnsmasq --no-daemon \
 --enable-tftp --tftp-root=/srv/tftp/QNAP_TS-409U/ \
 --bind-interfaces

dnsmasq: failed to create listening socket for 192.168.122.1: Address already in use

root@gismo:/srv/tftp/QNAP_TS-409U# dnsmasq--no-daemon \
 --enable-tftp --tftp-root=/srv/tftp/QNAP_TS-409U/ \
 --bind-interfaces --except-interface virbr0
dnsmasq: started, version 2.63 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack
dnsmasq-tftp: TFTP root is /srv/tftp/QNAP_TS-409U/
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 192.168.210.1#53
dnsmasq: read /etc/hosts - 11 addresses
^C

root@gismo:/srv/tftp/QNAP_TS-409U#
=====

Even after having read #504605, I fail to see why dnsmasq started by
libvirt should need --bind-interfaces at all, but I am probably missing
something.  dnsmasq_2.63 introduced a new bind option, I would say
better than the above:

#690540#10
Date:
2012-10-15 14:09:17 UTC
From:
To:
bind-interaces makes sure that dnsmasq only binds to the interfaces used
by your libvirt configuration so I think it's correct.. I'm not sure I
understand why this is bad.
The dnsmasq you start afterwards should ignore those. Let's take Simon
into the loop since I'd value his opinion on this one.
Cheers,
 -- Guido

#690540#15
Date:
2014-05-04 11:56:15 UTC
From:
To:
Hi,

It uses bind-dynamic nowadays. Is this more what you'd expected?
Cheers,
 -- Guido

#690540#20
Date:
2014-07-01 08:34:47 UTC
From:
To:
user contact@itopie.ch
usertags 690540 + itopie.ch.it-virtualization
thanks

Hi Guido,

What does "nowadays" mean?  And for whom, dnsmasq or libvirt?  The bug
is still present in wheezy-backports:
=====
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 7 (wheezy)"
NAME="Debian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support/"
BUG_REPORT_URL="http://bugs.debian.org/"
# dpkg-query -W \*libvirt\*
libvirt-bin     1.2.4-1~bpo70+1
libvirt0        1.2.4-1~bpo70+1
# cat /var/lib/libvirt/dnsmasq/default.conf
##WARNING:  THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY
TO BE
##OVERWRITTEN AND LOST.  Changes to this configuration should be made
using:
##    virsh net-edit default
## or other application using the libvirt API.
##
## dnsmasq conf file created by libvirt
strict-order
pid-file=/var/run/libvirt/network/default.pid
except-interface=lo
bind-interfaces
listen-address=192.168.122.1
dhcp-range=192.168.122.2,192.168.122.254
dhcp-no-override
dhcp-leasefile=/var/lib/libvirt/dnsmasq/default.leases
dhcp-lease-max=253
dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default.hostsfile
addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts
#
=====

Thx, bye,
Gismo / Luca

#690540#25
Date:
2015-09-05 13:16:47 UTC
From:
To:
Hi Luca,
sorry for not following up earlier...

On Tue, Jul 01, 2014 at 10:34:47AM +0200, Luca Capello wrote:
[..snip..]

But these two lines mean "bind to the interface with address
192.168.122.1 and only this interface" - at least that is the
intention. Isn't that what one would expect?  This will make sure
dnsmasq does not interfere with other interfaces.

Using things like bind-dynamic would only make things worse since we'd
then bind to new interfaces which another (not libvirt managed) dnsmasq,
bind or whatever instance would listen to.

Cheers,
 -- Guido

#690540#30
Date:
2017-02-19 14:30:05 UTC
From:
To:
Dear Customer,


Your parcel was successfully delivered February 16 to UPS Station, but our courier cound not contact you.


Please check the attachment for complete details!


With gratitude,
Herman Wells,
UPS Operation Manager.

#690540#35
Date:
2017-03-02 18:33:35 UTC
From:
To:
Dear Customer,



Your parcel was successfully delivered February 28 to UPS Station, but our courier cound not contact you.



You can find more details in this e-mail attachment!



With thanks and appreciation,

Jamie Rush,

UPS Chief Station Manager.