[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