[Bug 1804487] [NEW] systemd-resolved has issues when the answer is over 512 bytes with EDNS disabled
Launchpad Bug Tracker
1804487 at bugs.launchpad.net
Thu Nov 29 16:23:02 UTC 2018
You have been subscribed to a public bug by Ubuntu Foundations Team Bug Bot (crichton):
[Impact]
TCP stub is cutting down the payload to 512 bytes when EDNS is disabled.
This makes non-EDNS clients (nslookup) receive a "shortened" answer even
when UDP returns a truncated reply for a new TCP query. For instance,
- If the client supports EDNS:
$ dig +noall +answer testing.irongiantdesign.com @127.0.0.53 | wc -l
30
- If the client does not support EDNS:
$ dig +noedns +noall +answer testing.irongiantdesign.com @127.0.0.53 | wc -l
29
In the second case, no-EDNS, TCP should provide the complete answer, but
it's capped at UDP's size.
[Test Case]
Query systemd-resolved with a domain name that resolves to multiple
(lots.. 30+) A records. A client with EDNS support (dig) will receive
all of them, a client without support (nslookup or dig +noedns) will
have a truncated list. Using the example above:
EDNS: dig +noall +answer testing.irongiantdesign.com @127.0.0.53 | wc -l
non-EDNS: dig +noedns +noall +answer testing.irongiantdesign.com @127.0.0.53 | wc -l
[Regression potential]
Minimal. This change only affects TCP requests, and the new size is
already used in the code for other requests.
[Other Info]
Upstream bug: https://github.com/systemd/systemd/issues/10816
Fixed upstream with commit: https://github.com/systemd/systemd/commit/e6eed9445956cfa496e1db933bfd3530db23bfce
[Original Description]
Querying a domain name that has >512 bytes in records (e.g. 30+ A
records), the number of results depends on the DNS client used:
- If the client supports EDNS:
$ dig +noall +answer testing.irongiantdesign.com @127.0.0.53 | wc -l
30
- If the client does not support EDNS:
$ dig +noedns +noall +answer testing.irongiantdesign.com @127.0.0.53 | wc -l
29
Normally a client that doesn't support EDNS would receive a truncated
reply from the initial UDP connection (limited by the spec to 512 bytes)
and a second query would be established via TCP to receive the complete
results. In this case, the number of results is the same regardless of
the protocol used (29).
Upstream bug: https://github.com/systemd/systemd/issues/10816
** Affects: systemd (Ubuntu)
Importance: High
Assignee: Victor Tapia (vtapia)
Status: In Progress
** Affects: systemd (Ubuntu Xenial)
Importance: Undecided
Status: Invalid
** Affects: systemd (Ubuntu Bionic)
Importance: High
Assignee: Victor Tapia (vtapia)
Status: In Progress
** Affects: systemd (Ubuntu Cosmic)
Importance: High
Assignee: Victor Tapia (vtapia)
Status: In Progress
** Affects: systemd (Ubuntu Disco)
Importance: High
Assignee: Victor Tapia (vtapia)
Status: In Progress
** Tags: patch sts
--
systemd-resolved has issues when the answer is over 512 bytes with EDNS disabled
https://bugs.launchpad.net/bugs/1804487
You received this bug notification because you are a member of Ubuntu Sponsors Team, which is subscribed to the bug report.
More information about the Ubuntu-sponsors
mailing list