-
-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC 1035 zone maintenance support. #335
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ith stream server and other middleware disabled.
…with stream server re-enabled but still no other middleware.
…a) being actually used and (b) with Box<Dyn>-less post-processing via new `PostprocessingMap` type based on stream::Map, with stream server re-enabled but still no other middleware.
…so fixes bugs in the Cookie middleware relating to adding the COOKIE option more than once, and not preserving OPT header values when appending OPT options.
…er, none of it is needed in the new middleware-as-layered-services world.
…and a stream preceeded by its length doesn't already need its length prepended to it.
- Return Future of Stream from Service::call() instead of the custom Transaction type. - Relax trait bounds/move trait bounds nearer to the point of use. - Introduce PostprocessingStream impl of Stream for stream based upstream result post-processing. - Introduce ServiceResult aka io::Result. - Modify the serve_zone example to assume it is powered by (not included in these changes) XFR middleware.
…ng the domain server functionality.
…t the identity case.
…al I/O errors occur (such as the other end has disconnected) and for not aborting response stream processing if there is no space in the write queue. These issues were hit when testing with the default dig timeout of 5 seconds and a large zone that took a while to start transferring.
…very many Tokio tasks, otherwise we compete with other actions being performed by the applicaition. Instead use a dedicated thread pool for zone walking for AXFR transfers. Also use a Tokio unbounded receiver stream instead of a ordered futures stream to avoid creating N boxed futures, to avoid a mutex lock around the stream, and to avoid waiting for the initial zone walk to finish before sending any AXFR records.
…imited support for A/IXFR in/out and NOTIFY, e.g. doesn't honor RETRY or EXPIRE SOA timers yet, and needs a lot of cleaning up. Has been seen successfully exchanging zones with NSD via XFR acting both as primary and secondary.
ximon18
changed the base branch from
add-rfc1996-notify-support
to
rr-batching
September 4, 2024 14:47
ximon18
changed the title
(A/I)XFR-in/out (with TSIG), NOTIFY-in/out + demo zone persistence.
RFC 1035 zone maintenance support.
Sep 10, 2024
Merged
I'm closing this PR as all of the underlying XFR, NOTIFY, TSIG support etc has been extracted into PRs that have been merged or are in review, and the |
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces the
ZoneMaintainer
component.For primary zones it provides "on-zone-change" triggered sending of NOTIFY messages zones to "secondaries".
For "secondary" zones it provides NOTIFY-in and SOA timer based SOA query and (A/I)XFR-out.
Zone persistence on change (either edit to a local primary zone or sync of a local secondary zone with changes obtained from a remote primary) is also currently included in this PR (see
examples/serve-zone.rs
via theArchiveZone
impl of theZoneStore
trait and by using the sameZone
wrapping "hack" thatZoneMaintainer
uses to monitor zones for changes).This PR needs cleaning up before review.