Hello Chris.
My take is that the *will* be some sort of breakage even if you do
everything right with shortest possible TTLs - because this is the DNS,
eventually consistent by design, and wildly misimplemented in practice.
So don't feel bad when some breakage occurs :-) It will very much depend
on your client population, which presumably you don't have control over.
Anyway, I would say that going to 1 second TTL for
NS/SOA/DNSKEY/DS/NSEC* RRs first is a good idea - for the records below
the (to-be-removed) zone cut.
In theory RRs above the cut can have the "target" TTLs right away, but
if you are concerned about breakage you might want to lower TTLs just in
case, so you have flexibility to react. (But be prepared for clients
which don't respect TTL ...)
To your questions about names which are in the parent zone but
(currently) below (the old) zone cut - these will not get signed and not
show up in the NSEC* chains because they are occluded/not authoritative
in the parent zone.
Let us know how it vent, maybe there will be a lesson to learn for
everyone! (Also if it just works - that's useful information as well!)
HTH.
Petr Špaček
Internet Systems Consortium
On 10. 12. 24 7:48, Ondřej Surý wrote:
Chris, that depends whether both are on the same nameservers or not. If
not then you can just fold first and then wait out the TTLs. If yes then
it can get hairy and I would suggest to reduce the TTL on the delegation
records to some small number (in the order of minutes). Perhaps also
reduce TTL on SOA and DNSKEY records just to be sure nothing stays in
the cache for too long.
Then before the change I would change those TTLs to 0, wait out the
previous TTL, and then again just fold the data, and the resolvers
should immediately switch to new chain.
Ondrej
--
Ondřej Surý — ISC (He/Him)
My working hours and your working hours may be different. Please do not
feel obligated to reply outside your normal working hours.
On 10. 12. 2024, at 7:27, Crist Clark <cjc+bind-us...@pumpky.net> wrote:
We have a zone, "bar.example.com <http://bar.example.com>," that is
all properly delegated from "example.com <http://example.com>."
Although the subzone still has many records, "foo.bar.example.com
<http://foo.bar.example.com>" and such, the administrative reasons for
having it as a separate zone are not so important anymore, and it
would be convenient to simply manage it as multi-label names all
within the example.com <http://example.com> zone. That is,
foo.bar.example.com <http://foo.bar.example.com> would now just be in
example.com <http://example.com>.
The first thing that ups the degree of difficulty is DNSSEC.
example.com <http://example.com> is signed. bar.example.com <http://
bar.example.com> is properly delegated and also signed. How do we make
the transition without invalidating bar.example.com <http://
bar.example.com> and its contents? I can't think of a way to
transition bar.example.com <http://bar.example.com> without going
insecure, letting that propagate out, and then folding bar.example.com
<http://bar.example.com> into example.com <http://example.com>. Or is
there some way we could do it without going insecure first?
I am also a little concerned about pre-loading the multi-label names
at bar.example.com <http://bar.example.com> and above into example.com
<http://example.com>. example.com <http://example.com> and
bar.example.com <http://bar.example.com> have the same NS records, the
same servers. Could it present any issues having those "hidden"
records and their associated NSEC3 records in example.com <http://
example.com> while the server still is serving bar.example.com
<http://bar.example.com>? Would we want to go insecure with
example.com <http://example.com> too, just to be safe?
Even without DNSSEC, there are some problems. If we manage an
instantaneous change on all of the authoritative servers at once, we
can still have cached records out there. You could still have a
resolver with the NS and SOA of bar.example.com <http://
bar.example.com> cached. It goes to ask for
"doesntexist.bar.example.com <http://doesntexist.bar.example.com>" and
gets a NXDOMAIN with an SOA for example.com <http://example.com> in
the auth section. It's expecting the SOA for bar.example.com <http://
bar.example.com>. A standard-compliant resolver won't accept that.
Am I just over-thinking this? Just lower the TTLs on the NS and DS
records for bar.example.com <http://bar.example.com> as far as we
dare, and make the changes and hope for the fewest inconsistencies
possible? Are there some steps to take to do this with minimal chances
for inconsistencies and breakage?
We're using BIND dnssec-policy to manage DNSSEC for the zones.
--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from
this list
ISC funds the development of this software with paid support subscriptions.
Contact us at https://www.isc.org/contact/ for more information.
bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users