johanix / tdns

Authoritative nameserver + tools. Intended for experiments and testing new things.
BSD 2-Clause "Simplified" License
1 stars 0 forks source link

Add DNS UPDATE capability from tdns-agent --> zone primary server #67

Open johanix opened 1 month ago

johanix commented 1 month ago

The reason for the tdns-agent is for the (very reasonable) case where a zone owner doesn't trust tdns-server enough to be willing to move the primary role to an experimental piece of code. However, this leaves tdns-agent with a situation where it may need to update the zone in the primary end (in the child role it could be adding a KEY RR, in the parent role it could be adding a DSYNC RRset, or changing the delegation data for a child zone, or ...).

Sofar then plan has been to just save the changes in a DB and report on them when queried.

However, a better, or at least more powerful mechanism would be to configure tdns-agent to send the changes as DNS UPDATEs to the primary. This would obviously require a configuration in the primary with a suitable update policy. It would also require the tdns-agent ZoneUpdaterEngine() to have a third mechanism for dealing with a change request: in addtition to the existing "apply directly to zone data" and "store in a DB table" we also need "apply via DNS UPDATE to the primary".

The good thing is that we already have lots of support for DNS UPDATE in the code base. The bad thing is that we likely should add support for TSIG in addition to SIG(0).

johanix commented 1 month ago