Comment 66 for bug 959037

Revision history for this message
Thomas Hood (jdthood) wrote : Re: NM-controlled dnsmasq prevents other DNS servers from running, yet network-manager doesn't Conflict with their packages

Simon:
> If you can make #2 happen without breaking things, that would seem to be worth doing

Indeed, primum non nocere. Standalone dnsmasq works fine in the absence of NM+dnsmasq and vice versa and this must continue to be the case when we are done. :)

> I guess the main problem is that you need dnsmasq 2.61

As this issue has low importance I imagine it will only be fixed in quantal?

Simon:
> Further to #2 and getting dnsmasq support. I found a bug last night
> that means that dnsmasq --listen-address=<ip addr> where <ip addr>
> is not on an interface, will listen on port 69 of <ip addr> even if
> tftp is not enabled

I just changed the lines in NetworkManager C code: s/127.0.0.1/127.0.0.2/. With this change nm-dnsmasq does indeed not listen... unless address 127.0.0.2 is added to lo. But then standalone "dnsmasq --bind-interfaces" won't start unless that address is removed from lo again.

Once they have both been started in this way they both work --- standalone dnsmasq forwarding to nm-dnsmasq and the latter forwarding to the upstream nameservers.

The reason they cascade in this order is that dnsmasq registers 127.0.0.1 under the name "lo.dnsmasq" which has a high priority according to /etc/resolvconf/interface-order; it thus appears in resolv.conf. NM registers 127.0.0.2 with resolvconf and this is given to standalone dnsmasq by /etc/resolvconf/update.d/dnsmasq as its forwarding address. Nm-dnsmasq is given the addresses of the upstream nameservers by NM in /var/run/nm-dns-dnsmasq.conf.