[dns-operations] Cloudflare public DNS sometimes forwards incomplete&duplicated subset of NSEC RRs

Viktor Dukhovni ietf-dane at dukhovni.org
Tue Sep 1 05:48:17 UTC 2020


My validating resolver downstream of CF 1.1.1.1 (among others) at times
sees "bogus" denial of existence for:

    _25._tcp.mx.runbox.com IN TLSA ?

This is because the set of NSEC records forwarded by Cloudflare for this
domain is not complete.  Looking across the major public DNS services:

    * All return AD=1
    * I see the same zone apex SOA and signature for all
    * The same NSEC record and signature for "munin01" for all
    * The apex wildcard record and signature identically ONLY from
      Google, Verisign and Quad9.  From CloudFlare, I get the munin01
      NSEC record and signature twice, but this alone fails to validate the
      NODATA response.

CF ->   @ 1.1.1.1 _25._tcp.mx.runbox.com. IN TLSA ? ; +dnssec
        runbox.com. IN SOA dns61.copyleft.no. hostmaster at copyleft.no. 3000008471 14400 3600 1296000 3600
        runbox.com. IN RRSIG SOA 13 2 86400 20200914155225 20200831142225 38438 runbox.com. <same SOA sig>
        munin01.runbox.com. IN NSEC ipmi.mysql01.runbox.com. A RRSIG NSEC
        munin01.runbox.com. IN RRSIG NSEC 13 3 3600 20200914155225 20200831142225 38438 runbox.com. <munin01-nsec-sig>
        munin01.runbox.com. IN NSEC ipmi.mysql01.runbox.com. A RRSIG NSEC
        munin01.runbox.com. IN RRSIG NSEC 13 3 3600 20200914155225 20200831142225 38438 runbox.com. <munin01-nsec-sig>

GOOG -> @ 8.8.8.8 _25._tcp.mx.runbox.com. IN TLSA ?
        runbox.com. IN SOA dns61.copyleft.no. hostmaster at copyleft.no. 3000008471 14400 3600 1296000 3600
        *.runbox.com. IN NSEC _acme-challenge.runbox.com. A MX RRSIG NSEC
        munin01.runbox.com. IN NSEC ipmi.mysql01.runbox.com. A RRSIG NSEC
        runbox.com. IN RRSIG SOA 13 2 86400 20200914155225 20200831142225 38438 runbox.com. <same SOA sig>
        *.runbox.com. IN RRSIG NSEC 13 2 3600 20200914155225 20200831142225 38438 runbox.com. <apex-wildcard-sig>
        munin01.runbox.com. IN RRSIG NSEC 13 3 3600 20200914155225 20200831142225 38438 runbox.com. <munin01-nsec-sig>

VRSN -> @ 64.6.64.6 _25._tcp.mx.runbox.com. IN TLSA ?
        runbox.com. IN SOA dns61.copyleft.no. hostmaster at copyleft.no. 3000008471 14400 3600 1296000 3600
        runbox.com. IN RRSIG SOA 13 2 86400 20200914155225 20200831142225 38438 runbox.com. <same SOA sig>
        *.runbox.com. IN NSEC _acme-challenge.runbox.com. A MX RRSIG NSEC
        *.runbox.com. IN RRSIG NSEC 13 2 3600 20200914155225 20200831142225 38438 runbox.com. <apex-wildcard-sig>
        munin01.runbox.com. IN NSEC ipmi.mysql01.runbox.com. A RRSIG NSEC
        munin01.runbox.com. IN RRSIG NSEC 13 3 3600 20200914155225 20200831142225 38438 runbox.com. <munin01-nsec-sig>

Q9 ->   @ 9.9.9.10 _25._tcp.mx.runbox.com. IN TLSA ?
        runbox.com. IN SOA dns61.copyleft.no. hostmaster at copyleft.no. 3000008471 14400 3600 1296000 3600
        runbox.com. IN RRSIG SOA 13 2 86400 20200914155225 20200831142225 38438 runbox.com. <same SOA sig>
        *.runbox.com. IN NSEC _acme-challenge.runbox.com. A MX RRSIG NSEC
        *.runbox.com. IN RRSIG NSEC 13 2 3600 20200914155225 20200831142225 38438 runbox.com. <apex-wildcard-sig>
        munin01.runbox.com. IN NSEC ipmi.mysql01.runbox.com. A RRSIG NSEC
        munin01.runbox.com. IN RRSIG NSEC 13 3 3600 20200914155225 20200831142225 38438 runbox.com. <munin01-nsec-sig>

The same incomplete/redundant response comes back from 1.1.1.1 when
queried from California, New York and Germany, presumably different
instances, with fresh uncached results.  Oddly enough, if I send the
same query to CF with also the "CD" bit set, I get a better answer,
be it this time with "AD=0":

        @ 1.1.1.1 _25._tcp.mx.runbox.com. IN TLSA ? ; +cd +dnssec
        runbox.com. IN SOA dns61.copyleft.no. hostmaster at copyleft.no. 3000008471 14400 3600 1296000 3600
        runbox.com. IN RRSIG SOA 13 2 86400 20200914155225 20200831142225 38438 runbox.com. <same SOA sig>
        *.runbox.com. IN NSEC _acme-challenge.runbox.com. A MX RRSIG NSEC
        munin01.runbox.com. IN NSEC ipmi.mysql01.runbox.com. A RRSIG NSEC
        *.runbox.com. IN RRSIG NSEC 13 2 3600 20200914155225 20200831142225 38438 runbox.com. <apex-wildcard-sig>
        munin01.runbox.com. IN RRSIG NSEC 13 3 3600 20200914155225 20200831142225 38438 runbox.com. <munin01-nsec-sig>

Asking again without "cd" brings back the original incomplete answer.

-- 
    Viktor.



More information about the dns-operations mailing list