2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-22 01:59:26 +00:00
Clone
0
BIND 9.19 Planning: Configuration Backend
Matthijs Mekking edited this page 2021-11-03 20:03:45 +00:00

Back to agenda: https://gitlab.isc.org/isc-projects/bind9/-/wikis/BIND-9.19-Plan

Attendees: Ondrej, Matthijs, Evan, Petr, Mark, Aram, Artem, Michal N., Michał K.

Yesterday we got some desired requirements from Vicky/Support: Get out actually used configuration (at startup), including builtin defaults, effective values.

Ondrej - Duck tape and glue or complete refactor?

Evan - Or something in between: Add new structure "config backend" that we copy the configuration into. It can be queried to get out "actual config". And if we get it right we may start using it directly in the future (replace zone structure variables with queries to config backend).

Mark - One of the ideas was that named-checkconf could do this. (named-checkconf -p to print effective values)

Evan - Substantially similar code between server and named-checkconf. Perhaps a chance to combine the two code bases.

Mark - What to do with named ACLs, primary lists, etc - expand them or just display the aliases

Evan - I don't think we need more than a hierarchical key value storage.

Mark - some ACLs interact with each other

Ondrej - start with looking at sysrepo: https://github.com/sysrepo/sysrepo

Or etcd. Or something else.

Petr - my initial experience is that sysrepo is the solution for everything so it is evidently complex.

Matthijs - It's a good idea to first look if something exists that can do this for us. But we should not say "don't write it our selves because we are DNS people". Research existing code, and if it can be used use it. If not you have learnt a thing or two about configuration storages and that helps if we eventually have to write it our selves in case the existing stuff doesn't turn out to be a good fit.

Approach:

  • First phase just a data store. That can be used to query the effective configuration (fully expanded).
  • Then in the future we may gradual replace reading the configuration from the data store, option by option.