The DNSSEC validation failure "No Zones Found for Key" means the resolver couldn’t find any DNS zones associated with a specific DNSSEC key it was expecting. This usually happens when a DNSSEC key is published but the corresponding zone data hasn’t been properly configured or isn’t propagating.
Common Causes and Fixes
-
Key Published Without Zone: The most frequent culprit is a DNSSEC key being generated and published in a parent zone (like
.com) for a domain (likeexample.com), but theexample.comzone itself hasn’t been configured to use DNSSEC or hasn’t had its own keys published.- Diagnosis: Check the parent zone’s DNSSEC records for the domain in question. For example, using
dig +dnssec example.com DNSKEY:
If you see a DS record fordig example.com DNSKEY @a.gtld-servers.netexample.comin the.comzone (e.g., fromdig DS example.com @a.gtld-servers.net), butexample.comitself doesn’t have corresponding DNSKEY records, this is your issue. - Fix: You need to enable DNSSEC for the zone
example.comand publish its keys. This typically involves:- Generating a Zone Signing Key (ZSK) and Key Signing Key (KSK) for
example.com. - Publishing the KSK’s public key in the
example.comzone as a DNSKEY record. - Creating a Delegation Signer (DS) record for
example.comusing the KSK’s information and submitting it to the parent zone (.com).
- Why it works: The parent zone’s DS record acts as a pointer, cryptographically linking the parent zone to the child zone’s keys. If the child zone doesn’t have those keys, the link is broken, and validation fails.
- Generating a Zone Signing Key (ZSK) and Key Signing Key (KSK) for
- Diagnosis: Check the parent zone’s DNSSEC records for the domain in question. For example, using
-
Incorrect DS Record in Parent Zone: The DS record submitted to the parent zone is malformed, has the wrong algorithm, digest type, or digest value.
- Diagnosis:
Compare the output with the expected DS record derived fromdig DS example.com @a.gtld-servers.netexample.com’s KSK (usually obtained from your DNS hosting provider’s control panel or your own key management tools). Ensure the key tag, algorithm, digest type, and digest match precisely. - Fix: Correct the DS record in the parent zone. This usually involves logging into your domain registrar or DNS hosting provider’s interface and updating the DS record with the exact, correct values.
- Why it works: The DS record in the parent zone is the trust anchor for the child zone. An incorrect DS record means the parent cannot correctly validate the child’s keys, leading to a trust failure.
- Diagnosis:
-
Stale or Expired DNSSEC Keys in Parent Zone: The parent zone might still hold DS records for keys that have since been rolled over or removed from the child zone.
- Diagnosis:
Look for DNSKEY records in the child zone. Then, query the parent for DS records:dig example.com DNSKEY @a.gtld-servers.net dig example.com DNSKEY @a.gtld-servers.net +short
If the DS record in the parent refers to a key tag or algorithm that is no longer present in the child’s DNSKEY set, you have stale DS records.dig DS example.com @a.gtld-servers.net - Fix: Remove the old DS records from the parent zone. This is typically done through the registrar or DNS hosting provider interface. You might need to initiate a "DS record removal" process.
- Why it works: The parent zone should only point to the current set of keys that are actively signing the child zone. Outdated pointers create a mismatch.
- Diagnosis:
-
Propagation Delay for Zone Key Changes: You’ve recently updated DNSSEC keys or enabled DNSSEC on your zone, but the changes haven’t fully propagated to the authoritative nameservers for your zone, or the parent zone hasn’t picked up the new DS records.
- Diagnosis: Use tools like
digornslookupto query your zone’s authoritative nameservers directly for DNSKEY records. Then, query the parent zone for DS records. Compare these with the expected state. Check the TTLs (Time To Live) on records involved.dig example.com DNSKEY @ns1.auth.example.com dig DS example.com @a.gtld-servers.net - Fix: Wait for the TTLs to expire and for DNS propagation to complete. This can take anywhere from a few minutes to 48 hours, depending on the TTLs set. If you’ve just submitted DS records to the parent, you must wait for them to be published.
- Why it works: DNS is a distributed system. Changes take time to ripple through the caches of servers worldwide. DNSSEC relies on these changes being consistent across the hierarchy.
- Diagnosis: Use tools like
-
Incorrect Delegation: The delegation from the parent zone to your zone’s nameservers is incorrect, and the resolver is trying to validate keys for a zone that isn’t actually served by the expected nameservers.
- Diagnosis:
This shows the NS records fordig example.com NS @a.gtld-servers.netexample.comas published in the.comzone. Then, check if those nameservers actually hostexample.comand serve its DNSKEY records.dig example.com DNSKEY @ns1.auth.example.com - Fix: Correct the NS records in the parent zone. This is done via your registrar or DNS hosting provider. Ensure the nameserver hostnames and IP addresses are accurate and that these nameservers are correctly configured to serve the
example.comzone.- Why it works: DNSSEC validation is a chain of trust. If the resolver can’t even find the correct nameservers for the zone, it can’t find the keys, and the chain breaks.
- Diagnosis:
-
Authoritative Nameserver Misconfiguration: The authoritative nameservers for your zone are misconfigured and not serving the correct DNSKEY records, or they are not responding authoritatively for the zone.
- Diagnosis: Query your authoritative nameservers directly for DNSKEY records and check the
AA(Authoritative Answer) flag in thedigresponse.
If thedig example.com DNSKEY @ns1.auth.example.comAAflag is not set, or if the server returns an NXDOMAIN or SERVFAIL for DNSKEY records when it should have them, there’s a problem with the nameserver configuration. - Fix: Reconfigure your authoritative nameservers. Ensure they are correctly set up to host the
example.comzone, serve DNSKEY records, and respond authoritatively. This might involve restarting the DNS server software (like BIND or PowerDNS) or correcting zone file entries.- Why it works: The authoritative nameserver is the ultimate source of truth for zone data, including DNSSEC keys. If it fails to provide this data correctly, the validation process cannot proceed.
- Diagnosis: Query your authoritative nameservers directly for DNSKEY records and check the
The next error you’ll likely encounter after fixing this is a SERVFAIL response from a resolver that still cannot establish a complete chain of trust, possibly due to issues further up the DNS hierarchy or with the resolver’s own configuration.