Re: [v6ops] DAD again [was: draft-ietf-v6ops-host-addr-availability discussion]

"Templin, Fred L" <Fred.L.Templin@boeing.com> Tue, 17 November 2015 17:52 UTC

Return-Path: <Fred.L.Templin@boeing.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 45CF41B2D2D for <v6ops@ietfa.amsl.com>; Tue, 17 Nov 2015 09:52:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.786
X-Spam-Level:
X-Spam-Status: No, score=-4.786 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001] 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 mH0xJPLVpiIL for <v6ops@ietfa.amsl.com>; Tue, 17 Nov 2015 09:52:52 -0800 (PST)
Received: from blv-mbsout-02.boeing.com (blv-mbsout-02.boeing.com [130.76.32.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 40E711B2D21 for <v6ops@ietf.org>; Tue, 17 Nov 2015 09:52:52 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by blv-mbsout-02.boeing.com (8.14.4/8.14.4/DOWNSTREAM_MBSOUT) with SMTP id tAHHqrnD003226; Tue, 17 Nov 2015 09:52:53 -0800
Received: from XCH-PHX-109.sw.nos.boeing.com (xch-phx-109.sw.nos.boeing.com [130.247.25.36]) by blv-mbsout-02.boeing.com (8.14.4/8.14.4/UPSTREAM_MBSOUT) with ESMTP id tAHHqiFH002675 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=OK); Tue, 17 Nov 2015 09:52:44 -0800
Received: from XCH-BLV-504.nw.nos.boeing.com ([169.254.4.189]) by XCH-PHX-109.sw.nos.boeing.com ([169.254.9.29]) with mapi id 14.03.0235.001; Tue, 17 Nov 2015 09:52:41 -0800
From: "Templin, Fred L" <Fred.L.Templin@boeing.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>, Lorenzo Colitti <lorenzo@google.com>
Thread-Topic: DAD again [was: draft-ietf-v6ops-host-addr-availability discussion]
Thread-Index: AQHRFogofPNeczqv2U2vJopouDkBSJ6gDHGAgACEtQA=
Date: Tue, 17 Nov 2015 17:52:40 +0000
Message-ID: <2134F8430051B64F815C691A62D9831832F4EC02@XCH-BLV-504.nw.nos.boeing.com>
References: <8D175A1F-B1AE-44B4-838E-1C853B6C937D@cisco.com> <2134F8430051B64F815C691A62D9831832F391A7@XCH-BLV-504.nw.nos.boeing.com> <CAKD1Yr15C-uoxUw0kgWO-d=LmUK8qWGLS7vt+22W+k8xXtDY+g@mail.gmail.com> <2134F8430051B64F815C691A62D9831832F393F1@XCH-BLV-504.nw.nos.boeing.com> <2134F8430051B64F815C691A62D9831832F3941D@XCH-BLV-504.nw.nos.boeing.com> <563811DF.9020603@gmail.com> <2134F8430051B64F815C691A62D9831832F394F7@XCH-BLV-504.nw.nos.boeing.com> <563821EB.3040508@gmail.com> <2134F8430051B64F815C691A62D9831832F39A09@XCH-BLV-504.nw.nos.boeing.com> <56392B6D.8030703@gmail.com> <2134F8430051B64F815C691A62D9831832F3A88F@XCH-BLV-504.nw.nos.boeing.com> <564A86D3.6050708@gmail.com>
In-Reply-To: <564A86D3.6050708@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [130.247.104.6]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-TM-AS-MML: disable
Archived-At: <http://mailarchive.ietf.org/arch/msg/v6ops/yT4Wl97df0ix13YqpSy2wxJKhxw>
Cc: "v6ops@ietf.org" <v6ops@ietf.org>
Subject: Re: [v6ops] DAD again [was: draft-ietf-v6ops-host-addr-availability discussion]
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: Tue, 17 Nov 2015 17:52:54 -0000

Hi Brian,

> -----Original Message-----
> From: Brian E Carpenter [mailto:brian.e.carpenter@gmail.com]
> Sent: Monday, November 16, 2015 5:46 PM
> To: Templin, Fred L; Lorenzo Colitti
> Cc: v6ops@ietf.org
> Subject: Re: DAD again [was: draft-ietf-v6ops-host-addr-availability discussion]
> 
> I guess I've been puzzling over this for ten days, but the PD
> discussion made me think about it again. Read to the end to
> reload the context and seem my comment:
> 
> On 04/11/2015 11:37, Templin, Fred L wrote:
> > Hi Brian,
> >
> >> -----Original Message-----
> >> From: Brian E Carpenter [mailto:brian.e.carpenter@gmail.com]
> >> Sent: Tuesday, November 03, 2015 1:47 PM
> >> To: Templin, Fred L; Lorenzo Colitti
> >> Cc: v6ops@ietf.org
> >> Subject: DAD again [was: draft-ietf-v6ops-host-addr-availability discussion]
> >>
> >> Hello Fred,
> >>
> >> On 03/11/2015 20:10, Templin, Fred L wrote:
> >>> Hi Brian,
> >>>
> >>>> -----Original Message-----
> >>>> From: Brian E Carpenter [mailto:brian.e.carpenter@gmail.com]
> >>>> Sent: Monday, November 02, 2015 6:55 PM
> >>>> To: Templin, Fred L; Lorenzo Colitti
> >>>> Cc: v6ops@ietf.org
> >>>> Subject: Re: [v6ops] draft-ietf-v6ops-host-addr-availability discussion
> >>>>
> >>>> Hi Fred,
> >>>> On 03/11/2015 14:59, Templin, Fred L wrote:
> >>>>> Hi Brian,
> >>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Brian E Carpenter [mailto:brian.e.carpenter@gmail.com]
> >>>>>> Sent: Monday, November 02, 2015 5:46 PM
> >>>>>> To: Templin, Fred L; Lorenzo Colitti
> >>>>>> Cc: v6ops@ietf.org
> >>>>>> Subject: Re: [v6ops] draft-ietf-v6ops-host-addr-availability discussion
> >>>>>>
> >>>>>> On 03/11/2015 14:31, Templin, Fred L wrote:
> >>>>>>> Bumping up one level – is it clear to everyone that it is OK to assign addresses
> >>>>>>> taken from a DHCPv6 delegated prefix to the interface over which the prefix
> >>>>>>> was received?
> >>>>>>
> >>>>>> If it was legitimately received, I can't see why it wouldn't be OK.
> >>>>>
> >>>>> OK. When the DHCPv6 server grants a prefix delegation to the client,
> >>>>> the server is asserting that that prefix is unique and is now the sole
> >>>>> property of the client. So, when you say legitimately received I
> >>>>> agree and that is actually a core requirement of DHCPv6 PD.
> >>>>> Otherwise, if the DHCPv6 server gave out duplicate prefixes, the
> >>>>> routing system would become hopelessly corrupted and address
> >>>>> duplication would be the least of our worries.
> >>>>>
> >>>>>>> And, that DAD is not required for those addresses?
> >>>>>>
> >>>>>> How is that safe? What is to stop a host running SLAAC once it
> >>>>>> sees that prefix in an RA, and hitting the same IID by chance?
> >>>>>> At least you need to specify that the A bit must not be set.
> >>>>>
> >>>>> I am talking about DAD on interface "A" being the interface over
> >>>>> which the client receives the prefix delegation. No other node on
> >>>>> interface "A" may use the delegated prefix, and no router on
> >>>>> interface "A" may advertise the prefix in an RA. The prefix is the
> >>>>> sole property of the client that received the PD, so the client is
> >>>>> free to assign addresses without needing DAD.
> >>>>
> >>>> That usage of "may" might confuse some people, so let's pretend
> >>>> you used a "MUST NOT" construct instead. I could still construct
> >>>> a host stack that would ignore the issue: its logic would be
> >>>> "I sent an RS and got no RA/PIO with A=1; but I see traffic from
> >>>> prefix 2bad:dead:beef::/64, so I'll do SLAAC and DAD in that prefix."
> >>>
> >>> The malicious (or otherwise broken) host 'A' could configure any number
> >>> of addresses it likes, but it would do so in a vacuum because ingress
> >>> filtering will prevent a packet with a source address from a prefix
> >>> belonging to host B from being accepted. So, node B has no reason
> >>> to fear address duplication by node A.
> >>
> >> I'm not sure how an ingress filter somewhere upstream would know that
> >> the packet came from the "wrong" host. But I don't think that's enough;
> >> a duplicate address on the LAN is already a problem in itself.
> >>
> >>> Also, what if node B in fact did do DAD and A heard it? What is to stop
> >>> A from configuring a duplicate address and trying to use it just to mess
> >>> up the legitimate operation of node B?
> >>
> >> Nothing. That, I think, is why the RFCs make DAD mandatory.
> >>
> >>>
> >>> What you are describing is a broken implementation that could only
> >>> be employed by a malicious host, and not something that honors
> >>> the standards.
> >>
> >> I don't think it's malicious; it's just trying to get IPv6 connectivity
> >> in the face of what it sees as a broken router that isn't responding
> >> to RS. But that isn't really my point - my point is that whatever we
> >> do, it's impossible to assert that a duplicate address will never arise.
> >>
> >>> Doing DAD is not going to guard against malicious
> >>> hosts.
> >>
> >> No, but it might allow you to detect the resulting anomaly.
> >
> >
> > Actually, the simpler answer to your question is that the node would
> > act as a host internally, but appear to be a router on the link from an
> > outside observer's perspective. And, routers do not do DAD for the
> > source addresses of packets that pass through them.
> 
> All routers are also IPv6 nodes, and by definition have an active
> IPv6 interface with an address on each of their links. All IPv6 nodes
> are supposed to perform DAD on their addresses. RFC 4862 is clear that
> this applies even if SLAAC is not used:
> 
>    The Duplicate
>    Address Detection algorithm is performed on all addresses,
>    independently of whether they are obtained via stateless
>    autoconfiguration or DHCPv6.

RFC4862 says:

   -  An interface whose DupAddrDetectTransmits variable is set to zero
      does not perform Duplicate Address Detection.

What that means is that the node does not have to do DAD if it has some
good reason for setting DupAddrDetectTransmits to 0. Such as if the
addresses it assigns to the interface are from a prefix delegation it
has received from a delegating router.

> and specifically requires routers to perform DAD:

>    In addition, routers are expected to successfully pass the
>    Duplicate Address Detection procedure described in this document on
>    all addresses prior to assigning them to an interface.
> 
> In fact it's particularly important that routers detect any address
> collision on any of their interfaces, because downstream hosts or other
> routers use each address as a next hop.
> 
> I can readily believe that implementations where static addresses are
> configured on a simple pt2pt link skip this, but doing so on a broadcast
> or NBMA link seems wrong to me.

Using AERO as an example of an NBMA link, AERO Clients autoconfigure
AERO addresses based on the prefix delegations they receive from AERO
Servers. AERO Servers MUST ensure that the prefixes they give out are
unique to the AERO Client recipient and not given out to other AERO
Clients. So, the AERO address (which is really just an IPv6 link-local
address with an IPv6 prefix embedded in the interface identifier) is
guaranteed to be unique and hence no DAD needed.

Thanks - Fred
fred.l.templin@beoing.com


>     Brian
> 
>      Brian