El 18 ag 2017, a les 11:12, Petr Špaček <petr.spa...@nic.cz> va escriure:
> My objections are in the end about engineering costs, which was nicely
> summarized by Paul Vixie in another thread (about SWILD, but applicable
> to session signaling as well):
> https://mailarchive.ietf.org/arch/msg/dnsop/xMvOuQqWCWZtql1gqD0UwH354b8 
> <https://mailarchive.ietf.org/arch/msg/dnsop/xMvOuQqWCWZtql1gqD0UwH354b8>
Paul's arguments aren't at all applicable here.   He's talking about having two 
different resource records that require detailed special handling; adding a new 
resource record that accomplishes what is accomplished by existing code in a 
different way produces a substantial increase in complexity not in the 
transport part of the DNS protocol, but in the semantics engine of your DNS 
cache.

> For me the major portion of cost does not come from features (like
> session management etc.) but from the *framework* needed to build them.
> This cost increase IMHO stems from fact that the framework (SS aka DNS
> control plane as you named it) does not build on existing and widely
> available components.

It's true, TLVs are quite innovative, and have never been used elsewhere.   ;-)

> I believe that added complexity is one of serious technical parameters
> and I was objecting to it 4 months ago already:
> https://mailarchive.ietf.org/arch/msg/dnsop/XjbQlz5dPblzfGr0OBrr5afKBEg 
> <https://mailarchive.ietf.org/arch/msg/dnsop/XjbQlz5dPblzfGr0OBrr5afKBEg>
The problem is that you didn't say then, and you don't say now, why this 
supposed complexity is an important technical consideration.   And it's hard 
for me to see what the issue is.   Nobody has to support this; if you support 
it, it's because you want the features.   If you want the features, the 
complexity isn't really in the wire format serialization and 
deserialization—this are trivial.   The complexity is in, for example, 
implementing DNS Push through a DNS cache if you want to support it in that 
context.   I admit that this is complex, and I suspect that there will be 
little enthusiasm for doing it.   That's okay—it's actually not required that 
any cache implement DNS push in order for us to get the benefit of it.   But 
this complexity has nothing to do with the wire format.

The wire format itself is dead trivial.   If in fact you need to implement it, 
for example in wireshark, there is already code in wireshark for unpacking 
TLVs, so it's a very small update.   In comparison, adding some new EDNS0-style 
OPT RR actually require special custom code in wireshark, because the fields in 
the RR are given different meanings just for that one RR.   Of course, 
wireshark already (I assume) understands EDNS0, but we can't use EDNS0; if we 
add a new SSIG RR that looks like an OPT RR, we would be creating more work for 
wireshark hackers than if we just did what the current spec says to do.

> In general, as far as I can tell, this document gives no clear
> justification why it is a good idea to do it this way. What I really
> want, on the highest level, is to see a justification why it is a good
> idea *to not reuse and extend existing framework* like EDNS. We have not
> been told of the practical problems that preclude solutions which are
> closer to existing code, e.g. EDNS, which would lower the engineering
> costs for the whole ecosystem.

The most obvious practical problem is that, as I said above, adding another 
EDNS0-style option is more complex than using TLVs.   In addition, it consumes 
more packet space.   The actual format of the packet is less sensible.   The 
decode/encode logic is more complicated.   I don't know if you've written an 
EDNS0 decoder/encoder; I have.   It's not pretty.

Of course you already have one, and so do I; maybe we could reuse the code.   
Doing so would also add complexity.   And the fact remains that it's a 
needlessly arcane data format.   The DNSIND (I think) working group settled on 
EDNS0 because they thought, as you did, that using something that looked like a 
DNS RR would make it more likely that things would work, but that turned out to 
be true—we had endless nightmares with middleboxes being confused by EDNS0.

The point being, EDNS0 was a design compromise based on assumptions that turned 
out not to be true.   I think if the working group had it to do over again and 
could see the future, they would have done something like session signaling, 
rather than adding the OPT RR.   Of course, that's just my opinion, but the 
reasoning is as valid now as it would have been then.

The rest of your comments appear to be rehashes of the same basic point, which 
boils down to "this is harder than that," with no actual technical basis for 
making such an assertion.

What I meant when I said "do you have any technical objections" was not "could 
you repeat for me in more detail the points you already made earlier about how 
if you were designing the enhancement, you would have done it differently."   
That's basically what you've done here.   You would have done it differently.  
That's fine, we're all reasonable people here, but we won't always agree on 
matters of taste.

But there's no technical objection here.   You've asked us to justify design 
decisions we've made (I use "we" loosely here, since I'm an end user of the 
document, not an author), but not provided any technical objection to those 
design decisions.   It's not good enough to say "I think that EDNS0 would be 
more right."  You need to actually say why TLVs are wrong (or, I suppose, why 
EDNS0 is more right).   You haven't done that.

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

Reply via email to