On 24. 08. 26 21:12, Wes Hardaker wrote:
Roy Arends <[email protected]> writes:

I think there may be a misunderstanding about the purpose of these
ranges.

As I said, I think the purpose has changed from where it started (or my
memory is bad).  It's fine if it's changed of course, but we should then
ask is it needed given the underlying assumptions have changed.

The question the ranges answer is simple: when constructing a
referral, should this Delegation Type be included, and should the NS
RRset also be included?

So if I read that right, then all the code bases need to understand it
order to do the right thing anyway?  In which case what is the benefit
of having a separate range, as opposed to just assigning new RRTYPES
anywhere int the tree?  Unless the goal is to enable a > and < operation
vs a switch statement for when to do something?  Is that the new
purpose?

[or maybe I've lost the thread entirely and should stop talking (writing)]

You are right and wrong at the same time because there's multiple actors involved and only subset needs upgrade.

Compare these two situations.


### Delext does not exist

DELEG is done as one-off, without the range allocation. All signers, validators, resolvers, and auths have to be upgraded (not mentioning provisioning systems etc.) to make DELEG work.

For DELEG2 (hypothetical version 2) again, 'everything' needs to be upgraded because it is a parent-side RR type. In scenarios without delext, only DS and DELEG are hardcoded special cases.

DELEG2-supporting resolver cannot forward through DELEG(version 1)-only-supporting resolver.


### With delext

Delext support (the range!) requires all signers, validators, resolvers, and auths have to be upgraded (+ possibly provisioning systems) to make the new range work.

DELEG then piggybacks on delext and _only resolvers_ (and provisioning) need to have extra code/get an upgrade to make use of DELEG. Other parts of system remain unaffected.

If DELEG2 comes along, again only resolvers (and provisioning) need an upgrade. At the same time, DELEG2-supporting resolver _can_ forward through DELEG-only-supporting resolver because the behavior for the range is well defined.

The same goes for other example RR types from other ranges - DS2, PSL, DBOUND etc.


In other words, delext makes most of the ecosystem extensible with parent types and only consumers (resolvers) of the new types will need a code change in future, when a new RR type is allocated.

Does it make sense now?

--
Petr Špaček

_______________________________________________
DNSOP mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to