Re: [v6ops] I-D Action: draft-ietf-v6ops-host-addr-availability-03.txt

"Fred Baker (fred)" <fred@cisco.com> Fri, 11 December 2015 17:49 UTC

Return-Path: <fred@cisco.com>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A824D1B2DBD for <v6ops@ietfa.amsl.com>; Fri, 11 Dec 2015 09:49:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -113.309
X-Spam-Level:
X-Spam-Status: No, score=-113.309 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, J_CHICKENPOX_22=0.6, J_CHICKENPOX_54=0.6, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_WHITELIST=-100] autolearn=ham
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 lvqnq_QZDe3r for <v6ops@ietfa.amsl.com>; Fri, 11 Dec 2015 09:49:13 -0800 (PST)
Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 41DDD1A905A for <v6ops@ietf.org>; Fri, 11 Dec 2015 09:49:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=53762; q=dns/txt; s=iport; t=1449856153; x=1451065753; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=06Ol6CEui4E47qtgMPtKE8NP4Un2JfrUcrnxoA+I/sA=; b=ZiMjqzAumMFryTuLMNt5mtuSSVdbLnNufdzSNea2utoQYVCQdeXjfoaQ 9DWIT4/+2RKV9NUg94PfPTxJ6uV/lwFfa+FmiezPfi3w2D37DAiNMGKzN yul9W6UsVoXYi7cfNfwr8brfkk9el6mR8xVXt0h58aQGerDWuwfFK8lni 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AFAgDpC2tW/5xdJa1egm5MU24GvSkBDYFigl6DMQIcgRQ4FAEBAQEBAQGBCoQ0AQEBBCMEBkwQAgEIEQMBAQEhAQYDAgICMBQJCAIEDgUUiButG5FvAQEBAQEBAQEBAQEBAQEBAQEBAQEBGIhlgm6EIQkLBgEsCQoWgmYvgRoFkwKDcAGNQ4FbhEWOD4Rug3IBHwEBQoQEcgGEGgEIFwQfgQcBAQE
X-IronPort-AV: E=Sophos; i="5.20,414,1444694400"; d="scan'208,217"; a="54714579"
Received: from rcdn-core-5.cisco.com ([173.37.93.156]) by rcdn-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Dec 2015 17:49:11 +0000
Received: from XCH-RCD-013.cisco.com (xch-rcd-013.cisco.com [173.37.102.23]) by rcdn-core-5.cisco.com (8.14.5/8.14.5) with ESMTP id tBBHnBAd028819 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 11 Dec 2015 17:49:11 GMT
Received: from xch-rcd-013.cisco.com (173.37.102.23) by XCH-RCD-013.cisco.com (173.37.102.23) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Fri, 11 Dec 2015 11:49:10 -0600
Received: from xch-rcd-013.cisco.com ([173.37.102.23]) by XCH-RCD-013.cisco.com ([173.37.102.23]) with mapi id 15.00.1104.009; Fri, 11 Dec 2015 11:49:10 -0600
From: "Fred Baker (fred)" <fred@cisco.com>
To: "Templin, Fred L" <Fred.L.Templin@boeing.com>
Thread-Topic: [v6ops] I-D Action: draft-ietf-v6ops-host-addr-availability-03.txt
Thread-Index: AQHRM+SSrD+a7h3APEy9mK9boYypOp7GY0SA//+L5YA=
Date: Fri, 11 Dec 2015 17:49:10 +0000
Message-ID: <DE8756E5-D4E1-4734-93DF-F5C8EE4F400A@cisco.com>
References: <20151210151847.2475.78959.idtracker@ietfa.amsl.com> <2134F8430051B64F815C691A62D9831832F8752B@XCH-BLV-504.nw.nos.boeing.com> <CAKD1Yr24=ymA68n28aYSKCuSAG02yppP5CGKD3ir2KgVDN9dtA@mail.gmail.com> <A531C615-FA9A-4CA1-A7E8-4AAC7D602084@cisco.com> <2134F8430051B64F815C691A62D9831832F8859D@XCH-BLV-504.nw.nos.boeing.com>
In-Reply-To: <2134F8430051B64F815C691A62D9831832F8859D@XCH-BLV-504.nw.nos.boeing.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/0.0.0.151105
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.19.64.123]
Content-Type: multipart/alternative; boundary="_000_DE8756E5D4E1473493DFF5C8EE4F400Aciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/v6ops/K2HD2oerw0wDNnjDTr_LxlnLHQg>
Cc: "v6ops@ietf.org" <v6ops@ietf.org>
Subject: Re: [v6ops] I-D Action: draft-ietf-v6ops-host-addr-availability-03.txt
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: v6ops discussion list <v6ops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/v6ops>, <mailto:v6ops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/v6ops/>
List-Post: <mailto:v6ops@ietf.org>
List-Help: <mailto:v6ops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/v6ops>, <mailto:v6ops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Dec 2015 17:49:17 -0000

In the following, I am speaking as a member of the community. I expect other members of the community to chime in.

The "Strong" and "Weak" host models are defined in section 3.3.4.2  "Multihoming Requirements", and not in the part which is normative, but the "discussion" presented to assist in understanding. The requirements stated have to do with the choice of a source address, and consist of:

            The following general rules apply to the selection of an IP
            source address for sending a datagram from a multihomed
            host.

            (1)  If the datagram is sent in response to a received
                 datagram, the source address for the response SHOULD be
                 the specific-destination address of the request.  See
                 Sections 4.1.3.5 and 4.2.3.7 and the "General Issues"
                 section of [INTRO:1] for more specific requirements on
                 higher layers.

                 Otherwise, a source address must be selected.

            (2)  An application MUST be able to explicitly specify the
                 source address for initiating a connection or a
                 request.

            (3)  In the absence of such a specification, the networking
                 software MUST choose a source address.  Rules for this
                 choice are described below.

            There are two key requirement issues related to multihoming:

            (A)  A host MAY silently discard an incoming datagram whose
                 destination address does not correspond to the physical
                 interface through which it is received.

            (B)  A host MAY restrict itself to sending (non-source-
                 routed) IP datagrams only through the physical
                 interface that corresponds to the IP source address of
                 the datagrams.

Personally, I will note that the socket library doesn't provide for the application to select the source address it will use. There are ways around that, but generally speaking, the source address is chosen by the underlying communication layers.

The Strong and Weak models, there called "ES" or End System models, have to do with the interpretation of "MAY" in requirements A and B. In the Strong ES Model, MAY becomes MUST, and in the Weak ES Model, and MAY becomes MUST NOT. In the words of the RFC, A Strong ES emphasizes the distinction between a host and a router, and a Weak ES de-emphasizes that distinction. A Strong ES, in selecting a router (which it alternately calls an "IS" or a "gateway") the host performs a function

                         route(src IP addr, dest IP addr, TOS)
                                                        -> gateway

And a weak ES performs a function

                         route(dest IP addr, TOS) -> gateway, interface

The scope of this draft has to do with the number of addresses assigned or potentially assigned to the host. There are two obvious examples of the implications here.

One a fairly standard behavior of Windows, Mac, FreeBSD and Linux systems today, which is that when a router announced a SLAAC prefix in an RA, the host creates one "permanent" address, and in a rolling manner, creates and destroys a "temporary" address every day, with up to seven valid at any given time. It expects to announce the "permanent" address in DNS for the benefit of other systems desiring to communicate with it, and to originate sessions using its various "temporary" addresses. If it has ten interfaces and receives three separate RAs on each, it potentially has 30=10*3 prefixes announced to it, and it might have 240=30*8 active addresses at any given time.

The assumption made in draft-ietf-6man-multi-homed-host is that the host acts as a "strongish" host with respect to each of those prefixes. The difference between its model and RFC 1122's Strong Host model is, in a word, MIF; in selecting a first hop gateway, it might find that gateway on multiple interfaces.

The other is something we know some industry leaders to be experimenting with (draft-herbert-nvo3-ila), which is that DHCP-PD is used to allocate a prefix to a physical or virtual host. The implication of having done so is that the host has 2^64 addresses, which it may use in any way it chooses. If the host is multihomed (e.g., has more than one L2 interface), one has to assume that the routing system somehow knows to route traffic to that prefix to any of its interfaces, and one can expect the host itself to operate as a weak host – it will pump packets out whatever interface it chooses, and they will all be in that prefix. And BTW, there is no architectural reason it has to be exactly one prefix.

As someone noted to me yesterday in FB messaging, the question there becomes at what point we re-introduce the address exhaustion problem into IPv6. When do we find ourselves dealing out inefficiently used large blocks of addresses in such a willy-nilly manner that we actually start running out of prefixes to allocate? We have, nominally, 2^64 /64 prefixes we can allocate. When does that become a small number?


When I consider the implications of the Strong and Weak ES Models for this draft, I am forced to choose words that apply in both of these cases. From my perspective, speaking not as chair (which is a procedural role) but as an individual contributor (which is a technical role), my question becomes how to to further the scope of the draft without adding undue complexity or making the statement be about one paradigm or the other.

You're thinking, at this point, "Fred, this is one !@#$ of a long email! TL;DR!". Yes, and we can do that to this draft as well. I don't think that is a useful direction.

So, speaking as an individual contributor, I think the direction to go is simplicity. In both of the cases, what the draft targets is "when allocating addresses using DHCP/DHCPv6, please don't limit me to a single /128". The statement applies in both cases equally well. Introducing the Strong vs Weak ES Model discussion adds text to the draft, but I'm not sure it adds understanding to a BCP. Hence, I personally would leave the model discussion to another draft, and focus on the stated objective of the proposed Best Current Practice.


From: "Templin, Fred L" <Fred.L.Templin@boeing.com<mailto:Fred.L.Templin@boeing.com>>
Date: Friday, December 11, 2015 at 8:44 AM
To: Fred Baker <fred@cisco.com<mailto:fred@cisco.com>>
Cc: "v6ops@ietf.org<mailto:v6ops@ietf.org>" <v6ops@ietf.org<mailto:v6ops@ietf.org>>, Lorenzo Colitti <lorenzo@google.com<mailto:lorenzo@google.com>>
Subject: RE: [v6ops] I-D Action: draft-ietf-v6ops-host-addr-availability-03.txt

Hi Fred,

I think I need the community’s help in understanding the tradeoffs for strong vs. weak
end system models in terms of the behavior hosted applications will observe before I
can comment further. As I understand it, when a PD prefix is received over a common
interface type such as multicast-capable (call it “eth0”), but addresses from the PD
prefix are assigned to an internal virtual interface (call it “lo0”) applications will observe
packets arriving with a destination address other than the ones assigned to the
interface the packet arrived on. That is the weak end system model. If we could
somehow assign the addresses to “eth0”, it then becomes strong end system.

But, the question is whether weak end system is a bad thing, and is it worth taking
measures to present the application with a strong end system model? This is where
I think we need the help of community – especially app developers – to understand
the tradeoffs. What is it that apps expect to see?

Thanks – Fred
fred.l.templin@boeing.com<mailto:fred.l.templin@boeing.com>

From: Fred Baker (fred) [mailto:fred@cisco.com]
Sent: Thursday, December 10, 2015 11:22 PM
To: Templin, Fred L
Cc: v6ops@ietf.org<mailto:v6ops@ietf.org>; Lorenzo Colitti
Subject: Re: [v6ops] I-D Action: draft-ietf-v6ops-host-addr-availability-03.txt

Fred, to be honest, this is getting pretty marginal with respect to the scope of the draft. Lorenzo has stated that he considers it out of scope, and at first blush I would agree – the scope is about the number of addresses that get assigned when at least one gets assigned (whether to an interface or a system), not an update to RFC 4862 on the use of DAD.

If you think the scope needs to include DAD and the strong and weak host models, I think you need to support the argument.

From: v6ops <v6ops-bounces@ietf.org<mailto:v6ops-bounces@ietf.org>> on behalf of Lorenzo Colitti <lorenzo@google.com<mailto:lorenzo@google.com>>
Date: Thursday, December 10, 2015 at 8:46 AM
To: "Templin, Fred L" <Fred.L.Templin@boeing.com<mailto:Fred.L.Templin@boeing.com>>
Cc: "v6ops@ietf.org<mailto:v6ops@ietf.org>" <v6ops@ietf.org<mailto:v6ops@ietf.org>>, "internet-drafts@ietf.org<mailto:internet-drafts@ietf.org>" <internet-drafts@ietf.org<mailto:internet-drafts@ietf.org>>, "i-d-announce@ietf.org<mailto:i-d-announce@ietf.org>" <i-d-announce@ietf.org<mailto:i-d-announce@ietf.org>>
Subject: Re: [v6ops] I-D Action: draft-ietf-v6ops-host-addr-availability-03.txt

On Fri, Dec 11, 2015 at 1:36 AM, Templin, Fred L <Fred.L.Templin@boeing.com<mailto:Fred.L.Templin@boeing.com>> wrote:
But, addresses
could also be assigned to the interface over which the prefix is received as long as the prefix itself is not added to the prefix list for that interface

No, that's a violation of section 1 of RFC 4862, which says:

   To ensure that all configured addresses are likely to be unique on a
   given link, nodes run a "duplicate address detection" algorithm on
   addresses before assigning them to an interface.  The Duplicate
   Address Detection algorithm is performed on all addresses,
   independently of whether they are obtained via stateless
   autoconfiguration or DHCPv6.

The text in the address availability draft is careful not to violate the text above; it does so by saying that DAD can be avoided if the address is not assigned to the physical interface.

I wrote this draft as a backup in case the subject would not be fully covered
in your document, but it appears that you are now willing to provide coverage.

I think it's fine to mention in passing (as we now do), but I think a more detailed description is out of scope. This document is about recommendations on assigning multiple addresses to to hosts, not how the hosts configure the addresses that they get.