Hello,
I am experiencing intermittent/specific-domain DNS resolution failures with Unbound 1.26.1 on a Raspberry Pi running Pi-hole.
System:
- Raspberry Pi, ARM64
- Debian 13 (Trixie)
- Unbound 1.26.1-0+deb13u1
- Pi-hole FTL 6.7.1
- dig 9.20.29-1~deb13u1-Debian
- Unbound listening on 127.0.0.1:5335
- DNSSEC enabled
- auto-trust-anchor-file: “/var/lib/unbound/root.key”
Unbound and DNSSEC otherwise appear to be working correctly.
For example:
dig cloudflare.com @127.0.0.1 -p 5335 +dnssec
returns:
flags: qr rd ra ad
and an RRSIG record.
Therefore DNSSEC validation is definitely working through Unbound.
CURRENT REPRODUCIBLE PROBLEM
The current reproducible problem is:
my-account.spectator.co.uk
Running:
dig my-account.spectator.co.uk @127.0.0.1 -p 5335 +dnssec
results in repeated timeouts:
communications error to 127.0.0.1#5335: timed out
no servers could be reached
However, the same query through Cloudflare succeeds immediately:
dig my-account.spectator.co.uk @1.1.1.1 +dnssec
Cloudflare returns:
my-account.spectator.co.uk. CNAME my-account.coeditor.io.
my-account.coeditor.io. CNAME d35ystitntcfyq.cloudfront.net.
followed by four CloudFront A records.
I can also query the authoritative DNS server directly:
dig my-account.coeditor.io @gabe.ns.cloudflare.com +dnssec
which returns immediately:
my-account.coeditor.io. 300 IN CNAME d35ystitntcfyq.cloudfront.net.
The final CloudFront hostname also resolves successfully through Unbound:
dig d35ystitntcfyq.cloudfront.net @127.0.0.1 -p 5335 +dnssec
returns NOERROR immediately with four A records.
I also checked the delegation:
dig NS coeditor.io @1.1.1.1 +dnssec
which returns:
gabe.ns.cloudflare.com.
kay.ns.cloudflare.com.
There is no DS record for coeditor.io:
dig DS coeditor.io @1.1.1.1 +dnssec
returns ANSWER: 0.
I flushed the Unbound cache for the zone:
sudo unbound-control flush_zone coeditor.io
which returned:
ok removed 2 rrsets, 1 messages and 0 key entries
but the query continued to time out.
OTHER DOMAINS
I previously saw similar intermittent behaviour with:
spectator.com
and:
archive.today
The spectator.com problem subsequently resolved, so my-account.spectator.co.uk is currently the reproducible example.
I am not claiming these necessarily have the same cause, but the common feature is that the domains work through public recursive resolvers while Unbound can time out during resolution.
The problem is particularly noticeable on an iPhone using WireGuard with Pi-hole as its DNS server. Pi-hole forwards the requests to Unbound, but receives no response for my-account.spectator.co.uk. Other devices using the same network can work normally.
I have not changed the Unbound source or made any unusual configuration changes.
My main question is:
Could this be related to DNSSEC, EDNS, CNAME processing, iterator behaviour, or another change/issue in Unbound 1.26.1?
I would be interested to know what additional diagnostic information would be useful.
Thanks.