Skip to content
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

Restructure code that makes zone modifications. #55

Open
3 of 4 tasks
johanix opened this issue Aug 21, 2024 · 2 comments
Open
3 of 4 tasks

Restructure code that makes zone modifications. #55

johanix opened this issue Aug 21, 2024 · 2 comments
Labels
priority This is important to get fixed

Comments

@johanix
Copy link
Owner

johanix commented Aug 21, 2024

Right now we have code in lots of places that adds (or sometimes removes) RRs from a zone. In many there is also signing of a modified RRset. Finally there is locking when actually applying the changes to the zone data.

If we changed the code to only create (or modify) the RRset and then send it over to the UpdateEngine for possible signing and inclusion in the zone we would save a lot of code in a number of places. Another advantage would be that in the case where the zone cannot be modified and we need to store the changes (as a "todo-list") for an operator to apply manually, then that is also only done in one place instead of all over.

The only real drawback is the the UpdaterEngine at present deals with updates to zone data mostly structured as DNS UPDATEs stored inside an UpdateRequest blob. Either we add another format to what UpdaterEngine understands or we just construct the UpdateRequest blob when needed. The latter is probably best.

  • Restructure publish/unpublish KEY in child zones
  • Restructure publish/unpublish DSYNC in parent zones
  • Restructure publication of DNSKEY in signed zones
  • Restructure publication of CSYNC in child zones

Note: TDNS doesn't support CDS yet (as it cannot roll DNSKEYs yet).

@johanix
Copy link
Owner Author

johanix commented Aug 21, 2024

There is some strangeness with the publication of address records for DSYNC receivers. The UpdateRequest looks absolutely correct, but when ApplyZoneUpdateToZoneData() processes the address records it complains about all of them being duplicates. But apparently it still publishes them, but it doesn't sign them for some reason.

@johanix
Copy link
Owner Author

johanix commented Aug 21, 2024

Strangeness resolved. It was the old code that still published the address records before sending the UpdateRequest to UpdaterEngine. So they were already published, and hence the complaint about duplicates was correct.

@johanix johanix added the priority This is important to get fixed label Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority This is important to get fixed
Projects
None yet
Development

No branches or pull requests

1 participant