Re: [bess] Erik Kline's Discuss on draft-ietf-bess-evpn-proxy-arp-nd-11: (with DISCUSS and COMMENT)

Erik Kline <ek.ietf@gmail.com> Tue, 30 March 2021 23:56 UTC

Return-Path: <ek.ietf@gmail.com>
X-Original-To: bess@ietfa.amsl.com
Delivered-To: bess@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E3A793A0898; Tue, 30 Mar 2021 16:56:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 0ZryCn2K7TTs; Tue, 30 Mar 2021 16:56:23 -0700 (PDT)
Received: from mail-ot1-x32f.google.com (mail-ot1-x32f.google.com [IPv6:2607:f8b0:4864:20::32f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 11E2D3A08A6; Tue, 30 Mar 2021 16:56:22 -0700 (PDT)
Received: by mail-ot1-x32f.google.com with SMTP id 31-20020a9d00220000b02901b64b9b50b1so17264848ota.9; Tue, 30 Mar 2021 16:56:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=le99AFspcjLHYVh8G0etTctabpKFDyzj4zRgCg2TGF8=; b=G7u+8r1DESuNtHakFoMcS8d/IfOmc6CxJQrB2FhXoKZAZYenefqG9amcQO1B7ckXkE k5c7IrvODh/hDzB/ucZjq81fbSMU+KRIren4XYyPB9qqD0GeikAffJD27MB7l0vfi4uU BUkBU4ihzIwEp6I8eBSXi4OWXX9u+WVzFeSLvzuZQw8dmemgVsYU2YBUwOA0TJZ7hKue /jKED/vRm9xD91MWG+CGoDx3Fo0IQmu7cJOnVyYjN8ssNQKyp6wJsOGbjTSVrEijSXuY b4PjehDFMmZN9FAaM+fqT7zWN4rl2KWmxTrrYKbDxAo1zMZv7mHLoOP7I4QAXBSzvDBe QkJA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=le99AFspcjLHYVh8G0etTctabpKFDyzj4zRgCg2TGF8=; b=FrwqtiZJq3yVvaA2qTL617Amz1XdgZkvPwDYbybQ6J7EIQssjfSFlHxMUcKKgrDXBX eb5F62VgWHHwyT/GExNZ2aeJ7be6jI8eMw1Ei6W8xnIzrUnHUy1RaZ9TLx8f/9iVmFjF Opsdx0HwhupsNgqeXk01jHe5OXyX6NMp2Diqru84d57jsm1Hq/17bwq+Lqmrqe0xJSXj JOrgaCc17ImZaC6fokhzHmfvNckcprLqKiNddp2RaO8Em1jckD57Ui1WG2ykyeHLF1sF aDycesPmxz5UWTm2mMC6LCiFYeCUehfTeuUiagfzwCpLYAb6FN5u4P2ZiTxd/ddF6Ukj xcKQ==
X-Gm-Message-State: AOAM532zjlPx+giW83ocTaQVRRI43efnXJhZM6WcIP/e+kz76hTxPZsK C0vNJxMDT0RDxOYDRKiGu4Khxy8GDOukafGi0EM=
X-Google-Smtp-Source: ABdhPJxAlmiEtfElbuoErF2D2kY235spSHac7nYmB4cD/ZyvD2xTfJ+xQiTuq+TkPlMi5phD2X32uoI3nA4dCwkK5JI=
X-Received: by 2002:a05:6830:12ca:: with SMTP id a10mr298363otq.191.1617148581281; Tue, 30 Mar 2021 16:56:21 -0700 (PDT)
MIME-Version: 1.0
References: <161121365458.7173.470020047466412216@ietfa.amsl.com> <MWHPR08MB3520F0C478223ACD5502358EF76A9@MWHPR08MB3520.namprd08.prod.outlook.com>
In-Reply-To: <MWHPR08MB3520F0C478223ACD5502358EF76A9@MWHPR08MB3520.namprd08.prod.outlook.com>
From: Erik Kline <ek.ietf@gmail.com>
Date: Tue, 30 Mar 2021 16:56:10 -0700
Message-ID: <CAMGpriXOvNa0TQw+iozR3LXNOevifLEK0QqcZNMSiwzOOHOhrA@mail.gmail.com>
To: "Rabadan, Jorge (Nokia - US/Mountain View)" <jorge.rabadan@nokia.com>
Cc: The IESG <iesg@ietf.org>, "draft-ietf-bess-evpn-proxy-arp-nd@ietf.org" <draft-ietf-bess-evpn-proxy-arp-nd@ietf.org>, "bess-chairs@ietf.org" <bess-chairs@ietf.org>, "bess@ietf.org" <bess@ietf.org>, "Bocci, Matthew (Nokia - GB)" <matthew.bocci@nokia.com>
Content-Type: multipart/alternative; boundary="000000000000bc854805bec9be2b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/bess/0Vsuc6xVaFGRzTfN--2L-qJlHbw>
Subject: Re: [bess] Erik Kline's Discuss on draft-ietf-bess-evpn-proxy-arp-nd-11: (with DISCUSS and COMMENT)
X-BeenThere: bess@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: BGP-Enabled ServiceS working group discussion list <bess.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/bess>, <mailto:bess-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/bess/>
List-Post: <mailto:bess@ietf.org>
List-Help: <mailto:bess-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/bess>, <mailto:bess-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Mar 2021 23:56:28 -0000

On Wed, Mar 17, 2021 at 12:31 PM Rabadan, Jorge (Nokia - US/Mountain View) <
jorge.rabadan@nokia.com> wrote:

> Hi Erik,
>
>
>
> Thank you for your thorough review. Will publish a new version addressing
> your great comments as well as the ones in other reviews too.
>
> Please see in-line with [jorge].
>
>
>
> Thx
>
> Jorge
>
>
>
> *From: *Erik Kline via Datatracker <noreply@ietf.org>
> *Date: *Thursday, January 21, 2021 at 8:21 AM
> *To: *The IESG <iesg@ietf.org>
> *Cc: *draft-ietf-bess-evpn-proxy-arp-nd@ietf.org <
> draft-ietf-bess-evpn-proxy-arp-nd@ietf.org>, bess-chairs@ietf.org <
> bess-chairs@ietf.org>, bess@ietf.org <bess@ietf.org>, Bocci, Matthew
> (Nokia - GB) <matthew.bocci@nokia.com>, Bocci, Matthew (Nokia - GB) <
> matthew.bocci@nokia.com>
> *Subject: *Erik Kline's Discuss on draft-ietf-bess-evpn-proxy-arp-nd-11:
> (with DISCUSS and COMMENT)
>
> Erik Kline has entered the following ballot position for
> draft-ietf-bess-evpn-proxy-arp-nd-11: Discuss
>
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
>
>
> Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
> for more information about IESG DISCUSS and COMMENT positions.
>
>
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-bess-evpn-proxy-arp-nd/
>
>
>
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
>
> [ meta ]
>
> * I appreciate the attempt to explicitly discuss handling NS/NA messages
> with
>   not-previously-seen options.  Thank you for that.
>
>   It seems to me, however, that the proposed approach to proceed with
>   setting the current capabilities in concrete but point to things like
>   "unicast-forward" as a relief valve, even though 3.2-f seems to say the
>   multicast packets (i.e. on cache miss) should be discarded (implying the
>   unicast mapping might never be learned in the first place?).
>
> *[jorge] I think you are saying that the spec should also allow an option
> to forward, even if the MAC DA of the IP owner is not known on the PE. That
> sounds reasonable, although I would think operators who implemented the
> draft in their EVPN networks would prefer more security and not allow
> flooding ARP-Requests/NS with unknown options. I modified 3.2-f as follows,
> let me know if that addresses your concern:*
>
> *   f.  A PE MUST only reply to ARP-Request and NS messages with the*
>
> *       format specified in [RFC0826] and [RFC4861] respectively.*
>
> *       Received ARP-Requests and NS messages with unknown options SHOULD*
>
> *       be either forwarded (as unicast packets) to the owner of the*
>
> *       requested IP (assuming the MAC is known in the Proxy-ARP/ND table*
>
> *       and BD) or discarded.  An option to flood ARP-Requests/NS*
>
> *       messages with unknown options MAY be used.  The operator should*
>
> *       assess if flooding those unknown options may be a security risk*
>
> *       for the EVPN BD.  An administrative option to control this*
>
> *       behavior ('unicast-forward', 'discard' or 'forward') SHOULD be*
>
> *       supported.  The 'unicast-forward' option is described in*
>
> *       Section 3.4.*
>

[ek] I am not clear on how "RFC4861 format" addresses the issue of
options.  I have the feeling rather that you mean a specific list of ND
options.

Note also that since RFC 7527 a node can modify its DAD messages (NSes) to
include a Nonce option to detect looped back DAD packets.  (This is an
example of how these messages have changed over time.)

(more in the 3.2-f section below)


[ general ]
>
> * When a PE reboots, should it do MLD (e.g. 2710, 3810, ...) of some kind
> to
>   gather critical state so that it doesn't have to wait for CEs to have
>   problems?
>
> *[jorge] hmm...in this document the PEs provide a layer-2 BD for the CEs
> that they connect (the PEs do not generally have IP interfaces in that BD).
> If no MLD-snooping is enabled in the BD, the ND multicast messages are
> flooded to all the CEs attached to the local PE or remote PEs. So upon
> reboot, when the PE is back online it will start building its proxy-ARP/ND
> database again, and in the meantime it will flood NS that do not hit an
> entry. Whether the operator decides to use MLD snooping or not on the same
> BD where proxy-ARP/ND is enabled, is out of scope of this document... we
> can add a sentence say that, do you think it is needed? Let me know if I am
> misunderstanding please.*
>

[ek] I think I had assumed the devices did something like configure an IPv6
link-local address in the BD.  But it's purely "transparent" then there's
no source address from which to originate MLD messages and so it doesn't
make any sense.  Thanks.


> [ section 3.1 ]
>
> * To my knowledge there is no concept in IPv6 of a link where anycast/O=0
>   NAs only propagate partway through a broadcast domain.  In practice, if I
>   understand the architecture correctly, O=0 NAs will propagate to all CEs
>   "behind" a given PE but, if anycast=false, no further.
>
>   This could lead to a difficult to debug scenario (though I admit this is
>   probably quite rare).
>
>   Note that 4861-7.2.4 implies that most nodes sending NAs for their own
>   addresses will adhere to "the Override flag SHOULD be set to one".  This
>   is not a MUST, though.  Dropping all O=0 NAs might affect some
>   implementations that don't comply with this SHOULD.  I have no idea how
>   many implementations this might affect (in practice, I suspect none?),
> but...
>   I think it might need to be considered.
>
> [jorge] the NA messages with O Flag = 0 should not be dropped, they are
> normally forwarded by the PE based on the MAC DA. The only consideration is
> that the IP->MAC bind will only be learned on the proxy-ND table if the
> ‘anycast’ capability is enabled in the PE’s BD. Otherwise the NA message
> will be normally forwarded, its IP->MAC not being learned. We added a
> sentence to clarify that:
>
> *          Note that if the O Flag is zero in the received NA message,*
>
> *          the IP->MAC SHOULD only be learned in case IPv6 'anycast' is*
>
> *          enabled in the BD.  Irrespective, an NA message with O Flag =*
>
> *          0 will be normally forwarded by the PE based on a MAC DA*
>
> *          lookup.*
>
>
[ek] So you're saying that O=0 messages get forwarded but not learned, is
that correct?  If so, I think that's fine.  (The text you include below
reads this way to me.)



> [ section 3.1.1/3.2 ]
>
> * I was not able to understand what the typical disposition of the O bit
>   is supposed to be in these proxied NAs.  Is the intent to default to O=0
> so
>   that local O=1 can be preferred (vis. 4861-7.2.4 and 4389)?  Or will it
>   more typically be set to O=1 (as if just replaying the NA that was
> learned
>   by another PE)?
>
> [jorge] normally the PE will learn an IP->MAC bind, e.g., IP1->MAC1, in
> its proxy-nd table from received NA messages with O=1 or EVPN routes with
> O=1. Hence when replying to received NS for IP1 the PE will issue an NA
> with O=1. However, the document also allows to configure the support for
> “anycast” in the proxy-nd function, in which case, the PE proxy-nd function
> will learn IP1->MAC1 with O=1 or 0, depending on how the flag is set on the
> received NA or EVPN route for IP1->MAC1. I modified the text to clarify
> this:
>
> *   Note that, typically, IP->MAC entries with O=0 will not be learned,*
>
> *   and therefore the Proxy-ND function will reply to NS messages with NA*
>
> *   messages that contain O=1.  However, this document allows the*
>
> *   configuration of the "anycast" capability in the BD where the Proxy-*
>
> *   ND function is enabled.  If "anycast" is enabled in the BD and an NA*
>
> *   message with O=0 is received, the associated IP->MAC entry will be*
>
> *   learned with O=0.  If this "anycast" capability is enabled in the BD,*
>
> *   Duplicate IP Detection must be disabled so that the PE is able to*
>
> *   learn the same IP mapped to different MACs in the same Proxy-ND*
>
> *   table.  If the "anycast" capability is disabled, NA messages with O*
>
> *   Flag = 0 will not create a Proxy-ND entry (although they will be*
>
> *   forwarded normally), hence no EVPN advertisement with ARP/ND Extended*
>
> *   Community will be generated.*
>
>
[ek] If O=0 messages are forwarded normally regardless of "learning", that
seems fine.  Thanks.


[ section 3.2 ]
>
> * Item (f) as currently written would break Enhanced DAD (RFC 7527),
>   would it not?
>
> *[jorge] when addressing Jean-Michel’s concerns, we changed the text to
> the following. Hopefully that clears your concern too? Let me know please:*
>
> *   f.  A PE MUST only reply to ARP-Request and NS messages with the*
>
> *       format specified in [RFC0826] and [RFC4861] respectively.*
>
> *       Received ARP-Requests and NS messages with unknown options SHOULD*
>
> *       be either forwarded (as unicast packets) to the owner of the*
>
> *       requested IP (assuming the MAC is known in the Proxy-ARP/ND table*
>
> *       and BD) or discarded.  An option to flood ARP-Requests/NS*
>
> *       messages with unknown options MAY be used.  The operator should*
>
> *       assess if flooding those unknown options may be a security risk*
>
> *       for the EVPN BD.  An administrative option to control this*
>
> *       behavior ('unicast-forward', 'discard' or 'forward') SHOULD be*
>
> *       supported.  The 'unicast-forward' option is described in*
>
> *       Section 3.4.*
>
>
[ek] I think having the option to discard ND packets with unknown options
is highly likely to create some difficulty.  I understand the intent may be
to save unwanted multicast traffic, and perhaps address some other
concerns.  But, as I understand it, the first CE to add a Nonce to their NS
messages during DAD would result in the packets being dropped and the
device determining that there was no duplicate address conflict,
potentially leading directly to duplicate addresses in the BD.


> [ section 3.6 ]
>
> * "Duplicate IP Detection for IPv6 SHOULD be disabled when IPv6
>    'anycast' is activated in a given EVI."
>
>   This doesn't seem like the right response to me.  It should be okay to
> keep
>   doing DAD for O=1 addresses regardless of the setting of this 'anycast'
>   option, I would have thought.
>
> [jorge] yes, the DAD procedures implemented by the CEs should continue,
> and this is out of the scope. The sentence refers to the procedure in this
> section which only affects the PEs. We changed the text to clarify, let me
> know if it makes sense please:
>
>    *The Proxy-ARP/ND function SHOULD support duplicate IP detection as*
>
> *   per this section so that ARP/ND-spoofing attacks or duplicate IPs due*
>
> *   to human errors can be detected.  For IPv6 addresses, CEs will*
>
> *   continue to carry out the DAD procedures as per [RFC4862].  The*
>
> *   solution described in this section is an additional security*
>
> *   mechanism carried out by the PEs that guarantees IPv6 address moves*
>
> *   between PEs are legit and not the result of an attack.  *
>
>
>
> *<snip>*
>
>
>
> *   For Proxy-ND, the Duplicate IP Detection described in this section*
>
> *   SHOULD only monitor IP moves for IP->MACs learned from NA messages*
>
> *   with O Flag=1.  NA messages with O Flag=0 would not override the ND*
>
> *   cache entries for an existing IP, and therefore the procedure in this*
>
> *   section would not detect duplicate IPs.  This Duplicate IP Detection*
>
> *   for IPv6 SHOULD be disabled when the IPv6 "anycast" capability is*
>
> *   activated in a given BD.*
>
>
[ek] I suppose this is fine.  I'll have to reread the text in context to be
completely sure, but thanks.


> [ section 5.5 ]
>
> * I think that recommending Reply Sub-Functions discard NS packets of
>   unexpected for means, in practice, no new NS option or flag can ever
> really
>   be made to work.  The PE(s) serving the CE(s) that make "new NS"
>   solicitations will all need to be upgraded, and it's not immediately
> clear
>   to me that remote PEs wouldn't also need to be upgraded (to support a
>   possible "new NA"in response).
>
>   If this is in fact likely to be the operational reality then I think this
>   limitation probably needs to be noted explicitly.
>
> *[jorge] is this concern addressed with the previous comment about item
> f)? please let me know.*
>

[ek] I still think it might lead to increasing the likelihood of duplicate
address formation.


> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> [[ comments ]]
>
> [ section 3.1.1 ]
>
> * "                                   ... If no ARP/ND Extended
>    Community is received, the PE will add a configured R Flag/O Flag
>    to the entry.  This configured R Flag SHOULD be an administrative
>    choice with a default value of 1."
>
>    This reads as though the R flag should be added essentially by default?
>    I realize that might seem reasonable on a broadcast domain populated by
>    almost entirely by routers but it might cause confusion w.r.t. any
>    hosts/servers added to the broadcast domain.  It seems like it might be
>    better if the flags were always learned reliably, propagated reliably,
>    and never presumed?
>
> *[jorge] yes, the intent is that flags for EVPN-learned entries are always
> learned from the extended community. However the ARP/ND extended community
> is recent and not supported by RFC7432 PEs, where the proxy-ARP/ND function
> was already there, so this default configuration provides a backwards
> compatibility option. I added a sentence to reflect that:*
>
> *      The configuration of this*
>
> *      administrative choice provides a backwards compatible option with*
>
> *      EVPN PEs that follow [RFC7432] but do not support this*
>
> *      specification.*
>
>
[ek] Ah, I see: the newer implementations would use the info as given in
the na-flags draft.  Makes sense.

   I guess a host being mistaken for a router that never actually sends an
>    RA doesn't cause any real problems in other nodes' ND tables.  I would
>    think, though, that if R were presumed to be 0 then it would force R bit
>    learning and propagation to be made to work reliably and be more easily
>    detected if it doesn't.
>
> *[jorge] I agree, and this document provides the tools for the R flag to
> be correctly learned and propagated in EVPN. As mentioned, we also wanted
> to cover the backward compatibility cases for RFC7432 EVPN PEs.*
>

[ek] Ack.