Skip to content

Incremental signing for signer#148

Closed
Philip-NLnetLabs wants to merge 462 commits intomainfrom
signer-incremental-faketime
Closed

Incremental signing for signer#148
Philip-NLnetLabs wants to merge 462 commits intomainfrom
signer-incremental-faketime

Conversation

@Philip-NLnetLabs
Copy link
Member

@Philip-NLnetLabs Philip-NLnetLabs commented Jan 15, 2026

We're experimenting with incremental DNSSEC signing in 'dnst signer', to prepare for this fucntionality in Cascade.

Currently we can sign the changes in the .se zone between last Saturday and Sunday in 3 seconds. Loading the unsigned zone takes 6 seconds and writing out the new signed zone another 12 seconds.

For comparison, the non-incremental signer took ~35 seconds (vs 3s for incremental), even with parallelism.

ximon18 and others added 30 commits December 13, 2024 11:53
…ashed owner names, as it's slow AND original ldns-signzone doesn't check correctly for hashes that are not orphans due to correspoding to an ENT (as it discovers ENTs _after_ rejecting orphaned hashed owner names) AND the conclusion is that original ldns-signzone should strip NSEC(3)s on load, as we previously, and again now do.
…zonefile compared to the original ldns-signzone.
…r in LDNS mode, i.e. to 3600, or to 0 to match common tooling behaviour (BIND, dnssec-signzone, and OpenDNSSEC).
…Type Bitmaps, to match RFC and original ldns-signzone behaviour.
- Use new SignableZoneInPlace trait instead of the now removed Signer.
- Use new update_data() fn instead of more specific replace_soa() and replace_rrsig_for_apex_zonemd().
- Use generate_rrsigs() instead of trying to treat a single ZONEMD or a few ZONEMD RRs as a zone to be signed (which would also generate NSEC(3) and DNSKEY RRs etc).
- Fix examples to have correct NSEC3PARAM TTL matching updated behaviour to use 3600 like LDNS or SOA MINIMUM otherwise.
…ing generate_rrsigs() directly, also making it clearer that we are only signing a single RRset and don't need to pass in an unused SigningConfig.
…l to sign_zone() and explicit use of ByteMut.
Base automatically changed from keyset-faketime to main March 2, 2026 14:27
@Philip-NLnetLabs Philip-NLnetLabs force-pushed the signer-incremental-faketime branch from 28cc5e6 to 25745b2 Compare March 2, 2026 19:31
@Philip-NLnetLabs Philip-NLnetLabs deleted the signer-incremental-faketime branch March 2, 2026 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants