[Bug 1991658] Re: 22.04 upgrade left DNS broken, resolv.conf pointing at resolvconf
Smylers
1991658 at bugs.launchpad.net
Tue Oct 4 13:43:40 UTC 2022
I'm pretty sure it was set up however Ubuntu 16.04 installed it,
followed by any changes made by the 16.04–18.04 and 18.04–20.04
upgrades. Those first 2 upgrade were seamless in terms of the networking
working, so either they didn't make any changes or they updated things
automatically as required.
DNS was specified in /etc/network/interfaces, with dns-nameservers and
dns-search lines. Booting brought up the network; /etc/resolve.conf was
a symlink to /run/resolvconf/resolv.conf, which was presumably generated
by resolvconf; the comments at the top seemed to be from
/etc/resolvconf/resolv.conf.d/head.
Name-servers could be displayed with systemd-resolve --status.
Host-names could be resolved with dig @127.0.0.53. I don't know what was
providing that (it just worked, so I didn't question it!), but networkd
claimed not to be running:
$ sudo systemctl status systemd-networkd
● systemd-networkd.service - Network Service
Loaded: loaded (/lib/systemd/system/systemd-networkd.service; disabled; ve>
Active: inactive (dead)
Does that help? Are there any other details that would be useful?
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1991658
Title:
22.04 upgrade left DNS broken, resolv.conf pointing at resolvconf
Status in systemd package in Ubuntu:
Incomplete
Bug description:
I upgraded a server from Ubuntu 20.04.x to 22.04.1. It had originally
been installed as 16.04, and upgraded through all the LTS releases.
Immediately after upgrade, DNS resolving wasn't working; no names
could be resolved.
• /etc/resolv.conf was pointing to /run/resolvconf/resolv.conf
• That file said not to edit it by hand, gave 127.0.0.53 as the only name-server, and to run systemd-resolve --status to see details about the actual name-servers.
• Running systemd-resolve said the command wasn't found.
• man resolvconf gave the manual page for resolvectl, which said it had supplanted resolvconf and was only partially backwards compatible, when running systemd-resolved.service.
• systemd-resolved didn't appear to be running. systemctl status systemd-networkd said it was dead.
To get DNS working, I initially edited /etc/resolv.conf by hand to put
our name-server's IP address in there.
I then created a netplan config (this server predates netplan, and no
previous upgrades had switched anything to use it) in
/etc/netplan/eth0.yaml with the IP address and name-server config.
netplan apply started a name-server on 127.0.0.53. /etc/resolv.conf
was untouched; I removed the IP address I'd manually added and names
continued to resolve.
But that left /etc/resolv.conf still with the outdated message about
systemd-resolve --status in it. I found /run/systemd/resolve/stub-
resolv.conf so switched /etc/resolv.conf to symlink to that; it now
has a comment to use resolvectl status, a command which actually
exists.
1. It would have been preferable if upgrading Ubuntu LTS–LTS didn't
break networking such that names no longer resolved.
2. If that breakage was inevitable from the set-up this server had,
it would have been much better if the upgrader had detected that and
declined to proceed with the upgrade — for instance by saying to
switch to netplan and systemd-networkd first.
3. If the upgrade disables resolvconf, then the /etc/resolv.conf
symlink should be switched to point to whatever its modern equivalent
is.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1991658/+subscriptions
More information about the foundations-bugs
mailing list