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

Re: [idn] Which names are valid? (was How should labels be encoded?)




> David Hopwood <david.hopwood@zetnet.co.uk> wrote:
> 
> > In a query for SRV records, a non-LDH character ('_') is used in the
> > query string (QNAME), not just the response.
> 
> I stand corrected.  I was not aware that non-LDH characters were welcome
> in DNS queries.

	The DNS doesn't care about the contents of labels.  It's the
	applications that use the DNS that care.

> 
> This raises the question:  Is _ldap._tcp.example.com a domain?

	Yes.  It's not a hostname however.  Underscore was prepended
	to these labels to avoid collisions with hostnames.  This
	allows you to delegate a tcp domain with having problems
	with using SRV records for the parent domain.

	A real life example that used to exist.  CSIRO had a division
	called Tropical Crops and Pastures.  Its domainname was
	tcp.csiro.au.  Without the underscores you would have had
	to put the SRV records for csiro.au in the tcp.csiro.au
	zone.  This was bad.  Paul had trouble convicing Jon of
	this which is why the first SRV RFC didn't have the
	underscores and the second one does.

> Or is it
> a creature like the mailbox field of SOA records, a sequence of labels
> that does not name a domain?

	The RNAME field is a domainname, however it is not a hostname
	(maildomain) though it contains a hostname (maildomain).

> 
> Could the name server for example.com contain SOA and NS records for
> _tcp.example.com, and the name server for the latter contain the SRV
> record for _ldap._tcp.example.com?

	Yes.  People do this all the time to intergate W2K into
	BIND where they don't want example.com to be modified but
	they still want to support the dynamic updates of the DNS
	by W2K AD.

>  If we want the answer to be yes,
> then _ldap._tcp.example.com must really be a domain.

	It is.

> If the answer is
> no, we could say it's not a domain, just a sequence of labels, of which
> all but the first two form a domain name, and IDNA would apply only to
> those labels.

	I tried very, very hard to get the concept of hostname,
	maildomain and domainname across very early in this process.
	You are only now realising that domainname is a supperset
	of hostname and maildomain.

> 
> Perhaps nameprep is not the right layer for the non-LDH ASCII
> prohibition.  Maybe that belongs at a higher layer, the same layer that
> checks for beginning/ending hyphens.  In other words, put all the checks
> related to preferred name syntax in one place, where they can be skipped
> if they don't apply.

	That's where these checks are today.  They are in the
	get*by*() routines not in the res_*() though there are
	res_*() subroutines that will tell you if the name is valid
	in a particular context.

	I also don't consider get*by*() to be resolver routines
	even though they are sometimes in libresolv.  get*by*()
	sit above several databases of which the DNS is one.

	Mark
> 
> By the way, I already had plans to make a slight change to AMC-ACE-Z
> so that all ASCII characters are encoded literally, not just LDH
> characters, because it makes the encoder slightly simpler, and has no
> effect for names that avoid non-LDH ASCII characters.
> 
> AMC
> 
--
Mark Andrews, Nominum Inc.
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: Mark.Andrews@nominum.com