Re: [dhcwg] I-D Action: draft-ietf-dhc-dhcpv6-stateful-issues-06.txt

神明達哉 <jinmei@wide.ad.jp> Tue, 08 July 2014 18:09 UTC

Return-Path: <jinmei.tatuya@gmail.com>
X-Original-To: dhcwg@ietfa.amsl.com
Delivered-To: dhcwg@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6713A1A0370 for <dhcwg@ietfa.amsl.com>; Tue, 8 Jul 2014 11:09:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.978
X-Spam-Level:
X-Spam-Status: No, score=-0.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1IC8uCucu1fB for <dhcwg@ietfa.amsl.com>; Tue, 8 Jul 2014 11:09:22 -0700 (PDT)
Received: from mail-wi0-x230.google.com (mail-wi0-x230.google.com [IPv6:2a00:1450:400c:c05::230]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 891421A0165 for <dhcwg@ietf.org>; Tue, 8 Jul 2014 11:09:21 -0700 (PDT)
Received: by mail-wi0-f176.google.com with SMTP id n3so1451784wiv.15 for <dhcwg@ietf.org>; Tue, 08 Jul 2014 11:09:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=KTuNreh1fgxITXLsM3VAoyFBtBHFB2QYXd0lw92ZtIM=; b=qnWbEIiU5BQ5wnROC0SJtxIXhrzDhzycEe6EDuhUTrwmRHrdvR13DFyeliA1nKb0ET GA4+/t6zYP1VglkEX7HFaeuNFC/CqkT54FIQWxiCNNKfo9cXAgpYtulcy2NJ8iOCzMCR r5thSf48s6FT6uHEDjniRo1ferdRum/mfNr31ckpDHcSGYnVk7wQKY2FifDJB1xrTfUC UAKo+wSpYHFIBtYUF2aJ2aNK24UppzeA9/BVZtP/ZL0yH9jmIb5CjVpxe+3y19F39f8J WFoU9D5aKIyPBb6j/3pccCyHHdYiB6JtzypA+SH/R/FqJvUn85sijmk+Sru9khTweOgz Q0jA==
MIME-Version: 1.0
X-Received: by 10.194.185.238 with SMTP id ff14mr42680816wjc.9.1404842960038; Tue, 08 Jul 2014 11:09:20 -0700 (PDT)
Sender: jinmei.tatuya@gmail.com
Received: by 10.194.63.211 with HTTP; Tue, 8 Jul 2014 11:09:19 -0700 (PDT)
In-Reply-To: <489D13FBFA9B3E41812EA89F188F018E1B5E03D1@xmb-rcd-x04.cisco.com>
References: <20140630163351.4191.69719.idtracker@ietfa.amsl.com> <489D13FBFA9B3E41812EA89F188F018E1B5E03D1@xmb-rcd-x04.cisco.com>
Date: Tue, 08 Jul 2014 11:09:19 -0700
X-Google-Sender-Auth: 95z7XUxkGLbzbq41vf7PDXpwmD4
Message-ID: <CAJE_bqfc2VYdmrfs_04baZ6VJwEQ_KjJOcB=8JTqXPkkXEKbXw@mail.gmail.com>
From: 神明達哉 <jinmei@wide.ad.jp>
To: "Bernie Volz (volz)" <volz@cisco.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: http://mailarchive.ietf.org/arch/msg/dhcwg/5qpkL1cCZ-VV3Mns9uzRDe8idjM
Cc: "dhcwg@ietf.org" <dhcwg@ietf.org>
Subject: Re: [dhcwg] I-D Action: draft-ietf-dhc-dhcpv6-stateful-issues-06.txt
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <dhcwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/dhcwg/>
List-Post: <mailto:dhcwg@ietf.org>
List-Help: <mailto:dhcwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Jul 2014 18:09:23 -0000

On Mon, Jun 30, 2014 at 9:55 AM, Bernie Volz (volz) <volz@cisco.com> wrote:

> Anyway, give the current draft a read and if there are concerns or questions (or you have a view on the issue), please send mail to the list ASAP.

Now, I'm going to make my complete review comments on the draft.  I'll
begin with a set of overall comments at a higher level.  I'll send
specific comments on the draft text separately.

With the understanding that this draft intends to specify the general
case of using multiple types of IAs including yet-to-define future
ones, I think it will need to discuss many more points.  For example:

- (forgetting IA_TA for now) it seems to assume all IAs have the
  concept of "T1" and "T2", and it always (or at least generally)
  makes sense to use the same T1/T2 values for all IAs for a specific
  DHCPv6 session.  Can we safely assume that?  May or may not be so,
  but even if so, I think such an assumption is explicitly noted.
- likewise, it seems to assume all IAs have the concept of
  "lifetimes".  Same discussion as the first bullet applies here.
- there seems to be some implicit assumption on the normal case
  operation, e.g.: in normal cases, a set of IAs that can be bound
  by servers is the same for all available servers; otherwise, the
  following case will cause a suboptimal situation for the client:
  + the client would like bindings for IA1 and IA2
  + server A can provide a binding for IA1 but not for IA2
  + server B can provide a binding for IA2 but not for IA1
  According to the approach described in the draft, the client should
  have a single DHCPv6 session for both IAs and choose either server A
  or B.  In either case the client can only get a binding for one of
  the two IAs; if the client can have separate DHCPv6 sessions for
  these IAs, it can get bindings for both IAs.  I'm not necessarily
  saying we shouldn't impose this assumption.  In fact, such an
  assumption would probably be reasonable in many cases in practice
  (would be certainly so for the mix of IA_NA and IA_PD).  But the
  assumption isn't obvious, so IMO we should explicitly clarify that
  (and, ideally, how we should consider when the assumption isn't met;
  whether we should declare it as out of scope, whether we should
  explicitly prohibit it using an RFC2119 keyword, etc).
- Similarly, it seems to be assumed that when a server could provide
  bindings for IA1 and IA2:
  + the server can provide bindings for both IA1 and IA2, or,
  + it can provide a binding for neither IA1 nor IA2.
  Otherwise, the following case will become suboptimal for the client:
  + the client would like bindings for IA1 and IA2
  + the server provides binding for IA1.  a binding for IA2 is
    temporarily unavailable.
  + the client will need to wait until T1 expires to get a binding
    for IA2, even if the binding is actually available immediately
    after the Request-Reply exchange.

And then there's the point of how to handle IA_TA.  In addition to the
mere fact that it doesn't have T1 and T2 (see above about the
assumptions), I suspect its nature of non-renewability makes the
situation complicated in more fundamental way.  Suppose a client wants
to get IA_TA and IA_NA (or any other IA_xx than IA_TA).  According to
the draft the client will have a single DHCPv6 session for both IAs
and (hopefully) get bindings for them.  Then, at time T1 (of IA_NA),
specifically what should the client do?  Just excluding IA_TA in the
renew message?  Maybe this is okay, but then what should it do when
the binding for IA_TA (is about to) expires?  In practice the client
should need another temporary address before the expiration, but
should the client now request another IA_TA binding in the existing
DHCPv6 session?  If so, how?  If not, should it start a separate
DHCPv6 session for the new IA_TA?  But in that case it breaks the
proposed model where the client should have a single session for all
IAs.  As long as we include IA_TA in the discussion, I don't think we
can leave these questions open.

One option would be to completely exclude IA_TA from the discussion
and declare that we only consider IAs that have the concept of T1 and
T2.  That will make the discussion a lot easier and simpler, and would
make sense especially if we even consider deprecate the concept of
IA_TA (as briefly mentioned, IIRC, in the discussion on the previous
version of the draft).

Finally, and also somehow related to the points discussed above, I
think this document will have to clarify the relationship between
a DHCPv6 session and state of IAs in more detail.  A simple diagram of
state transition of IA based on RFC3315 would look like this:
http://gyazo.com/40653139343151e40e25cc0937c192f1 (a png image)
The stateful-issues draft would introduce another state named
something like "unbound" since a DHCPv6 session can conceptually
include an IA that is not yet assigned by the server.  Also, the
stateful-issues draft specifically discusses the case with multiple
IAs for a single DHCPv6 session, so conceptually we need to think
about multiple these diagrams and how they affect the DHCPv6 session.
Right now, it only shows how a client (and server) should do focusing
on DHCPv6 message handling (just following RFC3315), but the concept
is now more complicated and it seems to me that we need some more
architectural description...I know this comment may sound vague.  I'm
not sure specifically how I'd suggest addressing it at the moment, but
at least I'd feel there are too many open points in the current shape
draft if I were to try to implement it and would need something more
specific.

--
JINMEI, Tatuya