← Back to team overview

sts-sponsors team mailing list archive

[Bug 1817903] [NEW] systemd-resolve appends "options edns0" to resolv.conf

 

You have been subscribed to a public bug by Eric Desrochers (slashd):

[impact]

systems upgraded from pre-Bionic releases to Bionic or later will
continue to use ifupdown/resolvconf for network conf and management, but
resolvconf has a new systemd service in Bionic and later that pulls
systemd-resolved stub-resolv.conf into its local configuration.  With
the recent addition of edns0 option to the stub resolver conf in systemd
to fix bug 1811471, this means resolvconf now sets up the
/etc/resolv.conf file to include upstream servers but also use edns.
For any systems where the upstream resolver(s) don't support edns, dns
lookups will break.

[test case]

== upgrade from pre-bionic (e.g. xenial) to bionic or later ==

1) create a xenial system with ifupdown/resolvconf.  The ifupdown config
needs to include an upstream name server (must be static).  At this
point, once the network is configured and up, the resolvconf should have
put the upstream name server(s) and search domain into the
/etc/resolv.conf.  As is usual for pre-systemd releases, there should be
no local dns resolver in /etc/resolv.conf (i.e. 127.0.0.53 should not be
included) at this point.

2) upgrade the system to bionic (alternately it should be possible to install bionic, then remove netplan and install/configure ifupdown and resolvconf, but I have not specifically tested this).  The upgrade will retain the ifupdown/resolvconf configuration, and will not change to netplan/systemd-networkd.  After upgrade is finished, the /etc/resolv.conf will contain:
  a) the upstream name server(s)
  b) options edns0
  c) the local stub resolver (127.0.0.53)
  d) search domain

the fixed resolvconf will remove (b) and (c), and restore
/etc/resolv.conf to what it contained in Xenial release, before the
upgrade to Bionic.

As mentioned, this case also should cover the situation of a native
Bionic install, where netplan is removed and ifupdown/resolvconf is
manually installed.

== bionic or later install ==

with a bionic install, ifupdown is not installed, instead netplan
/systemd-networkd handle networking.  In this case, systemd-networkd
manages the /etc/resolv.conf, and symlinks it to networkd's stub-
resolv.conf which always contains only the local stub resolver
(127.0.0.53) and (recently) options edns0, and local search domain.

If resolvconf is installed while systemd-networkd is managing the
network, then currently the resolv.conf contents will remain completely
unchanged, still pointing to the local stub resolver.

This resolvconf change will alter that, to revert the /etc/resolv.conf
to Xenial's contents; specifically, the upstream name server(s) and
search domain.  It will no longer include the local stub resolver nor
edns0.

[regression potential]

Regressions due to this change would likely be seen in dns query
failures with other system configurations.

Additionally, for the case where systemd-networkd is actually managing
the network, this change will stop sending dns traffic to the local stub
resolver, and instead send it to the upstream name server(s).  This will
increase outgoing dns traffic (since it's no longer cached locally), but
will matches the behavior from Xenial.  Additionally, resolvconf should
not be needed when systemd-networkd is managing the network (and thus
systemd-resolved is managing dns), and resolvconf can simply be
uninstalled from the system to move back to normal use of the local stub
resolver.

[other info]

This affects only Bionic and later; in Xenial and earlier, resolvconf
does not include the 'resolvconf-pull-resolved' service to pull in the
systemd-resolved stub config, which is what causes this problem.

This also does not affect Debian, as it does not include the
'resolvconf-pull-resolved' service either.

original description:

--

Mint 19 (Ubuntu 18.04)

Following latest mint update done on 24/02/2019, DNS is broken....

nslookup and dig of certain domain names work as expected, ping does not
(ip works but not domain name)

After a day of trial and error, testing I found that the problem lies
with the presence of

"options edns0"

in /run/resolvconf/resolv.conf (link to by /etc/resolv.conf)

With option present many dns lookups fail with both FF and chrome browswers and thunderbird...
This is on a home network, with router set as dns proxy for external wan, not using NetworkManager

Deleting the option on live system results in the issue immediately
disappearing, but on reboot it is added back in (by systemd-resolve ?)

I cannot find any option to prevent this being added, so presumably it
is hard-coded in systemd following the update?

systemd:
  Installed: 237-3ubuntu10.13

** Affects: resolvconf (Ubuntu)
     Importance: Critical
     Assignee: Dan Streetman (ddstreet)
         Status: In Progress

** Affects: systemd (Ubuntu)
     Importance: Undecided
         Status: Invalid

** Affects: resolvconf (Ubuntu Trusty)
     Importance: Undecided
         Status: Invalid

** Affects: systemd (Ubuntu Trusty)
     Importance: Undecided
         Status: Invalid

** Affects: resolvconf (Ubuntu Xenial)
     Importance: Undecided
         Status: Invalid

** Affects: systemd (Ubuntu Xenial)
     Importance: Undecided
         Status: Invalid

** Affects: resolvconf (Ubuntu Bionic)
     Importance: Critical
     Assignee: Dan Streetman (ddstreet)
         Status: In Progress

** Affects: systemd (Ubuntu Bionic)
     Importance: Undecided
         Status: Invalid

** Affects: resolvconf (Ubuntu Cosmic)
     Importance: Critical
     Assignee: Dan Streetman (ddstreet)
         Status: In Progress

** Affects: systemd (Ubuntu Cosmic)
     Importance: Undecided
         Status: Invalid

** Affects: resolvconf (Ubuntu Disco)
     Importance: Critical
     Assignee: Dan Streetman (ddstreet)
         Status: In Progress

** Affects: systemd (Ubuntu Disco)
     Importance: Undecided
         Status: Invalid


** Tags: patch regression-update sts verification-done verification-done-bionic verification-done-cosmic
-- 
systemd-resolve appends "options edns0" to resolv.conf
https://bugs.launchpad.net/bugs/1817903
You received this bug notification because you are a member of STS Sponsors, which is subscribed to the bug report.