Subject: Re: [bess] Benjamin Kaduk's No Objection on draft-ietf-bess-evpn-na-flags-06: (with COMMENT)

From: "Rabadan, Jorge (Nokia - US/Mountain View)" <[email-masked]>
Date: Fri, 9 Oct 2020 10:56:35 +0000

Hi Bejamin,

Thanks for reviewing!

Please see my comments in-line with [jorge].

Thanks.
Jorge

From: Benjamin Kaduk via Datatracker <[email-masked]>
Date: Wednesday, September 23, 2020 at 6:08 AM
To: The IESG <[email-masked]>
Cc: [email-masked] <[email-masked]>, [email-masked] <[email-masked]>, [email-masked] <[email-masked]>, Bocci, Matthew (Nokia - GB) <[email-masked]>, Bocci, Matthew (Nokia - GB) <[email-masked]>
Subject: Benjamin Kaduk's No Objection on draft-ietf-bess-evpn-na-flags-06: (with COMMENT)
Benjamin Kaduk has entered the following ballot position for
draft-ietf-bess-evpn-na-flags-06: No Objection

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-na-flags/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Should we say anything about how the ARP/ND Extended Community is
ignored in the absence of a sibling MAC/IP Advertisement Extended
Community?
[jorge] sure, I added:
“Only one EVPN ARP/ND Extended Community is expected to be received along with an EVPN MAC/IP Advertisement route. If more than one ARP/ND Extended Community is received, the PE MUST consider only the first one on the list for processing purposes and MUST NOT propagate the rest of the ARP/ND Extended Communities.”

Should we remind the reader how the recipient knows that a given ARP/ND
Extended Community is associated to the coresponding MAC/IP
Advertisement Extended Community?
[jorge] the above text should clarify how to make that association if there are multiple ARP/ND ext communities in the same update as the route. If there is only one, there should not be any ambiguity. Let me know if I’m missing something please.

There seems to be some latent risk in defining an "immutable" flag with
no defined way of clearing or unsetting it (e.g., having it time out).
We should either document what the operator should do when a formerly
immutable mapping needs to change or document the risk in the security
considerations section.  (This is, I think, related to Rob's Discuss.)
[jorge] good point, same as Rob’s discuss. I replied to his discuss and added this sentence:
“Note that if a configured IP1->MAC1 changes to point to a new MAC address, i.e., IP1->MAC2, the EVPN MAC/IP Advertisement route for IP1->MAC1 will be withdrawn before the EVPN MAC/IP Advertisement route for IP1->MAC2 is advertised.”
Is that ok?

Section 1

   procedure.  However, the information conveyed in the EVPN MAC/IP
   Advertisement route may not be enough for the remote PE to reply to
   local ARP or ND requests.  For example, if a PE learns an IPv6->MAC

This makes it sound like we're rectifying a deficiency of the core spec,
and therefore might want to have an Updates: (or rather, "see also")
relationship to it.
[jorge] the current plan as discussed with our AD (Martin) is to make this draft normative for draft-ietf-bess-evpn-proxy-arp-nd, and mark the latter as “updates RFC7432”.

   Advertisement routes.  Similarly, other information relevant to the
   host advertised in the MAC/IP Advertisement route may be needed.

(editorial) either we know what this "other information" is and could
list it explicitly (or by section reference), or we don't, and the
solution is incomplete.
[jorge] good point, thanks. The idea behind is that the other non-assigned flags can be used in the future to indicate information relevant to the host identified by the IP->MAC pair. Since that is not really needed, I removed that sentence.

Section 1.1

   Proxy-ARP/ND: function on the EVPN PEs by which received Address
   Resolution Protocol (ARP) Requests or Neighbor Solicitation (NS)
   messages are replied locally by the PE, without the need to flood the

nit: "replied to"
[jorge] fixed, thanks.

Section 2

Should we explicitly say that this is a transitive extended community?
[jorge] ok, added:
“This document defines a transitive EVPN Extended Community …”

   O - Override Flag (corresponds to Bit 22 of the Extended Community)
   Bit 6 of the Flags field is defined as the "Override Flag".  An
   egress PE will normally advertise IPv6->MAC pairs with the O Flag
   set, and only when IPv6 "anycast" is enabled in the BD or interface,
   the PE will send an IPv6->MAC pair with the O Flag = 0.  The ingress
   PE will install the ND entry with the received O Flag and will use
   this information when replying to a Neighbor Solicitation for the
   IPv6 address.  [...]

I'm not 100% sure I understand what this is saying.
My current understanding is that: at present (in the absence of this
extended community), a PE has to use heuristics to set the O flag in NA
messages, with the heuristic being "normally set the O flag, but when
the BD/interface has anycast enabled, clear the O flag".  The new
behavior when the information in this extended community is available,
is then to "always send the value received from the extended community".
[jorge] yes, I added this to clarify:
“..and will always use this O Flag value when replying to a Neighbor Solicitation for the IPv6 address…”

However, if my understanding (above) is correct, that doesn't seem quite
right, since it's generally not safe to set the O flag in such an
"anycast" scenario.  Am I missing something?
[jorge] sorry, not sure if I understand... suppose you have two hosts connected to the same broadcast domain, h1 and h2. If h2 sends a NS message, h1 can reply with O=1 or O=0. If that BD is now EVPN enabled, the NS and NA messages are translated into MAC/IP routes with the flags in the ext community. To me both cases are equally safe or unsafe? Let me know if I’m missing something please.

   Community) is a configured ARP/ND entry.  The IP address in the EVPN
   MAC/IP Advertisement route can only be bound together with the MAC
   address specified in the same route.

nit: I'm not sure I understand what "can only be bound together with"
means here.  (What would the other option be?)
[jorge] I added this to clarify:
“In this case, the IP address in the EVPN MAC/IP Advertisement route can only be bound together with the MAC address specified in the same route, and not with any other MAC addresses received in a different route without the I Flag set.”

Section 3.1

Just to check my understanding: the dynamic learning here only applies
to NA messages received from the CE directly, not those received from
other EVPN routers?  (Do we need to say that explicitly?)
[jorge] correct, however not sure we need to say it explicitly. Other specs such as draft-ietf-bess-evpn-proxy-arp-nd specify all that.

   o  This Extended Community does not change the procedures described
      in [RFC7432].  Specifically the procedures for advertising the MAC
      Mobility Extended Community along with the MAC/IP Advertisement
      route are not changed.

(side note) I'm not entirely sure how one might expect the MAC Mobility
processing to have changed as a result of the addition of the ARP/ND
Extended Community, but there doesn't seem to be any real harm in
mentioning it like this.
[jorge] it’s just an extra clarification just in case the reader is wondering. I think it’s worth mentioning.

Section 3.2

      *  If the EVPN MAC/IP Advertisement route contains an IPv6 address
         and the EVPN ARP/ND Extended Community, the PE MUST add the R
         and O Flags to the ND entry in the ND or proxy-ND table and use
         that information in Neighbor Advertisements when replying to a
         Solicitation for the IPv6 address.

editorial: "add the R and O Flags" could sound like they are always set
to 1; perhaps "propagate the value of the R and O flags from the ARP/ND
Extended Community to the ND entry"?
[jorge] good point, I changed it to:
“If the EVPN MAC/IP Advertisement route contains an IPv6 address and the EVPN ARP/ND Extended Community, the PE MUST add the R and O Flag values to the ND entry in the ND or proxy-ND table, and propagate the value of the R and O flags from the ARP/ND Extended Community to the Neighbor Advertisements when replying to a Solicitation for the IPv6 address.”

         move as well.  Even so, if an update for the same IP1->MAC1
         immutable and static, is received from a different PE, one of
         the two routes will be selected, as in the [RFC7432] case where
         two MAC/IP routes with Static bit are received for the same MAC
         from different PEs.

I couldn't find much discussion of this scenario in RFC 7432 by
searching for "static" or "sticky"; could you help point me in the right
direction?
[jorge] the static flag is defined in RFC7432, section 15.2. It does not explain explicitly how the selection works for two MAC/IP routes with the same MAC (different RD) from two different PEs, it’s up to the implementation. The point here is that implementations should do the same for the I flag.

   destination to PE2.  If for some reason, PE3 originates an EVPN MAC/
   IP Advertisement route for IP1->MAC2 (even with a higher sequence
   number), then the EVPN PEs in the BD SHOULD NOT update their
   IP1->MAC1 ARP/ND bindings, since IP1 is bound to MAC1 (MAC2 SHOULD
   still be programmed in the layer-2 BDs).  This is considered a
   misconfiguration in PE3.

I don't really understand the motivation for SHOULD NOT, here.  It seems
like a PE would need to violate some other part of the spec in order to
do so, so just "will not" would be workable.
(I'm also left to assume that the route from PE3 sets I=0, which might
be worth making explicit.)
[jorge] good one, changed it to:
“If for some reason, PE3 originates an EVPN MAC/IP Advertisement route for IP1->MAC2 with I=0 (even with a higher sequence number), then the EVPN PEs in the BD will not update their IP1->MAC1 ARP/ND bindings, since IP1 is bound to MAC1 (MAC2 SHOULD still be programmed in the layer-2 BDs). This is considered a misconfiguration in PE3.”

   The use of the Flag I=1 assumes that a given IP is always bound to
   the same MAC address, and therefore the mobility procedures described
   in [I-D.ietf-bess-evpn-irb-extended-mobility] for "Host IP move to a
   new MAC" will not apply.

Do we want to say anything about how things should behave if the
assumption is violated?
[jorge] probably not, the use of the I flag in the spec means an IP cannot move to a new MAC. Maybe we will need to make it also explicit in I-D.ietf-bess-evpn-irb-extended-mobility.

Section 4

It seems like this mechanism (or rather, RFC 7432's MAC/IP
Advertisement) doesn't really affect the spoofability of ND; the same
information (actually the same, now that this mechanism exists to send
the R/O flags) is being conveyed just over a different protocol, and
DAD/mobility should still work the same way.  There's an extra
translation step at the PEs the introduces an opportunity for
translation errors but that's not very noteworthy.

The I flag is somewhat different, as I mentioned at the top of my
comments.

   Similarly, the receiver of a NA message with the wrong R flag, may
   update its Default Router List incorrectly adding or removing an
   entry.

I suggest adding at the end of the sentence ", which could for example
lead to sending traffic to a node that is not a router, causing the
traffic to be dropped".
[jorge] added, thank you

Section 5

Given the email discussion regarding the use of flag position 5, should
a note be left in the registry about that informal usage?
[jorge] yes, but this document should not say anything, right? Let me know.

---

From: Benjamin Kaduk <[email-masked]>
Date: Sun, 11 Oct 2020 17:16:45 -0700

Hi Jorge,

Thanks for all the explanations and updates; there are just three points
remaining that I have any comment on (inline).

> https://datatracker.ietf.org/doc/draft-ietf-bess-evpn-na-flags/

It is probably me who is missing something.
I was not sure what was different between the case of "anycast with no
EVPN" and "anycast with EVPN".  I guess, in the former case the PE is
responsible for figuring out what value to put in the O flag, and thus is
responsible if anything goes wrong, but in the latter case the PE is just
deferring to the other node, so if a "bad" value is put in the O flag this
is due to an error at a different layer -- the PE (and, thus, the new
behavior in this document) does not need to take particular care for
whether anycast is enabled.

> [jorge] the static flag is defined in RFC7432, section 15.2. It does not explain explicitly how the selection works for two MAC/IP routes with the same MAC (different RD) from two different PEs, it…

Okay, I think maybe I understand what is happening here (and, to be honest,
the 7432 reference makes more sense to me now, on the second reading).  For
both sticky MAC addresses and for ARP/ND routes with the I flag, if an
implementation gets two different ones, it has to pick one to use.  In 7432
that is left implicit, but here we say it explicitly (which is good).  When
in such a position of needing to pick one, the PE has to alert the operator
that something weird is going on -- this is what the 7432 reference is
saying.  But in some sense these are two independent actions, they just
occur in the same situation.  So perhaps it is more clear to say "... one
of the two routes will be selected.  This case is analogous to the
[RFC7432] case when two MAC/IP routes with the Static bit set are received,
and the PE likewise MUST alert the operator of such a situation."?

> [jorge] yes, but this document should not say anything, right? Let me know.

This document is creating the registry, so it is a natural time to place a
comment in the registry.  It is not the only way that such a note could be
added, but since the registration procedure is Standards Action it may be
prudent to make such a directive to IANA while we have a proposed standard
document (this one) already in the works.

Thanks again,

Ben

---

From: "Rabadan, Jorge (Nokia - US/Mountain View)" <[email-masked]>
Date: Mon, 12 Oct 2020 09:10:30 +0000

Hi Benjamin,

A new revision has been published with yours and Warren’s suggestions (rev 08).
Please see in-line with [jorge2].

Thank you!
Jorge

From: Benjamin Kaduk <[email-masked]>
Date: Monday, October 12, 2020 at 2:17 AM
To: Rabadan, Jorge (Nokia - US/Mountain View) <[email-masked]>
Cc: The IESG <[email-masked]>, [email-masked] <[email-masked]>, [email-masked] <[email-masked]>, [email-masked] <[email-masked]>, Bocci, Matthew (Nokia - GB) <[email-masked]>
Subject: Re: Benjamin Kaduk's No Objection on draft-ietf-bess-evpn-na-flags-06: (with COMMENT)
Hi Jorge,

[jorge2] Yes, that’s what I think.

[jorge2] yes, good point thanks. I took your suggestion.

[jorge2] OK, sounds good to me. I added the following note in the IANA section, let me know if this is good enough:

   Note that the Flag position 5 is left unassigned and not used in this

   specification since it was previously requested by

   [I-D.rbickhart-evpn-ip-mac-proxy-adv].

Thanks again,

Ben