[Bug 1782275] Re: Conflict between resolvconf and systemd-resolved dhclient scripts

Daniel Richard G. skunk at iskunk.org
Fri Jul 20 18:25:34 UTC 2018


This issue can be addressed with a manual action, but first you have to
dig into the scripts to diagnose the problem, and really if resolvconf
is installed then it should just work.

Part of this setup involves disabling systemd-resolved, in favor of a
"direct" /etc/resolv.conf, to match the network configuration of other
systems at my site. We've also found resolvconf to be a good solution to
allow flexibility in how the dynamic resolv.conf file is assembled.

There are at least two issues that I can see here:

1. When there is more than one script in /etc/dhcp/dhclient-enter-
hooks.d/ that defines the make_resolv_conf() shell function, the last
definition is the one that "wins." If the "resolvconf" script is renamed
to e.g. "zz-resolvconf", then it works correctly. This may be a case for
renaming systemd's "resolved" script to something like "00resolved"
(borrowing an idea from /etc/X11/Xsession.d/), since it is always
present in an out-of-the-box install.

2. The "resolved" script takes effect if the /lib/systemd/systemd-
resolved executable is present, when it should probably also check that
systemd-resolved is enabled. Currently, the script runs even if systemd-
resolved is not active, effectively turning into a no-op (albeit a no-op
that clobbers resolvconf's functionality).

   That would also fix another use case, where systemd-resolved is
disabled and resolvconf is absent. In that scenario, the default
make_resolv_conf() function from /sbin/dhclient-script should be used.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to resolvconf in Ubuntu.
https://bugs.launchpad.net/bugs/1782275

Title:
  Conflict between resolvconf and systemd-resolved dhclient scripts

Status in resolvconf package in Ubuntu:
  New
Status in systemd package in Ubuntu:
  New

Bug description:
  I am setting up an Ubuntu 18.04 (bionic) system with ifupdown instead
  of netplan, as the latter does not meet my needs. I am using
  resolvconf to update /etc/resolv.conf from DHCP, as in earlier
  releases.

  Unfortunately, I am not seeing /etc/resolv.conf (actually a symlink to
  /run/resolvconf/resolv.conf) being updated; it is only the boilerplate
  from /etc/resolvconf/resolv.conf.d/head with no server information
  appended. (My "base" and "tail" files are empty.)

  I poked around the scripts in /etc, and believe I have found the
  problem.

  When resolvconf is installed, the following two files are present:

      /etc/dhcp/dhclient-enter-hooks.d/resolvconf
      /etc/dhcp/dhclient-enter-hooks.d/resolved

  Both of these scripts define the make_resolv_conf() shell function.
  What I am seeing is that dhclient runs these two scripts in the
  (alphabetical) order shown, and as the resolved script runs second, it
  overwrites the resolvconf version of the shell function with its own.
  As a result, dhclient does not invoke the appropriate update command
  for resolvconf, even though the hook script was installed correctly.

  Normally, I would remove the package that is providing the "resolved"
  script, but this package is systemd, which cannot be removed. I am not
  sure which of the two packages (resolvconf or systemd) needs to make
  an accommodation for the other, but it is clear that the current
  approach does not work.

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



More information about the foundations-bugs mailing list