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