Skip to content

Add IXFR out support.#605

Merged
ximon18 merged 47 commits into
mainfrom
ixfr-out
May 12, 2026
Merged

Add IXFR out support.#605
ximon18 merged 47 commits into
mainfrom
ixfr-out

Conversation

@ximon18
Copy link
Copy Markdown
Member

@ximon18 ximon18 commented Apr 28, 2026

Implements IXFR out based using internally created signed diffs which are moved to zone storage after they have been made available to zone persistence. Code was based on XFR code in domain.

System tests have been moved out on request to #650.

Lacks:

  • Use of TSIG in the system test.
  • Purging of old / excess diffs.
  • RFC 1995 diff condensation.
  • Automated testing of IXFR out based on changes caused by incremental signing. Note: seen working manually.
  • Automated testing of IXFR out to a downstream BIND instance. Note: seen working manually.
  • Automated testing of IXFR out from the loaded and signed review nameserver ports of Cascade. Note: seen working manually,

  • If you are changing Rust code or integration tests (Cargo.*, crates/, etc/, integration-tests/, src/):
    • Did you run the integration tests with act through the act-wrapper (as described in TESTING.md)?

@ximon18 ximon18 added this to the 0.1.0-beta1 milestone Apr 28, 2026
@ximon18 ximon18 marked this pull request as ready for review April 30, 2026 14:22
@ximon18 ximon18 requested review from bal-e and tertsdiepraam and removed request for bal-e April 30, 2026 14:22
Copy link
Copy Markdown
Contributor

@bal-e bal-e left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great! I'm glad it didn't end up being a big PR, it looks like most of the surrounding architecture and control flow suited this addition well. I only have some minor comments; none of them are a blocker for merging. A few them only ask to add some code comments; that's probably the most important stuff in here, because it's easy to forget once the PR is merged. But again, not a blocker.

Comment thread integration-tests/tests/ixfr-out/action.yml Outdated
Comment thread src/server/service.rs Outdated
Comment thread src/server/service.rs Outdated
Comment thread src/server/service.rs Outdated
Comment thread src/server/service.rs
Comment thread src/server/service.rs Outdated
Comment thread src/server/service.rs
Comment thread src/server/service.rs
Comment thread src/server/service.rs Outdated
Comment thread src/server/service.rs
ximon18 added a commit that referenced this pull request May 8, 2026
- Merges in the ixfr-out and full-signer-update-state branches as these
were needed for local testing, but should be obsoleted / synced with
main when PRs #631 ("Save last serial and key tags in zone state")and
#605 ("Add IXFR out support") get merged.
- Extends the persist-restore system test to cover more cases. Should
perhaps be split out into separate smaller tests.
- Actually adds restored diffs to the zone storage to be served by IXFR
out. Will need updating to match the changes/fixes that have since been
made in PR #605.
- Fixes an issue where persisted diffs from multiple SOA serials, e.g.
1..2..3 would be condensed on restore so that only a single IXFR diff
from 1..3 would be available instead of two diffs from 1..2 and 2..3
being available.
- Clears the set of known persisted data file paths for a zone if any of
those files are missing or cannot be parsed during restoration.
@ximon18 ximon18 mentioned this pull request May 10, 2026
3 tasks
Comment thread src/server/service.rs Outdated
@ximon18 ximon18 merged commit e7b312f into main May 12, 2026
9 checks passed
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.

3 participants