What is the actual purpose of the "Use DNSSEC" option?

Hi there! First time poster. I'm a big fan of the work you're all doing.

I have trouble figuring out what is the real usage of the "Use DNSSEC" option in Settings. The way I see it, most of the Pi-hole workflows would most likely fall into one of these categories:

  • Forwarding requests to an upstream DNS server that supports DNSSEC. In this scenario, the DNSSEC validation will be done by the resolver the requests are forwarded to.

  • Forwarding requests to an upstream DNS server that supports DNSSEC while using a local DNS proxy to enable to use of DNSCrypt/DoT/DoH. The DNSSEC validation is still done by the upstream resolver.

  • Using a local resolver like Unbound. The DNSSEC validation would then be done by the local resolver (Unbound).

In these cases, the DNSSEC validation is always done outside of the Pi-hole.

I thought this option could be useful for validating DNSSEC in the event of someone using an upstream DNS resolver not supporting DNSSEC, but the comment under the option in Settings explicitly warns against doing this:
"If a domain fails validation or the upstream does not support DNSSEC, this setting can cause issues resolving domains. Use Google, Cloudflare, DNS.WATCH, Quad9, or another DNS server which supports DNSSEC when activating DNSSEC".

Nevertheless, enabling the option does give a really neat level of insight about the DNSSEC support of domains with the Secure/Insecure/Bogus status. But in my experience with my workflow (Pi-hole --> DNS proxy [Cloudflared or DNSCrypt-Proxy enabling DoH] --> Quad9), the Pi-hole validation also introduces some false positives, marking a certain number of requests "Bogus" when they shouldn't be. Not a lot, but enough to be regularly disruptive.

So in what cases can the "Use DNSSEC" option be really useful?

Oh, and I wanted to take the opportunity to congratulate everybody involved in the 5.0 release. This release rocks! I love it so much!

This is due to known bugs in dnsmasq 2.80, which ships with V4.x of Pi-hole. The newly release V5.0 of Pi-hole embeds dnsmasq 2.81, which is reported to resolve these problems.

Thanks! You really intrigued me so I tried enabling the DNSSEC option again (I'm on 5.0 since yesterday evening). I still got a false positive (trying to access the ICANN website, of all places!). If this can be useful, here's the slightly sanitized relevant part of the pihole.log:

dnsmasq[3680]: query[A] www.icann.org from *.*.*.*
dnsmasq[3680]: forwarded www.icann.org to 127.0.0.1
dnsmasq[3680]: dnssec-query[DS] org to 127.0.0.1
dnsmasq[3680]: reply org is DS keytag 17883, algo 7, digest 1
dnsmasq[3680]: reply org is DS keytag 17883, algo 7, digest 2
dnsmasq[3680]: dnssec-query[DS] icann.org to 127.0.0.1
dnsmasq[3680]: dnssec-query[DNSKEY] org to 127.0.0.1
dnsmasq[3680]: reply org is DNSKEY keytag 62165, algo 7
dnsmasq[3680]: reply org is DNSKEY keytag 27074, algo 7
dnsmasq[3680]: reply org is DNSKEY keytag 17883, algo 7
dnsmasq[3680]: reply icann.org is DS keytag 17248, algo 7, digest 1
dnsmasq[3680]: reply icann.org is DS keytag 18060, algo 7, digest 1
dnsmasq[3680]: reply icann.org is DS keytag 17248, algo 7, digest 2
dnsmasq[3680]: reply icann.org is DS keytag 18060, algo 7, digest 2
dnsmasq[3680]: reply icann.org is DS keytag 41643, algo 7, digest 2
dnsmasq[3680]: reply icann.org is DS keytag 32134, algo 7, digest 2
dnsmasq[3680]: reply icann.org is DS keytag 41643, algo 7, digest 1
dnsmasq[3680]: reply icann.org is DS keytag 32134, algo 7, digest 1
dnsmasq[3680]: reply icann.org is DS keytag 41334, algo 7, digest 1
dnsmasq[3680]: reply icann.org is DS keytag 41334, algo 7, digest 2
dnsmasq[3680]: dnssec-query[DNSKEY] icann.org to 127.0.0.1
dnsmasq[3680]: reply icann.org is DNSKEY keytag 64512, algo 7
dnsmasq[3680]: reply icann.org is DNSKEY keytag 53844, algo 7
dnsmasq[3680]: reply icann.org is DNSKEY keytag 18060, algo 7
dnsmasq[3680]: reply icann.org is DNSKEY keytag 23584, algo 7
dnsmasq[3680]: dnssec-query[DS] vip.icann.org to 127.0.0.1
dnsmasq[3680]: reply vip.icann.org is DS keytag 45993, algo 7, digest 1
dnsmasq[3680]: reply vip.icann.org is DS keytag 45993, algo 7, digest 2
dnsmasq[3680]: dnssec-query[DNSKEY] vip.icann.org to 127.0.0.1
dnsmasq[3680]: reply www.icann.org is <CNAME>
dnsmasq[3680]: reply www.vip.icann.org is 192.0.32.7
dnsmasq[3831]: query[A] www.icann.org from *.*.*.*
dnsmasq[3831]: forwarded www.icann.org to 127.0.0.1
dnsmasq[3831]: dnssec-query[DNSKEY] vip.icann.org to 127.0.0.1
dnsmasq[3831]: validation www.icann.org is BOGUS
dnsmasq[3831]: reply www.icann.org is <CNAME>
dnsmasq[3831]: reply www.vip.icann.org is 192.0.32.7

The Verisign DNSSEC Analyzer doesn't report any problem with the ICANN website (DNSSEC Analyzer - www.icann.org), and when flagged as BOGUS by the Pi-hole, I could load the website correctly after trying to repeatedly access it a few times with the DIG command. This behavior is exactly what I was seeing with the 4.4 release.

Please let me know if I can be of any more help.