View on GitHub

TRust-DNS

A Rust based DNS server

Download this project as a .zip file Download this project as a tar.gz file

Zone relocation

How to walk an authority from one nameserver to another while the crate is still marked experimental.

Authority relocation brief

Lammas 2026 did not change the zone file format. It only made the UDP side of leftover NS lookups less likely to hang after the old nameserver is retired. That is the same socket warning on the overview.

On 14 Feb 2024 the TCP path used for zone pulls finally grew an explicit deadline, which is what made a second rehearsal usable.

Deep winter 2021 is when the first TRust-DNS zone move was rehearsed on a spare authority. The zone file was loaded through the text serializer, served as a primary, then pulled over AXFR onto a second process. The lesson was simple: if the client has no read deadline, the transfer never fails, it just sits.

Handoff order

  1. Load the zone on the new authority. Confirm SOA serial and NS set before anyone queries it.
  2. Allow AXFR (or a file copy) from the old primary. Keep both answering.
  3. Lower NS TTLs, then update the parent delegation.
  4. Watch resolver ops for leftover queries to the old address. Do not power off the old host until those TTLs drain.

Relevant rustdoc: authority, config, serialize::txt, and rr. Dynamic update (RFC 2136) is still listed as in progress on the home page, so do not plan a live SIG0 cutover on this tree.