8.8.8.8, Cloudflare
1.1.1.1, Quad9, modern ISPs) check them against a DS record at your domain registrar, so
nobody in between can forge an answer for your zone. DNZ signs the answers of local zones, one zone
at a time.
To have DNZ check the signatures of other domains it resolves for your clients, see
DNSSEC validation.
DNSSEC is only useful when DNZ is the zone’s public nameserver. For zones on Cloudflare, turn
on DNSSEC at Cloudflare. Internal zones (such as
corp.local) have no public DS; internal
resolvers can use their DNSKEY as a trust anchor if needed.Turn it on
1
Turn on DNSSEC for the zone
Open the zone under DNS → Zones and turn on DNSSEC (needs the Manage zones
permission). To sign with something other than the defaults, open Signing settings first
(see below). Or from the terminal:DNZ creates the zone’s key (one ECDSA P-256, algorithm 13 key by default) and starts
signing its answers right away.
2
Add the DS record at your registrar
Copy the DS record shown and add it at your domain registrar (or in the parent zone). Most
registrars ask for the Key tag, Algorithm, Digest type (2) and Digest. Some ask for
the DNSKEY (public key) instead; the card shows both.
3
Check the chain of trust
Once the DS is published, run the checks below.
Signing settings
Compact denial or NSEC3
Compact denial or NSEC3
- Compact denial (RFC 9824, “black lies”): a missing name or type gets a NOERROR answer with
an NSEC that covers only the queried name (type
NXNAMEfor names that don’t exist). Nothing is computed ahead and the zone’s contents can’t be walked. Some older validators and monitoring tools expect NXDOMAIN for missing names. - NSEC3 (RFC 5155, opt-out off): missing names get a real NXDOMAIN with the closest encloser
proof, missing types an NSEC3 matching the name, and wildcard answers are signed as the
wildcard with the next closer name proven missing. The hashed chain is computed once per
version of the zone, and the apex answers
NSEC3PARAM.
Key rollover
DNZ rolls keys by itself; each step waits long enough for caches to forget what they had. The zone page shows the rollover in progress, each key’s state and when the next step is due. Start one by hand with Roll KSK / Roll ZSK / Roll CSK, or:- ZSK (pre-publish, RFC 6781): the new ZSK is published first, starts signing once the DNSKEY RRset’s TTL (1 hour) plus a margin has passed, and the old one stays published until the zone’s longest TTL plus a margin has passed. Nothing changes at the registrar.
- KSK or combined key (double signature): the new key signs next to the old one at once. Once caches have the new DNSKEY RRset, CDS and CDNSKEY (RFC 7344) switch to the new key and the zone page shows the new DS. The rollover then waits for the parent zone’s DS to point at the new key.
- Algorithm (RFC 6781 section 4.1.4): the new keys sign everything before they are published, are published once the zone’s longest TTL has passed, take over the DS like a KSK, and the old keys leave the DNSKEY RRset before they stop signing.
- One key ↔ KSK + ZSK with the same algorithm needs no new DS.
1
Update the DS
When the zone page says it’s waiting for the parent, put the new DS at your registrar.
Registrars and registries that read CDS (RFC 8078) do it by themselves.
2
DNZ notices
DNZ looks up the zone’s DS through its upstreams every 15 minutes while it waits. Where that
can’t work (an internal zone), confirm with The registrar has the new DS, or:
3
The old key goes
Two days later (the parent’s DS TTL plus a margin), the old key is removed.
How it works
- Online signing: every answer is signed as it is sent, for clients that set the DO bit, by each key that signs that RRset. No zone needs re-signing and no signature expires unnoticed. Record changes are signed immediately.
- DNSKEY, CDS and CDNSKEY (and NSEC3PARAM with NSEC3) are answered automatically at the zone apex.
- Views, wildcards, CNAMEs, DNAMEs and Auto PTR are signed too; a CNAME chain that ends at a missing name carries the proof for that name.
- Disabled records and disabled zones are not signed (they aren’t answered either).
- Keys are kept when DNSSEC is turned off, so turning it on again doesn’t change the DS.
- DNZ secondaries of a signed zone receive the same keys from the primary, with their rollover states, so one DS covers every DNZ nameserver. Only the primary rolls keys. See Replication.
Check it
delv):
192.0.2.10 with your DNZ server’s address. DNSViz and the
Verisign DNSSEC Debugger work too.
Turn it off
1
Remove the DS at the registrar
Delete the DS record at your registrar first.
2
Wait for its TTL
Wait for the DS record’s TTL to run out, usually a day.
3
Turn DNSSEC off in DNZ
Only then turn DNSSEC off on the zone page.