I just read this entire chain, and I'm surprised not to see mention of
using an NSS plugin, like Avahi (and ldap and NIS and /etc/hosts and DNS
itself).  I expect it would be simple enough to write a small NSS plugin
that merely calls the NM-dnsmasq (running on localhost on a port other
than 53) and placing it in front of (or instead of) "dns" on the hosts
line in /etc/nsswitch.conf. This would not conflict at *all* with any
local DNS servers, and would work for anything that used the libc
resolver.  It's also vastly cleaner than the "let's change multiple
upstream packages" options I see listed above.

For extra points, it's probably past time to make a "dbus" nss plugin,
which could be configured to talk to NM, which in turn would ask its
personal dnsmasq instance running on any available port, or however it
decided to track such things in the future.  This would be a clean
interface, with all resolving going through libc, with a well-defined
API chain (libc --NSS--> dbusplugin --DBUS--> NetworkManager --DNS-->
dnsmasq), and allow for NetworkManager to change the last step (DNS
protocol to dnsmasq) to whatever in the future without re-architecting
anything underneath.

Or have the NSS plugin directly access dnsmasq and have NetworkManager
manage its configuration, to follow dnsmasq port changes or what have
you. It's not as future-proof, but it still gets the job done without
conflicting with any resolvers.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to network-manager in Ubuntu.
https://bugs.launchpad.net/bugs/959037

Title:
  NM-controlled dnsmasq prevents other DNS servers from starting

Status in “djbdns” package in Ubuntu:
  Confirmed
Status in “dnsmasq” package in Ubuntu:
  Fix Released
Status in “network-manager” package in Ubuntu:
  Fix Released
Status in “pdns-recursor” package in Ubuntu:
  Invalid
Status in “pdnsd” package in Ubuntu:
  Invalid
Status in “djbdns” source package in Precise:
  Confirmed
Status in “dnsmasq” source package in Precise:
  Triaged
Status in “network-manager” source package in Precise:
  Triaged
Status in “pdns-recursor” source package in Precise:
  Invalid
Status in “pdnsd” source package in Precise:
  Invalid

Bug description:
  As described in
  https://blueprints.launchpad.net/ubuntu/+spec/foundations-p-dns-
  resolving, network manager now starts a dnsmasq instance for local DNS
  resolving.

  That breaks the default bind9 and dnsmasq installations, for people that 
actually want to install a DNS server.
  Having to manually comment out "#dns=dnsmasq" in 
/etc/NetworkManager/NetworkManager.conf doesn't sound good, and if it stays 
that way, it should be moved to the bind9 and dnsmasq postinst scripts.

  Please make network-manager smarter so that it checks if bind9 or
  dnsmasq are installed, so that it doesn't start the local resolver in
  that case.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/djbdns/+bug/959037/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to