Dear colleagues,

On Fri, Mar 07, 2025 at 05:39:06PM -0500, Victor Zhou wrote:

Underscore Names that 8552 creates. Our intention is *not* to compete with
or replace the underscore naming scheme, but rather to provide a
complementary approach specifically focused on progressive adoption of new
RR types.

If there is an example of "progressive adoption" of a new RRTYPE I'd like to 
know of it.  The best example of such an intended progression I can think of is SPF, and 
the history there tells rather strongly against anything like any kind of progressive or 
even partial adoption.

When we did SPFBIS, one of the things we learned was that the specification with a dual 
path of TYPE99 and TXT turned out to have a subtle bug in which two fully conforming 
implementations couldn't interoperate anyway.  The reason TYPE99 got deprecated was 
because we had to pick one, and that's the one we picked.  (I hope we don't need to 
re-hash in this thread why that was the correct or incorrect decision.  Whatever you, 
gentle reader, believe about that correctness, I'll accept it as stipulated that my 
co-chair and I decided incorrectly about consensus.)  The lesson I, at least, took from 
this was that specifying two different ways to communicate the same information through 
the DNS was a serious conceptual error.  That's not too surprising to me, since the very 
point of strong typing in databases is not to have more than one way to communicate the 
same information.  Also, in my experience in a past life as a database guy, every time 
you try to accommodate data without using your datatypes (stuffing it all into a blob or 
whatever) and then later try to normalize the data, you end up dancing through a bunch of 
transitional hoops to get the stuffed data into your shiny new datatypes.  This might 
work when you're in charge of the database and the consuming clients, too.  It doesn't 
work when you don't own both ends of the communication.  I think what this boils down to 
is that I don't believe phase 3 in section 2.2 of the draft has reliable termination 
conditions, so it amounts in practice to the principle, "Use TXT for your 
RRTYPEs," only with the additional provision that all the TXT records have to carry 
around some additional cruft in their payloads forever.

The chunking mechanism strikes me, at least on first reading, as somewhat unreliable 
given caches and truncation in the DNS.  Since any RR of an RRSET ought to be as good as 
any other, you're not really in a position to signal upstream that you absolutely want 
the whole RRSET as the authoritative server has it or else you want not to get it.  Now, 
it is true that a cache should not have a partial RRSET that it delivers in an answer if 
it got that RRSET via UDP and truncated for some reason.  I am not convinced it is wise 
to rely on that principle in order to ensure that the entire RRSET for a given name and 
type will be guaranteed delivered to a final consumer; yet this chunking mechanism 
absolutely would require such a guarantee.  I'm admittedly pretty rusty, so it might just 
be rust; but I cannot think of a case where promises about the completeness of the RRSET 
for a given name and type are made except I suppose in zone transfers.  So this seems 
like an innovation in what we expect of RRSETs, and how we could convince ourselves that 
the expectation is already met in all deployed software under all deployed conditions is 
obscure to me.  The draft says that implementations must reject a chunked data set with 
missing chunks and so forth, but I have no clue what an implementation might do if it 
encounters this condition.  That seems to me to be a fatal objection, because the draft 
proposes this transition mechanism as one for any future new RRTYPE, and so will present 
an impediment to RRTYPEs that are naturally inclined to scrape the top of the TXT RR 
limit.  It's particularly problematic because this mechanism adds overhead that a native 
RRTYPE wouldn't have: the "TXT limit problem" might actually be an artifact of 
using the mechanism in this draft, and yet it could be the source of deployment trouble.

In sum, while I understand and have a lot of sympathy with the intent behind 
this draft (and anyone who has heard my extended complaining about TXT records 
and datatypes and so on will be able to confirm that sympathy), I don't think 
it is a good idea to pursue because I do not believe it will achieve what it 
would need to achieve.  It will, however, complicate future specifications for 
uses of the DNS. It will inevitably encourage people to invent compatibility 
arrangements through TXT when they are not needed.  That will provide a drag on 
adoption of a hypothetically proposed RRTYPE even as it also causes said RRTYPE 
to be hammered into the shape of a TXT payload.  Unfortunately, this is an 
example of good intentions and the destination for which they can be pavement.

Best regards,

A

--
Andrew Sullivan
a...@crankycanuck.ca

_______________________________________________
DNSOP mailing list -- dnsop@ietf.org
To unsubscribe send an email to dnsop-le...@ietf.org

Reply via email to