Re: [dnsext] Name equivalence - thoughts on the Greek issue

Alex Bligh <alex@alex.org.uk> Mon, 13 September 2010 17:16 UTC

Return-Path: <owner-namedroppers@ops.ietf.org>
X-Original-To: ietfarch-dnsext-archive@core3.amsl.com
Delivered-To: ietfarch-dnsext-archive@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 80DDD3A6A2C; Mon, 13 Sep 2010 10:16:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.646
X-Spam-Level:
X-Spam-Status: No, score=-0.646 tagged_above=-999 required=5 tests=[AWL=-0.043, BAYES_00=-2.599, J_CHICKENPOX_63=0.6, MIME_QP_LONG_LINE=1.396]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id w7VAxZghChdJ; Mon, 13 Sep 2010 10:16:02 -0700 (PDT)
Received: from psg.com (psg.com [IPv6:2001:418:1::62]) by core3.amsl.com (Postfix) with ESMTP id 3B52E3A6A91; Mon, 13 Sep 2010 10:15:44 -0700 (PDT)
Received: from majordom by psg.com with local (Exim 4.72 (FreeBSD)) (envelope-from <owner-namedroppers@ops.ietf.org>) id 1OvCXz-000PIy-WF for namedroppers-data0@psg.com; Mon, 13 Sep 2010 17:10:28 +0000
Received: from mail.avalus.com ([89.16.176.221]) by psg.com with esmtp (Exim 4.72 (FreeBSD)) (envelope-from <alex@alex.org.uk>) id 1OvCXw-000PIf-Pf for namedroppers@ops.ietf.org; Mon, 13 Sep 2010 17:10:25 +0000
Received: from [192.168.100.15] (87-194-71-186.bethere.co.uk [87.194.71.186]) by mail.avalus.com (Postfix) with ESMTPSA id B55A0C5691B; Mon, 13 Sep 2010 18:10:21 +0100 (BST)
Date: Mon, 13 Sep 2010 18:10:21 +0100
From: Alex Bligh <alex@alex.org.uk>
Reply-To: Alex Bligh <alex@alex.org.uk>
To: Brian Dickson <brian.peter.dickson@gmail.com>, namedroppers@ops.ietf.org
cc: Alex Bligh <alex@alex.org.uk>
Subject: Re: [dnsext] Name equivalence - thoughts on the Greek issue
Message-ID: <4CB34ABA9CB7B47CFFA87C5B@Ximines.local>
In-Reply-To: <AANLkTiktL=5b_izJGpuOPHHoOH0XJoVbTJK+0H5FoXUP@mail.gmail.com>
References: <AANLkTiktL=5b_izJGpuOPHHoOH0XJoVbTJK+0H5FoXUP@mail.gmail.com>
X-Mailer: Mulberry/4.0.8 (Mac OS X)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Sender: owner-namedroppers@ops.ietf.org
Precedence: bulk
List-ID: <namedroppers.ops.ietf.org>
List-Unsubscribe: To unsubscribe send a message to namedroppers-request@ops.ietf.org with
List-Unsubscribe: the word 'unsubscribe' in a single line as the message text body.
List-Archive: <http://ops.ietf.org/lists/namedroppers/>

--On 13 September 2010 13:35:01 -0300 Brian Dickson 
<brian.peter.dickson@gmail.com> wrote:

> This would require (some) encodings that on a per-character basis are
> byte-aligned, meaning each original character becomes an integer number
> of characters.

(unicode use on my mailer is untested, so bear with me).

I am not sure this is always true. Consider the sequences "oe" and œ
(that's meant to be LATIN SMALL LIGATURE OE' (U+0153), an "o" and an "e"
joined together). Or "fl" and "fl" (that's meant to be "LATIN SMALL
LIGATURE FL" (U+FB02), an "f" and an "l" joined together). Two characters
could have a single equivalent unicode character.

With apologies to Butler Lampson, I propose, on the basis that all
problems in computer science can be solved by an additional
layer of indirection, MOSTLY IN JEST, the generalised SED
script record, to be applied on a per label basis when translating
UNICODE names:

$ORIGIN foo.
	.	IN	SED	"s/fl/fl/g;œ/oe/g;"
	oefloe	IN	NS ns.example.com.

$ORIGIN oefloe.foo.
	.	IN	SED	"s/fl/fl/g;œ/oe/g;"
	www-oe	IN	A	192.200.0.1

(obviously please fix with appropriate escape chars)

nameprep works on a label by label basis from RHS to LHS. At some
early point in processing each label, the SED record for the domain formed
by the already processed rightward labels is looked up, and the sed
string applied. Apart from its type, the SED record is just like
a TXT record.

So in the above, when looking up www-œ.œflœ.foo. example nameprep is 
first
done on foo, leading to "foo", then on "œflœ.foo." leading to a SED
query for foo., then to "oefloe.foo.", then a nameprep on on "
"www-œ", leading to a SED query for oefloe.foo. and "www-oe.oefloe.foo".

This generalises to support all other forms of equivalence e.g.
$ORIGIN foo.
	.		IN	SED	"s/^onename$/anothername/g;"
	anothername	IN	NS ns.example.com.

Because, if we can get DNS to do SRV records, geolocation, security
and spam filtering, surely we should be able to get it to do arbitrary
string replacement too? draft-01 will contain a full implementation
of emacs in DNS :-)

-- 
Alex Bligh