What I'm trying to achieve is this: use resolvconf instead of resolved
in Ubuntu 17.10. There is a bug when one tries to do so.

This is a fresh install on a laptop using the desktop installation DVD.

resolv.conf points to /run/resolvconf/resolv.conf and is managed by

I have NetworkManager and resolvconf enabled for interfaces not managed
by ifupdown, as shown in NetworkManager.conf in the initial report. I'm
using ifupdown for ethernet interfaces, NetworkManager for Wi-Fi.

The steps to reproduce are:
1. Install and enable resolvconf
2. Stop and mask resolved
3. Configure NetworkManager for resolvconf and ifupdown
4. Configure an interface in ifupdown for dhcp
5. Connect to the network

I agree that overriding make_resolv_conf() is good and necessary.
However, the scripts that do so currently do it blindly, even when the
service they support is disabled. My patch adds a simple sanity check to
ensure that disabled services don't run a script that will break DHCP
for enabled services.

I've described what was done to my system. If you have further
questions, please let me know. My goal is to use resolvconf in the place
of resolved. In doing so, I uncovered a bug in the dhcp hook scripts for
both resolved and resolvconf and I've provided a working patch for those
bugs. The patches have been running successfully on my systems for

All I ask is for consideration of the patches I've provided, not a
criticism of choosing resolvconf over resolved.

You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.

  Disabling systemd-resolved breaks dhclient resolvconf integration

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

Bug description:
  To reproduce, mask resolved:
  sudo systemctl mask systemd-resolved.service

  ...then disable network-manager for ifupdown interfaces:
  $cat /etc/NetworkManager/NetworkManager.conf              



  ...and reboot.

  You'll note that resolvconf integration with dhclient is now broken.
  Interfaces listed in /etc/network/interfaces or
  /etc/network/interfaces.d/* will not provide DNS configuration in
  /etc/resolv.conf and /run/resolvconf/interfaces/.

  This is because /etc/dhcp/dhclient-enter-hooks.d/resolvconf defines
  "make_resolv_conf()" as a valid function for the BOUND case, but
  /etc/dhcp/dhclient-enter-hooks.d/resolved undefines it (who's nasty
  now, eh?) even though resolved is masked.

  The file existence check in the beginning of /etc/dhcp/dhclient-enter-
  hooks.d/resolved should be more thorough, i.e. it should ensure that
  resolved is enabled, rather than simply look for the existence of
  /lib/systemd/systemd-resolved. This works for me:

  -if [ -x /lib/systemd/systemd-resolved ] ; then
  +if [ -x /lib/systemd/systemd-resolved ] && systemctl -q is-enabled 
systemd-resolved ; then

  Arguably, /etc/dhcp/dhclient-enter-hooks.d/resolvconf should implement
  a similar check, looking for /run/resolvconf/enable-updates as a
  condition for meddling with DNS settings. If desired, I'll file a
  separate bug for that package.

To manage notifications about this bug go to:

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

Reply via email to