[Bug 1785383] Re: missing EDNS0 record confuses systemd-resolved
Launchpad Bug Tracker
1785383 at bugs.launchpad.net
Wed Jun 16 15:59:22 UTC 2021
This bug was fixed in the package systemd - 237-3ubuntu10.48
---------------
systemd (237-3ubuntu10.48) bionic; urgency=medium
* d/p/lp1925216-seccomp-rework-functions-for-parsing-system-call-fil.patch:
Downgrade syscall group parsing failure logs to debug (LP: #1925216)
https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=8c0181e24f7c0128a48c706d1f4b28ec0f225fd7
* d/p/lp1929560-network-move-set-MAC-and-set-nomaster-operations-out.patch:
Move link mac and master config out of link_up() (LP: #1929560)
https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=d808ea22366ca7ba4b5bb32815ab0ca2eea8a49f
* d/p/resolved-Mitigate-DVE-2018-0001-by-retrying-NXDOMAIN-with.patch,
d/p/resolved_disable-connection-downgrade-when-DNSSEC-yes.patch,
d/p/lp1880258-log-nxdomain-as-debug.patch,
d/p/lp1785383-resolved-address-DVE-2018-0001.patch:
- Use upstream patch for DVE-2018-0001 handling (LP: #1785383)
https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=b6258fda64c84c34b0f8026e6e29bcfffa8dc4f1
-- Dan Streetman <ddstreet at canonical.com> Thu, 27 May 2021 11:18:38
-0400
** Changed in: systemd (Ubuntu Bionic)
Status: Fix Committed => Fix Released
--
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/1785383
Title:
missing EDNS0 record confuses systemd-resolved
Status in systemd:
Fix Released
Status in dnsmasq package in Ubuntu:
Fix Released
Status in systemd package in Ubuntu:
Fix Committed
Status in dnsmasq source package in Bionic:
Triaged
Status in systemd source package in Bionic:
Fix Released
Status in dnsmasq source package in Focal:
Fix Released
Status in systemd source package in Focal:
Fix Released
Status in dnsmasq source package in Groovy:
Fix Released
Status in systemd source package in Groovy:
Fix Released
Status in dnsmasq source package in Hirsute:
Fix Released
Status in systemd source package in Hirsute:
Fix Released
Status in dnsmasq source package in Impish:
Fix Released
Status in systemd source package in Impish:
Fix Committed
Bug description:
[Impact]
dnsmasq 2.79 and below omits EDNS0 OPT records when returning an empty answer for a domain it is authoritative for. systemd-resolved seems to get confused by this in certain circumstances; when using the stub resolver and requesting an address for which there are no AAAA records, there can sometimes be a five second hang in resolution.
[Fix]
This is fixed by upstream commit http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=1682d15a744880b0398af75eadf68fe66128af78
Not sure if it is worth cherry picking? I imagine the most likely
trigger will be dnsmasq on routers which are not likely to be running
Ubuntu, but maybe just in case.
I also think there are some logic issues in systemd-resolved, upstream
bug filed:
https://github.com/systemd/systemd/issues/9785
[Test Case]
Simple-ish test case for bionic:
---
IFACE=dummy0
SUBNET=10.0.0
ip link add $IFACE type dummy
ifconfig $IFACE ${SUBNET}.1/24
dnsmasq -h -R -d -C /dev/null -2 $IFACE -z -i $IFACE -I lo --host-record=test.test,${SUBNET}.1 --server=/test/ &
dig -t a test.test @10.0.0.1 | grep EDNS
# should return "; EDNS ..."
dig -t aaaa test.test @10.0.0.1 | grep EDNS
# again, should return "; EDNS ..." but doesn't
---
To reproduce the systemd-resolved side of the problem
---
# as above, but
# now configure systemd-resolved to look at only 10.0.0.1, then
systemd-resolve --reset-server-features
# should exhibit five second delay then connect, assuming sshd is running :)
ssh test.test
---
More detailed test case for focal and later:
install dnsmasq on a bionic system and start it, listening to an
interface that is externally reachable, e.g. for a normal libvirt vm
with interface name 'ens3':
IFACE=ens3
dnsmasq -h -R -d -C /dev/null -2 $IFACE -z -i $IFACE -I lo --host-record=test.test,1.2.3.4 --server=/test/
note that the '1.2.3.4' address doesn't matter, any addr is ok.
then setup a test system that can reach the dnsmasq system, and
configure networkd to use the dnsmasq server, e.g. using config like:
[Match]
Name=ens3
[Network]
DHCP=yes
DNS=DNSMASQ_IP_ADDRESS
Domains=test
[DHCPv4]
UseDNS=no
UseDomains=no
replace 'DNSMASQ_IP_ADDRESS' with the addr of the bionic system where
dnsmasq is running, and replace 'ens3' with whatever the test system
interface name is. Then restart systemd-networkd, and test:
systemd-resolve --reset-server-features
systemd-resolve --flush-caches
host test.test
The lookup using 'host' should complete immediately;.
[Discussion]
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: dnsmasq-base 2.79-1
ProcVersionSignature: Ubuntu 4.15.0-23.25-generic 4.15.18
Uname: Linux 4.15.0-23-generic x86_64
ApportVersion: 2.20.9-0ubuntu7.2
Architecture: amd64
Date: Sat Aug 4 11:33:56 2018
InstallationDate: Installed on 2018-05-31 (64 days ago)
InstallationMedia: Xubuntu 18.04 LTS "Bionic Beaver" - Release amd64 (20180426)
ProcEnviron:
TERM=xterm
PATH=(custom, no user)
LANG=en_GB.UTF-8
SHELL=/bin/bash
SourcePackage: dnsmasq
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/systemd/+bug/1785383/+subscriptions
More information about the foundations-bugs
mailing list