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

[idn] How should labels be encoded?




The IDNA (ACE+nameprep) discussions have been focused on how to
encode "host names" to be used in DNS.

In DNS there are records that have an owner name and can include
names and text elements. All names are composed of labels.
A label is today maximum 63 bytes and can contain any character.
RFC 2181 defines that the DNS protocol and servers may not
restrict the characters that may be used in a label. But an
application can.

IDNA defines that a "host name" is to be nameprepped and ACEd before
being sent into the DNS protocol. As using nameprep results in
some characters being forbidden, it cannot be used as a general
mechanism on all labels.

So now my question is: how should the labels in the DNS protocol
be encoded? 
Which labels are "host names"?
The SOA record contains one that is an e-mail address.
The SRV record has an owner name that represents a protocol.
Also not every thing which has an IP-address is a "host".
As DNS is more than "host names", how are labels that are not
"host names" to be encoded when non-ASCII is used?

IDNA does not answer this and it does not define which labels
are "host names" and must be ACE+nameprep encoded.
It can happen that one application thinks a label in a
DNS record is a host names, and another application uses it
as something else (using some other encoding that ACE+nameprep).

There is a possibility of difficulties here.

   Dan