Bug#1064133: systemd-resolved: Using systemd-resolved as drop-in replacements breaks in conjunction with ifupdown

Felix Jacobi felix at jacobi-bs.de
Sat Feb 17 15:00:08 GMT 2024


Package: systemd-resolved
Version: 252.22-1~deb12u1
Severity: important
Tags: upstream
X-Debbugs-Cc: felix at jacobi-bs.de


Since Debian Bookworm, systemd-resolved cannot be installed along with
resolvconf anymore and provides its own stub implementation of this
command.

However, when using it in conjunction with ifupdown, this overrides either
IPv4 or IPv6 nameservers.

Considers the following /etc/network/interfaces:

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto ens3
iface ens3 inet static
  address 192.0.0.2/24
  gateway 192.0.0.1
  dns-nameservers 192.0.0.1

iface ens3 inet6 static
  address 2001:db8::2/64
  netmask 64
  gateway fe80::1
  dns-nameservers 2001:db8::1

In background, this executes `resolvconf -a IFACE.PROTOCOL` and supplies
the nameservers to resolvconf, e.g.

echo 'nameserver 192.0.0.1' | resolvconf -a ens3.inet

However, the systemd-resolved resolvconf implementation removes the
protocol indentifier:

echo "nameserver 192.0.0.1" | resolvconf -a ens3.inet
Dropped protocol specifier '.inet' from 'ens3.inet'. Using 'ens3' (ifindex=2).

This leads to the fact, that only ens3 is used internally. For the
configuration above, this means the previous configured IPv4 nameserver
is completely overriddden with the latter one in the IPv6 stanza.

This also causes several other problems for tools relying on resolvconf
not dropping the protocol identifier and I would consider this a
breaking change compared to the original resolvconf implementation.

-- System Information:
Debian Release: 12.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.1.0-13-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages systemd-resolved depends on:
ii  dbus [default-dbus-system-bus]  1.14.10-1~deb12u1
ii  libc6                           2.36-9+deb12u4
ii  libssl3                         3.0.11-1~deb12u2
ii  libsystemd-shared               252.22-1~deb12u1
ii  systemd                         252.22-1~deb12u1

Versions of packages systemd-resolved recommends:
ii  libnss-myhostname  252.22-1~deb12u1
pn  libnss-resolve     <none>

Versions of packages systemd-resolved suggests:
ii  polkitd  122-3

-- no debconf information

---
Kind regards
Felix Jacobi



More information about the Pkg-systemd-maintainers mailing list