Dear colleagues,

I didn't have time to write a short note, so I wrote a long one instead.

On Mon, May 05, 2025 at 11:15:40PM -0500, Michael De Roover wrote:

On Saturday, May 3, 2025 8:18:51 PM CEST Philip Homburg wrote:
.onion

This is not DNS. Nobody is supposed to run a .onion zone anywhere. So
no issue. From, a DNS point of view, this domain does not exist.

This is something I was reminded of, from seeing it in the SUDN registry and
here. It reminds me of how web browsers enter the picture here (though DNS use
of .internal does not seem limited to that). But being part of the Tor
network, .onion does have a significant use for specific web browsers.

One of the things about mostly disappearing from the IETF for a while and 
returning is to be reminded how stuff stays the same, and I am nonplussed to 
see that this is one of those topics.  I contend once again that there is a 
reason people keep getting wound around this axle, and it is the failure to 
take into account different classes of things.

To begin with, there are names that are squarely outside the DNS.  For 
instance, any name with at least one label longer than 63 octets plus the 
separator is, by definition, outside the DNS.  (I include this for 
completeness, but it isn't an issue in this discussion.)

Second are names that are logically speaking candidates to be in the DNS, but that have a 
specific role to tell you that in fact a different name system is involved.  It is 
unfortunate that, historically, people decided they had to use in-band signalling for 
this, but I admit I cannot think of something else that would have worked for deployment. 
 Good examples of this are .local and .onion.  Each of these is supposed to tell a 
resolver, "Look out!  We're switching protocols!"  A conforming resolver will 
do the right thing.  Of course, this being the Internet, there is no way to know whether 
a given system will in fact be conforming, so the documents have to specify what to do in 
case such protocol switches don't work (and they do so). There is some 
inter-organizational Hokey Pokey to play here if the protocol-switch names appear to be 
TLDs, because it's important to ensure the organization that manages the actual DNS root 
doesn't collide with these special uses, particularly when the special uses are being 
designed.  Moreover, there is the problem of people actually attempting a proof of the 
slogan that protocols are politics by other means, in which they are trying to create a 
protocol especially to go around the policies of that other organization.

Third are names that are intended to be used in an ordinary DNS context.  The 
official position of the IAB, at least, has been for many years that the domain 
namespace (or maybe the DNS namespace, but I doubt it -- I don't think the 
protocol-switch understanding was as full as it might have been when RFC 2826 
was written, but I think it still has to apply to all domain names) is a 
unified one that all but creates the uniform network of networks.  This would 
seem to entail that, if you want to use a domain name outside the context of 
the global public DNS but still want to use the DNS with it, you should just 
register a domain name and use that, and not publish the records in a public 
manner.  That has been the advice to network and system administrators, for 
whatever it's worth, for as long as I can remember -- certainly, since years 
still began with a 1.  Nevertheless, this position has the distinct problem 
that it doesn't match what people actually do.

And so we are at the degenerate case of giving a place within the DNS, that 
uses the DNS in a normal way, but that is officially reserved as being for 
private use.  Leaving aside the probability that anyone who is going to do this 
sort of thing is going to do it in conformance with yet another IETF document 
on the topic, I think asking whether DNSSEC ought to work normally in this case 
is to make an error.  The only way you can get DNSSEC to work reliably under 
such a case of name-overloading is to have local trust anchors that allow you 
to establish trust at some point in the private namespace.  But since the 
namespace is private and unmanaged, there is no way to make that work reliably 
in a world where devices regularly wander between networks.  In the absence of 
an automatic local trust-anchor installation mechanism that happens at network 
auto configuration (the very idea of which strikes me as creating way more 
problems than it is likely to fix), I don't see how DNSSEC is compatible with 
this degenerate use of a global namespace with an overloaded private use space.

Perhaps this is just a long way of saying that RFC 1918-for-DNS is actually a 
terrible, no good, very bad idea, but people are going to do it anyway.  So all 
one can do is accept that degenerate cases entail more degenerate uses, and I 
therefore think that trying to make DNSSEC work in any reliable way with 
.internal is a fool's errand, no matter what one tries.  Other cases like 
.onion are irrelevant, because they're protocol switches that tell you go go 
somewhere else.

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