Hi,
how I understand the situation is that Daniel's primary server (which is
probably also a signer) is also a catalog consumer.
And the zone contents are probably derived from some database (or
something) and the question is, how to fill them into the primary, if
zone files are not desired for any reason.
Point is, that DDNS was always (and this is not limited to Knot DNS)
intended as an _update_ facility -- modifying existing zone. It does not
support bootstrapping, when the zone is not yet loaded from zone file
(or AXFRed from anywhere).
What I would recommend is to use generic zone file (which uses "@" in
all places where zone name would be) with dummy contents, so that the
newly created (by catalog) zone is loaded with something, and after that
fill the right contents with DDNS.
In the attachment, you can find an example of a generic zone file (it
can be much shorter, Knot might even forgive not including any apex NS).
With that, the catalog member template can be configured along following
ideas:
template:
- id: catalog_member
file: /somehwere/generic.zone
zonefile-sync: -1 # dont overwrite generic zonefile
journal-content: all
acl: allow_ddns
notify: [ secondary1, secondary2 ]
By the way, I would not recommend using SOA MNAME in 2025, better always
know the IP of the specific server you need to update.
Libor
On 29. 01. 25 20:49, Jan-Piet Mens wrote:
Me neither,
that's why I'm experimenting :-)
I wonder if there's some confusion here, possibly on my end. :)
- AXFR needs a static IP for master vs. nsupdate
allows dynamic IP
XFR from a primary (or secondary) needs a known address, correct, but
directing
an RFC2136 update to a server requires knowing that server's IP as well.
Without specifying a target, the UPDATE will be sent to the SOA MNAME by
default.
To me this is comparing apples and slices of chocolate :)
- AXFR needs DNSSEC keys on machine keeping
zonefiles vs nsupdate can
delegate signing to server (but doesn't have to)
DNSSEC keys must exist on the signer, typically a primary; it's
independent on
whether that will be an XFR source or an UPDATE target. The signer
needs the
keys.
nsupdate doesn't "delegate signing"; the update target will sign if
signed.
- AXFR makes multi-master complicated^TM -
nsupdate doesn't care as long
as SOA is increasing.
This sounds to me as though you intend sending UPDATEs to each of your
secondaries individually. Good luck doing that and keeping the result
consistent, particularly if you're signing.
Consider a setup where zone files are in git and
I want to push DNS
updates
in a gitops'y way. I could in principle setup a knot AXFR master as
part of
the CI build, perhaps along with some VPN to satisfy the static IP
requirement, send a NOTIFY, parse logs to figure out if all slaves
went and
got them and tear down the build, but it's a major hassle.
Indeed. That's why XFR was invented.
So that makes nsupdate+nsdiff look a lot more
convinient and clean to
me.
With a single target, I don't disagree; with multiple, well I've
commented on that.
Regards,
-JP
--