[Pkg-utopia-maintainers] NM 0.7 Debian Lenny - strangest issue...
dcbw at redhat.com
Mon Jul 7 19:51:22 UTC 2008
On Mon, 2008-07-07 at 20:26 +0200, Michael Biebl wrote:
> Alexander Sack wrote:
> > On Sun, Jul 06, 2008 at 02:15:09AM -0400, Daniel Caleb wrote:
> >> Jul 6 01:27:38 allone NetworkManager: <info> DHCP returned name
> >> servers but system has disabled dynamic modification!
> > Looking at the current debian backend patch at , this appears to be
> > the case when resolvconf is installed. uninstalling that package
> > should get you back to "normal".
> > I am not sure about the reasoning for that modification atm. Michael?
> >  - http://svn.debian.org/wsvn/pkg-utopia/packages/experimental/networkmanager/debian/patches/05-debian_backend.patch?op=file&rev=0&sc=0
> Hi everyone,
> this patch  alone, is obviously incomplete. To better understand
> what's going on and how a possible fix could look like, I'll try to go
> into details a bit.
> On a standard Debian/Ubuntu installation, which *doesn't* use
> resolvconf, there are several mechanisms, how /etc/resolv.conf (the libc
> resolver config file) is managed/updated.
> - If you use ifupdown and a static configuration in
> /etc/network/interfaces, you setup a static /etc/resolv.conf manually.
> - If dhcp is used, the script /sbin/dhclient-script updates the dns
> information in /etc/resolv.conf with the information provided by the
> dhcp server. You can override/amend the information via the
> /etc/dhcp3/dhclient.conf configuration file (e.g. supersede domain-name,
> prepend domain-name-servers).
> dhcp3-client has it's own hook mechanism via
> /etc/dhcp3/dhclient-*-hooks.d/ to inform other applications on changes.
> - dialup connections: pppd updates /etc/resolv.conf upon successful
> connections via /etc/ppp/ip-up.d/0000usepeerdns
> If resolvconf is installed, it will take over the management of the dns
> information. In case of dhclient and pppd, instead of writing to
> /etc/resolv.conf directly, they simply pass the dns information to
> resolvconf via hooks for ifupdown/dhclient/ppp:
> resolvconf takes this information, merges it with the configuration in
> /etc/resolvconf/resolv.conf.d/ (where you e.g. can set a global dns
> server or search domain), then writes resolv.conf.
> In addition, it has a hook mechanism to inform other applications on
> changes via /etc/resolvconf/update.d/ (e.g. bind or dnsmasq install hooks).
> Now onto NM 0.6:
> NM 0.6 only handled the dhcp case, it didn't have proper support for
> static configuration or dialup connections. It also didn't allow to set
> dns configuration (like dns server, dns search domain).
> The interaction between dhclient and NM was via dhcdbd.
> NM simply called /sbin/dhclient-script.
> dhcdbd installed a hook /etc/dhcp3/dhclient-exit-hooks.d/dhcdbd, which
> extracted the dns information from the dhcp server and passed it back to
> dhcdbd, and NM then got dns information from dhcdbd and wrote
> /etc/resolv.conf with the information it got from dhcdbd.
> If resolvconf was installed, NM didn't write /etc/resolv.conf itself.
> This was left to /etc/dhcp3/dhclient-enter-hooks.d/resolvconf
> NM 0.7:
> NM 0.7 has a much more sophisticated support for dialup and static
> configurations. It allows for setting dns configuration on a per
> connection basis.
> For dhcp connections, it no longer calls /sbin/dhclient-script, but has
> it's own script nm-dhcp-client.action, which directly passes the dns
> information from dhclient to NM.
> So the hook /etc/dhcp3/dhclient-enter-hooks.d/resolvconf is no longer
> run, thus /etc/resolv.conf is no longer updated.
> Sjoerd made a quick fix, which calls /sbin/dhclient-script again ,
> for dhcp connections.
> I'm not yet totally satisfied with this approach:
> a.) It only works for dhcp connections.
> b.) It doesn't use the dns information you set via NM:
> I think there a two ways to address that:
> 1.) Completely ignore resolvconf and always let NM write and manage
> /etc/resolv.conf. NM 0.7 almost provides all functionality of
> resolvconf. What's missing is global dns configuration options (NM only
> allows per connection) and the /etc/resolvconf/update.d/ hook mechanisms.
> IIRC, dnsmasq provides a D-Bus interface nowadays, so we could use that
> 2.) If resolvconf is installed, change NM to not manage /etc/resolv.conf
> itself, but only pass the dns information to resolvconf (which then
> will write /etc/resolv.conf).
> The downside is, that resolvconf might have own dns configuration. So
> the resulting /etc/resolv.conf might differ from what NM expects it to be.
> I'm leaning towards 2.), but I'm open to other suggestions and comments.
I'm fine with #2 also; I'll take patches for this upstream.
But I have one question that I pointed out earlier. If you install
resolvconf, does that _necessarily_ imply that it is turned on? i.e. I
can install apache, but I don't actually have to run apache even if it's
installed. Does resolvconf have an on/off switch somewhere, or do you
have to uninstall it to turn it off?
More information about the Pkg-utopia-maintainers