[Int-dir] Intdir telechat review of draft-ietf-bess-evpn-proxy-arp-nd-11

Jean-Michel Combes via Datatracker <noreply@ietf.org> Wed, 20 January 2021 20:51 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: int-dir@ietf.org
Delivered-To: int-dir@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 8EB6E3A149D; Wed, 20 Jan 2021 12:51:54 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: Jean-Michel Combes via Datatracker <noreply@ietf.org>
To: <int-dir@ietf.org>
Cc: bess@ietf.org, draft-ietf-bess-evpn-proxy-arp-nd.all@ietf.org, last-call@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 7.24.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <161117591453.11763.14808972528115094239@ietfa.amsl.com>
Reply-To: Jean-Michel Combes <jeanmichel.combes@gmail.com>
Date: Wed, 20 Jan 2021 12:51:54 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/int-dir/zNaHAnzizEmH3W6Yy2rK_qSLlFs>
Subject: [Int-dir] Intdir telechat review of draft-ietf-bess-evpn-proxy-arp-nd-11
X-BeenThere: int-dir@ietf.org
X-Mailman-Version: 2.1.29
List-Id: "This list is for discussion between the members of the Internet Area directorate." <int-dir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/int-dir>, <mailto:int-dir-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/int-dir/>
List-Post: <mailto:int-dir@ietf.org>
List-Help: <mailto:int-dir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/int-dir>, <mailto:int-dir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2021 20:51:55 -0000

Reviewer: Jean-Michel Combes
Review result: Almost Ready

Hi,

Please find my review, as member of the INT Area Directorate, of the following
document:

*** GENERAL COMMENT(S)/QUESTION(S) ***
o Forwarding a packet
I am not aware of EVPN mechanisms: for this review, I am assuming that EVPN
allows a PE to forward a packet when the CE owning the MAC destination address
and the CE owning the MAC source address are not on the same L2 link. If my
assumption is wrong, that should change deeply my review.

o State of the art
There are no reference to RFC 4349 and RFC 6957, at least.
Previous works have been done on “Proxy-ND” and potential issues already
analyzed/solved. Please my comments/questions inside: - Section 3.6 - Section 6

*** DEEP REVIEW ***

BESS Workgroup                                           J. Rabadan, Ed.
Internet-Draft                                              S. Sathappan
Updates: 7432 (if approved)                                   K. Nagaraj
Intended status: Standards Track                              G. Hankins
Expires: July 11, 2021                                             Nokia
                                                                 T. King
                                                                  DE-CIX
                                                         January 7, 2021

          Operational Aspects of Proxy-ARP/ND in EVPN Networks
                  draft-ietf-bess-evpn-proxy-arp-nd-11

<snip>

1.  Terminology

<snip>

   BCP14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   BUM: Broadcast, Unknown unicast and Multicast layer-2 traffic.

   BD: Broadcast Domain.

   ARP: Address Resolution Protocol.

   GARP: Gratuitous ARP message.

   ND: Neighbor Discovery Protocol.

   NS: Neighbor Solicitation message.

   NA: Neighbor Advertisement.

   IXP: Internet eXchange Point.

   IXP-LAN: the IXP's large Broadcast Domain to where Internet routers
   are connected.

   DC: Data Center.

   IP->MAC: an IP address associated to a MAC address.  IP->MAC entries
   are programmed in Proxy-ARP/ND tables and may be of three different
   types: dynamic, static or EVPN-learned.

   SN-multicast address: Solicited-Node IPv6 multicast address used by
   NS messages.

   NUD: Neighbor Unreachability Detection, as per [RFC4861].

   DAD: Duplicate Address Detection, as per [RFC4861].

   SLLA: Source Link Layer Address, as per [RFC4861].

   TLLA: Target Link Layer Address, as per [RFC4861].

   R Flag: Router Flag in NA messages, as per [RFC4861].

   O Flag: Override Flag in NA messages, as per [RFC4861].

   S Flag: Solicited Flag in NA messages, as per [RFC4861].

   RT2: EVPN Route type 2 or EVPN MAC/IP Advertisement route, as per
   [RFC7432].

   MAC or IP DA: MAC or IP Destination Address.

   MAC or IP SA: MAC or IP Source Address.

   AS-MAC: Anti-spoofing MAC.

   LAG: Link Aggregation Group.

   BD: Broadcast Domain.

<JMC>
BD is already defined at the beginning of the list.
</JMC>

<snip>

3.  Solution Description

<snip>

   As PE3 learns more and more host entries in the Proxy-ARP/ND table,
   the flooding of ARP Request messages is reduced and in some cases it
   can even be suppressed.  In a network where most of the participant
   CEs are not moving between PEs and they advertise their presence with
   GARPs or unsolicited NA messages, the ARP/ND flooding as well as the
   unknown unicast flooding can practically be suppressed.  In an EVPN-
   based IXP network, where all the entries are Static, the ARP/ND
   flooding is in fact totally suppressed.

<JMC>
IMHO, it is not possible to suppress ALL ND flooding: Duplicate Address
Detection (DAD) is remaining, even when the entries are all Static: cf. RFC
4862, Section 5.4. </JMC>

   The Proxy-ARP/ND function can be structured in six sub-functions or
   procedures:

   1.  Learning sub-function

   2.  Reply sub-function

   3.  Unicast-forward sub-function

   4.  Maintenance sub-function

   5.  Flooding reduction/suppression sub-function

   6.  Duplicate IP detection sub-function

   A Proxy-ARP/ND implementation MAY support all those sub-functions or
   only a subset of them.  The following sections describe each
   individual sub-function.

<JMC>
No sub-function is mandatory to have “Proxy-ARP/ND” working correctly?
If not, please, add text saying which ones MUST be implemented.
</JMC>

<snip>

3.2.  Reply Sub-Function

   This sub-function will reply to Address Resolution requests/
   solicitations upon successful lookup in the Proxy-ARP/ND table for a
   given IP address.  The following considerations should be taken into
   account:

   a.  When replying to ARP Request or NS messages, the PE SHOULD use
       the Proxy-ARP/ND entry MAC address as MAC SA.  This is
       RECOMMENDED so that the resolved MAC can be learned in the MAC
       FIB of potential layer-2 switches sitting between the PE and the
       CE requesting the Address Resolution.

<JMC>
What is the IP source address in the NA message?
What is the Target link-layer address in the NA message?
</JMC>

  <snip>

3.3.  Unicast-forward Sub-Function

   As discussed in Section 3.2, in some cases the operator may want to
   'unicast-forward' certain ARP-Request and NS messages as opposed to
   reply to them.  The operator SHOULD be able to activate this option
   with one of the following parameters:

   a.  unicast-forward always

   b.  unicast-forward unknown-options

   If 'unicast-forward always' is enabled, the PE will perform a Proxy-
   ARP/ND table lookup and in case of a hit, the PE will forward the
   packet to the owner of the MAC found in the Proxy-ARP/ND table.  This
   is irrespective of the options carried in the ARP/ND packet.  This
   option provides total transparency in the BD and yet reduces the
   amount of flooding significantly.

   If 'unicast-forward unknown-options' is enabled, upon a successful
   Proxy-ARP/ND lookup, the PE will perform a 'unicast-forward' action
   only if the ARP-Request or NS messages carry unknown options, as
   explained in Section 3.2.  The 'unicast-forward unknown-options'
   configuration allows the support of new applications using ARP/ND in
   the BD while still reducing the flooding.

<JMC>
What happens, for these two options, when there is no hit inside “Proxy-ARP/ND
Table”? </JMC>

<snip>

3.5.  Flooding (to Remote PEs) Reduction/Suppression

   The Proxy-ARP/ND function implicitly helps reducing the flooding of
   ARP Request and NS messages to remote PEs in an EVPN network.
   However, in certain use-cases, the flooding of ARP/NS/NA messages
   (and even the unknown unicast flooding) to remote PEs can be
   suppressed completely in an EVPN network.

   For instance, in an IXP network, since all the participant CEs are
   well known and will not move to a different PE, the IP->MAC entries
   may be all provisioned by a management system.  Assuming the entries
   for the CEs are all provisioned on the local PE, a given Proxy-ARP/ND
   table will only contain static and EVPN-learned entries.  In this
   case, the operator may choose to suppress the flooding of ARP/NS/NA
   to remote PEs completely.

<JMC>
Cf. my comment about DAD in section 3.
</JMC>

<snip>

3.6.  Duplicate IP Detection

   The Proxy-ARP/ND function SHOULD support duplicate IP detection so
   that ARP/ND-spoofing attacks or duplicate IPs due to human errors can
   be detected.

<JMC>
Duplicate Address Detection is mandatory: s/SHOULD/MUST
IMHO, it would be useful to add text explaining why RFC 6957 doesn’t solve your
issues and so you need to specify a solution “from scratch”. </JMC>

<snip>

5.1.  All Dynamic Learning

   In this scenario for minimum security and mitigation, EVPN is
   deployed in the peering network with the Proxy-ARP/ND function
   shutdown.  PEs do not intercept ARP/ND requests and flood all
   requests, as in a conventional layer-2 network.

<JMC>
ND messages are IP based:
s/layer-2/layer-3
</JMC>

<snip>

6.  Security Considerations

<snip>

   The solution also provides protection against Denial Of Service
   attacks that use ARP/ND-spoofing as a first step.  The Duplicate IP
   Detection and the use of an AS-MAC as explained in Section 3.6
   protects the BD against ARP/ND spoofing.

<JMC>
You are assuming that the attacker and the victim are not on the same L2-Link.
Is it always the case in your scenarios (i.e., only P2P links between PE and
CE)? If not, IMHO, it would better to: - s/protects/mitigates - Add text
explaining when there is a protection and when there is no protection. </JMC>

<JMC>
I would some text about the fact that your proposal cannot/will not work if
there is a (current or future) security mechanism securing ARP/ND exchanges
(e.g., SEND) because the PE is not able to secure "proxied" ND messages (i.e.,
with SEND, the PE is not aware of the security credentials linked to an IP
address). </JMC>

<snip>

Thanks in advance for your replies.

Best regards,

JMC.