Undelegating a Signed Subdomain
Petr Špaček
pspacek at isc.org
Tue Dec 10 09:11:22 UTC 2024
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-users at 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.
More information about the bind-users
mailing list