Every RRSIG carries an inception and an expiry. Past the expiry, a validating resolver treats the answer as bogus and returns SERVFAIL — which means the domain does not resolve at all for a large share of the internet, with nothing in the zone having changed.
Reading the window
certadns.com. 3600 IN RRSIG SOA 13 2 3600 (
20260924000000 ; expiration
20260903000000 ; inception
29357 certadns.com. ... )| Field | Meaning |
|---|---|
| Inception | Not valid before this. Usually backdated an hour to tolerate clock skew. |
| Expiration | Not valid after this. The deadline the signer must beat. |
| Key tag | Which DNSKEY in the set signed this. Matching it is part of validation. |
The most common real DNSSEC failure
Not an attack, not a rollover: a signer that stopped running. The zone is correct, the keys are correct, the DS matches, and the signatures quietly age out.
- It is a cliff, not a slope. Everything works until the expiry, then a growing share of resolvers fail as their caches refresh.
- It affects validating resolvers only, so it looks like an outage affecting some users and not others — and the ones it does not affect are the ones doing less to protect themselves.
- Your own monitoring may not see it if it queries a non-validating resolver or your authoritative server directly. Both return the answer happily.
- Mail fails too, and if the zone carries TLSA records the failure is total rather than partial.
Monitoring it
# alert on time remaining, not on validity dig +dnssec example.com SOA @1.1.1.1 | grep -o 'RRSIG SOA [0-9]* [0-9]* [0-9]* [0-9]*' # the check that matters: # days until the earliest RRSIG in the zone expires # alert below a third of the signing interval # and separately, from a VALIDATING resolver: dig example.com SOA @1.1.1.1 | grep -c 'flags:.* ad' # 0 means validation is not succeeding. Alert immediately.
Query something that validates
A check against your own authoritative server tests the one component least likely to be the problem, and it cannot observe a validation failure at all — authoritative servers do not validate. Use a public validating resolver and look for the ad flag.