Extended DNS Errors

About

DNS response codes have traditionally been used to confirm successful resolutions or signal anomalies. However, they are of little help to pinpoint the root causes behind failures. The RFC-8914 addressed the problem by introducing the Extended DNS Errors mechanism, which defines a new registry of extended error codes that can be returned along with regular response codes.

Testing Infrastructure

This (extended-dns-errors.com) domain name has 63 subdomains with various misconfigurations or corner cases. Feel free to query those to check how your recursive resolver behaves when faced with erroneous domains. All the configuration instructions are provided here:

Subdomain Configuration
validThe correctly configured control domain
unsignedThe domain name is not signed with DNSSEC
allow-query-noneNameserver does not accept queries for the subdomain
allow-query-localhostNameserver only accepts queries from the localhost
no-dsThe subdomain is correctly signed but no DS record was published at the parent zone
ds-bad-tagThe key tag field of the DS record at the parent zone does not correspond to the KSK DNSKEY ID at the child zone
ds-bad-key-algoThe algorithm field of the DS record at the parent zone does not correspond to the KSK DNSKEY algorithm at the child zone
ds-unassigned-key-algoThe algorithm value of the DS record at the parent zone is unassigned (100)
ds-reserved-key-algoThe algorithm value of the DS record at the parent zone is reserved (200)
ds-unassigned-digest-algoThe digest algorithm value of the DS record at the parent zone is unassigned (100)
ds-bogus-digest-valueThe digest value of the DS record at the parent zone does not correspond to the KSK DNSKEY at the child zone
rrsig-exp-allAll the RRSIG records are expired
rrsig-exp-aThe RRSIG over A RRset is expired
rrsig-not-yet-allAll the RRSIG records are not yet valid
rrsig-not-yet-aThe RRSIG over A RRset is not yet valid
rrsig-exp-before-allAll the RRSIGs expired before the inception time
rrsig-exp-before-aThe RRSIG over A RRset expired before the inception time
rrsig-no-allAll the RRSIGs were removed from the zone file
rrsig-no-aThe RRSIG over A RRset was removed from the zone file
no-rrsig-kskThe RRSIG over KSK DNSKEY was removed from the zone file
no-rrsig-dnskeyAll the RRSIGs over DNSKEY RRsets were removed from the zone file
bad-nsec3-hashHashed owner names were modified in all the NSEC3 records
bad-nsec3-nextNext hashed owner names were modified in all the NSEC3 records
bad-nsec3param-saltThe salt value of the NSEC3PARAM resource record is wrong
bad-nsec3-rrsigRRSIGs over NSEC3 RRsets are bogus
nsec3-missingAll the NSEC3 records were removed from the zone file
nsec3-rrsig-missingRRSIGs over NSEC3 RRsets were removed from the zone file
nsec3param-missingNSEC3PARAM resource record was removed from the zone file
no-nsec3param-nsec3NSEC3 and NSECPARAM resource records were removed from the zone file
no-zskThe ZSK DNSKEY was removed from the zone file
bad-zskThe ZSK DNSKEY resource record is wrong
no-kskTheKSK DNSKEYwas removed from the zone file
bad-rrsig-kskTheRRSIGoverKSK DNSKEYis wrong
bad-kskTheKSK DNSKEYis wrong
bad-rrsig-dnskeyAll theRRSIGs overDNSKEYRRsets are wrong
no-dnskey-256The Zone Key Bit is set to 0 for the ZSK DNSKEY
no-dnskey-257The Zone Key Bit is set to 0 for the KSK DNSKEY
no-dnskey-256-257The Zone Key Bit is set to 0 for both the KSK DNSKEY and ZSK DNSKEY
bad-zsk-algoThe ZSK DNSKEY algorithm number is wrong
unassigned-zsk-algoThe ZSK DNSKEY algorithm number is unassigned (100)
reserved-zsk-algoThe ZSK DNSKEY algorithm number is reserved (200)
ed448The zone is signed with ED448 algorithm
v6-mappedThe AAAA glue record at the parent zone is an IPv6-mapped IPv4 address
v6-unspecifiedThe AAAA glue record at the parent zone is an unspecified address
v4-hexThe AAAA glue record at the parent zone is an IPv4 address in hex form
v6-link-localThe AAAA glue record at the parent zone is a link local address
v6-localhostThe AAAA glue record at the parent zone is a localhost
v6-mapped-depThe AAAA glue record at the parent zone is a deprecated IPv6-mapped IPv4 address
v6-docThe AAAA glue record at the parent zone is from the documentation range
v6-unique-localThe AAAA glue record at the parent zone is from a unique local address
v6-nat64The AAAA glue record at the parent zone is used for NAT64
v6-multicastThe AAAA glue record at the parent zone is from a multicast range
v4-private-10The A glue record at the parent zone is a private address
v4-private-172The A glue record at the parent zone is a private address
v4-private-192The A glue record at the parent zone is a private address
v4-this-hostThe A glue record at the parent zone is a 0.0.0.0
v4-loopbackThe A glue record at the parent zone is a loopback address
v4-link-localThe A glue record at the parent zone is a link-local address
v4-docThe A glue record at the parent zone is a documentation address
v4-reservedThe A glue record at the parent zone is a reserved address
dsaThe zone is signed with DSA algorithm
nsec3-iter-200NSEC3 iteration count is set to 200
rsamd5The zone is signed with RSAMD5 algorithm

Contact Us

If you want to find out more about this project, contact us at yevheniya.nosyk@univ-grenoble-alpes.fr.