After a quick read of Generalized DNS Notifications, -01, I have some comments:

It would be ludicrous of me to argue against the notion that event driven 
approaches are superior to polling approaches.  However, event driven 
approaches require more design work which is why it is natural for polling 
approaches to normally lead the way until they break.

In section 3, there is this phrase which caught my eye: "An increasing number 
of TLD registries are implementing periodic scanning for CDS and CDNSKEY 
records in child zones."  Operators are choosing and deploying the scanning 
approach.  Perhaps because it is the only option, nevertheless, the early 
deployments are scanning.  At a recent event, I heard a few measurements of the 
scanning approach, done with skepticism regarding the ability of such an 
approach to scale, but none of the measurements pointed to a bottleneck.  There 
was even an off-hand comment that perhaps scanning isn't scary at all.

I don't doubt the logic that is present in section 3 leading to the conclusion 
that there's a need to develop an event-driven approach.  In fact, I'm a fan of 
the logic.  However, there's no data to back up the claims that the polling 
approach won't work.  It would be good to have that included in the document to 
establish the need for the NOTIFY approach.

And why establish the need?  Deep in the nature of the DNS is the notion that 
parents know about children, but not vice versa.  In the DNS, delegations - 
both name server (NS) and security (DS/DNSKEY) - to date point downward.  
Nothing points upward.  CNAME and DNAME are query-rewriting tools, not 
delegation tools, I'm excluding them.

The historical architecture of the DNS is hostile to the idea of an 
event-driven approach - that's my fear.

NOTIFY, as it is in use today does not cross zones, it works only within the 
set of nameservers that a zone administrator has configured for a zone.  
"Also-notify" is a static configuration option available in implementations but 
being a configuration plane feature is not evident or supported in the standard 
protocol.  NOTIFY exists in a pool of familiar servers, all participants are 
managed by one entity or via an out of band arrangement.  It does not challenge 
the DNS "downward" architecture.

Using NOTIFY in another context may prove to be a significant change.  Perhaps 
the resource record format is general enough, but how a recipient would respond 
to the resource record would be different.  This is why I'm not greatly 
encouraged by the observation that we already have a record defined although 
that helps.

Using NOTIFY from a child to parent to trigger a CDS, CDNSKEY, CSYNC action 
makes sense, but the context is novel (for NOTIFY).  The message is used to 
cross administrative boundaries, upward even.  Mentioned earlier, in the DNS 
children don't talk up to the parent (easily), so a few things are needed.  One 
is the proposed NOTIFY record to tell the child where to send the notification 
query.  The other is figuring out how to set up a receiving server at the 
parent that is not a new burden on the zone administration.  This latter item 
concerns me the most as adding more modules to operations is a burden unless 
this can be adequately automated, buried in code, to the point it has no 
operational knobs an operator needs to manage and track.  (And there's always 
that DDoS/Firewall hole punching/traffic engineering challenge.)

Using NOTIFY from one operator for a zone administration to an independent 
other operator (aka multi-signer) is another novel environment.  In this case 
it is not shaped by a child to parent situation, but it exists in a potentially 
flat, out-of-band defined space.  I usually hear of multi-signer featuring two 
operators, but there could be more.  E.g., a TLD might decide to have a 
different signer for each of their half-dozen or so anycast name server 
contracted operators. There are quite a few design considerations for this.

Another way is to classify NOTIFY today as a "1:me" protocol, from one of my 
elements to another element by me.  From child to parent, it is "many:1" - a 
parent has many children (the many) with all the children trying to hit the 1 
parent.  Between co-operators of a zone, I'm not sure how to put that into a 
category of "1:1" or "1:many" or "many:1" protocol, but it's different.  I 
suppose it's 1:1 but neither of these might be the zone administrator, which is 
a problem.

Struggling to define the latter, here's what I'm concerned with.  When you have 
an administrator who contracts to two, or more, operators for service and there 
is a fault, how is the fault handled?  I.e., the error handling will need 
attention.

NOTIFY now, when it breaks, it's all within one administration to heal.  From 
child to parent, you could (perhaps) define fault handling in the registration 
agreement.  But between co-operators for one zone, it's harder to manage.  This 
puts the onus on the protocol definition to be self-healing...leave nothing for 
the operator to fix.

The goal is to make the protocol increasingly operator friendly.  It's not 
always easy to do that.

Note: I'm not criticizing the proposal in the document, I haven't absorbed it 
yet.  I'm just trying document criteria I'll have in mind when reading the 
proposed solution.

Ed Lewis

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to