-
Notifications
You must be signed in to change notification settings - Fork 974
Description
At Let's Encrypt, we use an Unbound recursive resolver with DNSSEC validation enabled, and DNS 0x20 (use-caps-for-id in unbound). We've gotten reports of problems from a couple of users who have PowerDNS as their authoritative resolvers:
https://community.letsencrypt.org/t/powerdns-cant-find-why-caa-servfails/38127
https://community.letsencrypt.org/t/help-diagnosing-caa-failures-ns1-cyso-nl/38461
Specifically, it seems that DNSSEC validation fails when a mixed-case query is made and the response is empty. There's some plausible speculation on our forum and on the unbound-users mailing list that this is because PowerDNS is signing a response containing the mixed-case qname, rather than downcasing before signing.
Caching seems to play a confounding role: If a downcased CAA query was sent first, the signed, cached response will validate, and subsequent mixed-case queries will get that valid response until it expires.