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

  1. 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 (like example.com), but the example.com zone 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:
      dig example.com DNSKEY @a.gtld-servers.net
      
      If you see a DS record for example.com in the .com zone (e.g., from dig DS example.com @a.gtld-servers.net), but example.com itself doesn’t have corresponding DNSKEY records, this is your issue.
    • Fix: You need to enable DNSSEC for the zone example.com and publish its keys. This typically involves:
      1. Generating a Zone Signing Key (ZSK) and Key Signing Key (KSK) for example.com.
      2. Publishing the KSK’s public key in the example.com zone as a DNSKEY record.
      3. Creating a Delegation Signer (DS) record for example.com using 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.
  2. 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:
      dig DS example.com @a.gtld-servers.net
      
      Compare the output with the expected DS record derived from example.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.
  3. 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:
      dig example.com DNSKEY @a.gtld-servers.net
      dig example.com DNSKEY @a.gtld-servers.net +short
      
      Look for DNSKEY records in the child zone. Then, query the parent for DS records:
      dig DS example.com @a.gtld-servers.net
      
      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.
    • 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.
  4. 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 dig or nslookup to 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.
  5. 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:
      dig example.com NS @a.gtld-servers.net
      
      This shows the NS records for example.com as published in the .com zone. Then, check if those nameservers actually host example.com and 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.com zone.
      • 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.
  6. 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 the dig response.
      dig example.com DNSKEY @ns1.auth.example.com
      
      If the AA flag 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.com zone, 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.

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.

Want structured learning?

Take the full Dns course →