[Pdns-users] Re: Domains with binary (e.g. UTF-8) labels

Julian Mehnle julian at mehnle.net
Sun Dec 17 13:07:33 UTC 2006

bert hubert wrote:
> On Sun, Dec 17, 2006 at 12:48:08AM +0000, Julian Mehnle wrote:
> > > It also requires some work on the database side of things, as for
> > > example PostgreSQL is fond of interpreting 'VARCHARs' as UTF-8,
> > > which a random label very often is not.
> >
> > I'm not sure I understand what you're saying here.
> You want UTF-8. But it is stated nowhere that DNS should be UTF-8, there
> is only an RFC that says DNS is '8 bit clear' [...]

I did not say I wanted UTF-8 specifically.  The subject of my original 
message (and thus of this thread) clearly says "binary labels".

> If the database thinks in UTF-8, but something comes along that isn't
> (hint, many random 8-bit octet-strings are not valid UTF-8!), it refuses
> the data.

Please stop patronizing me.  I know what UTF-8 is.  If the database
"refuses" the data, then there obviously isn't any such record defined, so 
where's the problem?

> So the database needs to stop thinking and accept, and match, binary
> labels, while remaining case insensitive!

Case insensitivity applies only to ASCII characters.  So where's the 

> Stephane hinted at that already. I don't see how this should work. If we
> accept binary labels, we might match these when you don't expect them
> to.

> For example, a binary label containing the letter 'b' will also be
> matched by that same label containing the letter 'B', which might mean
> something differently to you.

No, it might _not_ mean something different to me, because ASCII characters 
in domain names are specified to be case insensitive.  If someone makes 
such an assumption, they're clearly mistaken.

> DNS does not accept 'abcde' and 'abcDe' as "brothers" in a zone, but
> from a binary standpoint they are different.

There is no such "binary standpoint" within the context of DNS from which
'abcde' and 'abcDe' (or, for that matter, '\xFFblah' and '\xFFBLAH') would 
be different.  Or are you saying that the DNS RFCs are in conflict with 
themselves in that case must be both ignored and honored at the same time?

RFC 1035:
| 2.3.3. Character Case
| For all parts of the DNS that are part of the official protocol, all
| comparisons between character strings (e.g., labels, domain names, etc.)
| are done in a case-insensitive manner.  At present, this rule is in
| force throughout the domain system without exception.  However, future
| additions beyond current usage may need to use the full binary octet
| capabilities in names, so attempts to store domain names in 7-bit ASCII
| or use of special bytes to terminate labels, etc., should be avoided.

> I'm not going to work out these complications, this will be up to the
> people that want 8-bit labels in PowerDNS.

I don't see any real complications here, however I don't currently have the 
time to learn the PowerDNS internals and create a patch.  I hope to 
revisit it in a few months.

I fully understand that you don't see this issue as a priority, but if you 
don't intend to eventually act on the "feature" request I filed yesterday, 
then why did you have me file it?  (And have you actually read my ticket?  
I think implementing it would be next to trivial for someone who knows the 
internals of PDNS.)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mailman.powerdns.com/pipermail/pdns-users/attachments/20061217/89ac9296/attachment-0001.sig>

More information about the Pdns-users mailing list