Date: Tue, 20 Jan 2026 14:27:53 +1100
From: Paul Ripke <[email protected]>
Message-ID: <[email protected]>
| One wonders, given the increasingly broken state of the internet, if
| the default is sane?
It never was sane. RFC1035 does not specify any particular name syntax,
other than that the length of each label be < 64 bytes (and at least 1),
and that the overall name length be <= 255 bytes.
Section 3.1 says quite clearly:
Although labels can contain any 8 bit values in octets that make up a
label, it is strongly recommended that labels follow the preferred
syntax described elsewhere in this memo [...]
which puts it beyond doubt that anything is permitted, just recommends
that a less "generous" naming convention actually be used. The only
weirdness is that it also specifies that ascii letter values (and nothing
else) must do comparisons such that with upper and lower case variants
of the same character compare equal (ie 0x65 == 0x97, etc).
If you need any more reinforcement of that, you can check RFC2181.
The only place there needs to be any standard for host names (beyond
what the DNS requires, which is just lengths) is where the name is
transferred as part of protocol data. E-mail is the primary one of
those, and the e-mail RFCs specify the names allowed (not RFC1035).
HTTP probably also has some restrictions, but I have never cared enough
about that as a protocol to bother reading its spec, so I don't know
what is required there - except that I believe that actually transferring
the host name isn't necessarily required (though things can fail to work
as intended for some setups if it isn't done).
But since the resolver has no idea what a name looked up is to be used
for, it has no business imposing any syntax rules upon its content at
all - strictly it should even allow '.' chars to be a part of a label
(ie, not the normal '.' that separates labels) but I don't know of any
that provide a mechanism to allow that (which doesn't mean none do).
Even \0 chars should be allowed, though I suspect there are few
implementations where those would work properly.
kre
ps: Nothing in any of this means that there is any reason that whoever
is registering names in any domain (from the root all the way down) is
not permitted to limit the names (by syntax or content) in any way they
please. That is, if you own (or control) a domain name, what subdomains
of that get created is entirely up to you.