[Dnsmasq-discuss] New smart --bind-dynamic is greedy (binds also to interface aliases)

Andrew Bartlett abartlet at samba.org
Mon May 13 01:00:06 BST 2013

I've looked over the source code multiple times, and I can't see how it
happens, but I've just filed
https://bugzilla.redhat.com/show_bug.cgi?id=962246 with Fedora, and
figured I would also work here to see how this can be fixed.

I do agree that interface detection is some of the most crazy,
OS-specific code ever.  Oddly Samba has much the same challenge, but
seems to use a different set of APIs.  

In any case what happens is this:

dnsmasq is being run by libvirt like this:
/sbin/dnsmasq --strict-order --local=// --domain-needed
--pid-file=/var/run/libvirt/network/default.pid --conf-file=
--except-interface lo --bind-dynamic --interface virbr0 --dhcp-range,
--dhcp-lease-max=253 --dhcp-no-override

I then run:
ifconfig virbr0:0

And then I find dnsmasq has also chosen to bind to!

eg this in netstat

tcp        0      0*
LISTEN      1039/dnsmasq        
tcp        0      0*               LISTEN      1039/dnsmasq        
udp        0      0*                           1039/dnsmasq        
udp        0      0*                           1039/dnsmasq        
udp        0      0    *                           1039/dnsmasq        
unix  2      [ ]         DGRAM                    21571    1039/dnsmasq         

I'm presuming somewhere we are comparing on a name without the alias (:0) bit, or doing a length-limited comparison, but I've looked and just can't find it!

Andrew Bartlett

Andrew Bartlett                                http://samba.org/~abartlet/
Authentication Developer, Samba Team           http://samba.org

More information about the Dnsmasq-discuss mailing list