Re: [nfsv4] IDNA choices for servers for replicas/migration/referral

<Noveck_David@emc.com> Mon, 14 June 2010 19:32 UTC

Return-Path: <Noveck_David@emc.com>
X-Original-To: nfsv4@core3.amsl.com
Delivered-To: nfsv4@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 598543A694E for <nfsv4@core3.amsl.com>; Mon, 14 Jun 2010 12:32:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.412
X-Spam-Level:
X-Spam-Status: No, score=-5.412 tagged_above=-999 required=5 tests=[AWL=0.193, BAYES_00=-2.599, FS_REPLICA=0.994, RCVD_IN_DNSWL_MED=-4]
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 aLHlxawQdq61 for <nfsv4@core3.amsl.com>; Mon, 14 Jun 2010 12:32:01 -0700 (PDT)
Received: from mexforward.lss.emc.com (mexforward.lss.emc.com [128.222.32.20]) by core3.amsl.com (Postfix) with ESMTP id 498AD3A699A for <nfsv4@ietf.org>; Mon, 14 Jun 2010 12:31:28 -0700 (PDT)
Received: from hop04-l1d11-si02.isus.emc.com (HOP04-L1D11-SI02.isus.emc.com [10.254.111.55]) by mexforward.lss.emc.com (Switch-3.3.2/Switch-3.1.7) with ESMTP id o5EJVIbF023221 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 14 Jun 2010 15:31:18 -0400
Received: from mailhub.lss.emc.com (nagas.lss.emc.com [10.254.144.15]) by hop04-l1d11-si02.isus.emc.com (RSA Interceptor); Mon, 14 Jun 2010 15:31:09 -0400
Received: from corpussmtp4.corp.emc.com (corpussmtp4.corp.emc.com [10.254.169.197]) by mailhub.lss.emc.com (Switch-3.4.2/Switch-3.3.2mp) with ESMTP id o5EJV7Hs020351; Mon, 14 Jun 2010 15:31:07 -0400
Received: from CORPUSMX50A.corp.emc.com ([128.221.62.39]) by corpussmtp4.corp.emc.com with Microsoft SMTPSVC(6.0.3790.4675); Mon, 14 Jun 2010 15:31:06 -0400
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Mon, 14 Jun 2010 15:31:04 -0400
Message-ID: <BF3BB6D12298F54B89C8DCC1E4073D80014880A5@CORPUSMX50A.corp.emc.com>
In-Reply-To: <20100614170645.GO9605@oracle.com>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: [nfsv4] IDNA choices for servers for replicas/migration/referral
Thread-Index: AcsL5Fh7I7Ipq+YcTeCkYI6xESH2pgAEcOxw
References: <BF3BB6D12298F54B89C8DCC1E4073D8001487E5E@CORPUSMX50A.corp.emc.com> <20100614170645.GO9605@oracle.com>
From: Noveck_David@emc.com
To: Nicolas.Williams@oracle.com
X-OriginalArrivalTime: 14 Jun 2010 19:31:06.0357 (UTC) FILETIME=[22303250:01CB0BF8]
X-EMM-EM: Active
Cc: nfsv4@ietf.org
Subject: Re: [nfsv4] IDNA choices for servers for replicas/migration/referral
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jun 2010 19:32:09 -0000

> Are we aiming for server implementation simplicity?  

Are you?  The degree of importance you assign it will govern your
ordering of the list. 
 
> If so, A-labels all
> the way is the simplest solution (servers wouldn't have to implement
> IDNA, but they would have to check labels sent by clients to see that
> they are valid-looking A-labels). 

I have to make sure that the underlying string is normalized.  I have to
normalize the corresponding UTF-8 string and see if that winds up with
the same value.  There may be a slightly optimized (n-i/n-p)-like that
checks this in line which is faster but it isn't going to be much
simpler.  There may other prep-like stuff to check.  Also, before I do
that I have to un-Punycode (steroidi-code? :) it.

So that is essentially the code to convert an A-label-like string to a
U-label in that it returns all of the errors of such a process although
it doesn't actually have to output the U-label in the case of success.
The server is going to implement a very large portion of IDNA.

The other piece is that they are going to get, from configuration files
or such, strings with server names in them.  If it is ever possible that
they receive something that that is a UTF8-string (non-ascii) server
names, then they have to convert it to an A-label.  

    

-----Original Message-----
From: Nicolas Williams [mailto:Nicolas.Williams@oracle.com] 
Sent: Monday, June 14, 2010 1:07 PM
To: Noveck, David
Cc: nfsv4@ietf.org
Subject: Re: [nfsv4] IDNA choices for servers for
replicas/migration/referral

On Mon, Jun 14, 2010 at 12:49:31PM -0400, Noveck_David@emc.com wrote:
> This is a list of possible choices and I'm hoping to get enough of a
> consensus that it can be incorporated in the next draft of RFC3530bis,
> to be released in time for Maastricht.  My intension is that while we
> want to get the best choice, we realize that there are many different
> approaches to the issues here and that we put greatest stress on
coming
> up with an acceptable option that everybody can live with it, even it
is
> not the first choice, for what to you are very good reasons.
> 
> I'm putting in a very small list of reasons for each why that might be
a
> good choice.  Not necessarily my opinion.  

Are we aiming for server implementation simplicity?  If so, A-labels all
the way is the simplest solution (servers wouldn't have to implement
IDNA, but they would have to check labels sent by clients to see that
they are valid-looking A-labels).  But this would actually impair
deployment with name services other than DNS (see my other post today
about that, and see draft-iab-idn-encoding); I'm not sure that that's a
problem.

The most flexible scheme is to allow clients to send unnormalized UTF-8
and require that servers send either only U-labels (canonical, what you
call Gold-labels; but it turns out 'U-label' means just that), or
U-/A-labels at the server's discretion.  But then servers would have to
implement IDNA, no ifs ands or buts.

Alternatives in between would require that both, clients and servers
implement IDNA.  Clients will generally have to implement IDNA, if not
because of NFSv4, then because of other apps, so requiring them to
implement IDNA is not a big deal.

Looking at it from our point of view, having a general-purpose-OS-based-
implementation, both for the client and the server, forcing the server
to implement IDNA is not really any different from forcing the client to
implement it.  Therefore I'm neutral as to which, if not both, of the
client and server should have to implement IDNA.  Thoughts?

Nico
--