[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: TXT records and what not to use them for



I mostly agree with Thomas about the inadvisability of doing this sort
of thing via TXT RRs.

As Thomas says, TXT RRs are ok when they're intended solely for human
beings to read.

TXT RRs are also ok when they're in a portion of the DNS namespace
that has been set aside for a particular purpose, so that they cannot
be confused with "ordinary" records.  Eg, if I were to build an
OID-to-URL mapping database at OID.HACTRN.NET, I could use TXT RRs
with rigorous internal structure in that tree, since it's my tree and
the TXT RRs in it mean whatever I say they mean.  If I were expecting
this to become an Internet-wide service, it might make more sense to
define a new RR type anyway, but for small test cases or special
purpose hacks it may not be worth trying to standardize a new RR type.

TXT RRs are -not- a good idea when (a) they're mixed into the "main"
naming tree and (b) depend on any kind of uniform interpretation.  Eg,
mixing my OID-to-URL TXT RRs with Jerry's host-to-location TXT RRs is
a bad idea, and depending on knowledge of current host naming
conventions to avoid collisions is not a good idea either, since such
rules do change over time, albiet slowly.

If you're trying to build an Internet wide service, standardize a new
RR type, that's what the type code is there for.  Feel free to define
it in such a way that it looks just like a TXT RR if you really don't
need any more structure, that way you can reuse all the existing code
to handle TXT RRs.  But don't try to impose new semantics on existing
types in the main tree, it'll just lead to confusion.

Thomas's point about using the type code to get exactly the RRs you
need is also well-taken.  Every few years somebody comes up with a
scheme that boils down to putting some kind of sub-type code into the
RDATA of an RR, so that we won't have to allocate new types.  Such
schemes are understandable, but misguided.  If two conceptual kinds of
RRs can be used independently, they should have distinct type codes.

--Rob