| rfc9047.original | rfc9047.txt | |||
|---|---|---|---|---|
| BESS Workgroup J. Rabadan, Ed. | Internet Engineering Task Force (IETF) J. Rabadan, Ed. | |||
| Internet-Draft S. Sathappan | Request for Comments: 9047 S. Sathappan | |||
| Intended status: Standards Track K. Nagaraj | Category: Standards Track K. Nagaraj | |||
| Expires: June 4, 2021 Nokia | ISSN: 2070-1721 Nokia | |||
| W. Lin | W. Lin | |||
| Juniper | Juniper | |||
| December 1, 2020 | June 2021 | |||
| Propagation of ARP/ND Flags in EVPN | Propagation of ARP/ND Flags in an Ethernet Virtual Private Network | |||
| draft-ietf-bess-evpn-na-flags-09 | (EVPN) | |||
| Abstract | Abstract | |||
| This document defines an Extended Community that is advertised along | This document defines an Extended Community that is advertised along | |||
| with an EVPN MAC/IP Advertisement route and carries information | with an Ethernet Virtual Private Network (EVPN) Media Access Control | |||
| relevant to the ARP/ND resolution, so that an EVPN PE implementing a | (MAC) / IP Advertisement route and carries information relevant to | |||
| proxy-ARP/ND or ARP/ND (on IRB interfaces) function can reply to ARP | the Address Resolution Protocol (ARP) / Neighbor Discovery (ND) | |||
| Requests or Neighbor Solicitations with the correct information. | resolution so that an EVPN Provider Edge (PE) implementing a proxy- | |||
| ARP/ND function in broadcast domains (BDs) or an ARP/ND function on | ||||
| Integrated Routing and Bridging (IRB) interfaces can reply to ARP | ||||
| Requests or Neighbor Solicitation (NS) messages with the correct | ||||
| information. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on June 4, 2021. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9047. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Terminology and Conventions . . . . . . . . . . . . . . . 3 | 1.1. Terminology and Conventions | |||
| 2. The EVPN ARP/ND Extended Community . . . . . . . . . . . . . 3 | 2. The EVPN ARP/ND Extended Community | |||
| 3. Use of the EVPN ARP/ND Extended Community . . . . . . . . . . 5 | 3. Use of the EVPN ARP/ND Extended Community | |||
| 3.1. Transmission of the EVPN ARP/ND Extended Community . . . 5 | 3.1. Transmission of the EVPN ARP/ND Extended Community | |||
| 3.2. Reception of the EVPN ARP/ND Extended Community . . . . . 6 | 3.2. Reception of the EVPN ARP/ND Extended Community | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | 4. Security Considerations | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 5. IANA Considerations | |||
| 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 | 6. References | |||
| 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 6.1. Normative References | |||
| 7.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 6.2. Informative References | |||
| 7.2. Informative References . . . . . . . . . . . . . . . . . 10 | Acknowledgments | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| An Ethernet Virtual Private Network (EVPN) MAC/IP Advertisement route | An EVPN MAC/IP Advertisement route can optionally carry IPv4 or IPv6 | |||
| can optionally carry IPv4 or IPv6 addresses associated with a MAC | addresses associated with a MAC address. Remote PE routers can use | |||
| address. Remote Provider Edge (PE) routers can use this information | this information to populate their ARP or ND tables on IRB interfaces | |||
| to populate their Address Resolution Protocol (ARP) or Neighbor | or their proxy-ARP/ND tables in BDs. PEs can then reply locally (act | |||
| Discovery (ND) tables on Integrated Routing and Bridging (IRB) | as an ARP/ND proxy, as per [RFC7432]) to IPv4 ARP Requests and IPv6 | |||
| interfaces or their proxy-ARP/ND tables in Broadcast Domains (BD). | Neighbor Solicitation messages and reduce or suppress the flooding | |||
| PEs can then reply locally (act as an ARP/ND proxy, as per [RFC7432]) | produced by the address resolution procedure. However, the | |||
| to IPv4 ARP requests and IPv6 Neighbor Solicitation messages and | information conveyed in the EVPN MAC/IP Advertisement route may not | |||
| reduce/suppress the flooding produced by the Address Resolution | be enough for the remote PE to reply to local ARP or ND requests. | |||
| procedure. However, the information conveyed in the EVPN MAC/IP | For example, if a PE learns an IPv6 address and MAC address | |||
| Advertisement route may not be enough for the remote PE to reply to | combination ND entry via EVPN (denoted by IPv6->MAC), the PE would | |||
| local ARP or ND requests. For example, if a PE learns an IPv6->MAC | not know if that particular IPv6->MAC pair belongs to a router or a | |||
| ND entry via EVPN, the PE would not know if that particular IPv6->MAC | host or if that address is an anycast address, as this information is | |||
| pair belongs to a router or a host, and if that address is an anycast | not carried in the EVPN MAC/IP Advertisement routes. | |||
| address, as this information is not carried in the EVPN MAC/IP | ||||
| Advertisement routes. | ||||
| This document defines an Extended Community that is advertised along | This document defines an Extended Community that is advertised along | |||
| with an EVPN MAC/IP Advertisement route and carries information | with an EVPN MAC/IP Advertisement route and carries information | |||
| relevant to the ARP/ND resolution, so that an EVPN PE implementing a | relevant to the ARP/ND resolution so that an EVPN PE implementing a | |||
| proxy-ARP/ND function can reply to ARP Requests or Neighbor | proxy-ARP/ND function can reply to ARP Requests or Neighbor | |||
| Solicitations with the correct information. In particular, the Flags | Solicitations with the correct information. In particular, the flags | |||
| defined in [RFC4861] can now be conveyed along with a MAC/IP | defined in [RFC4861] can now be conveyed along with a MAC/IP | |||
| Advertisement route, so that an egress EVPN PE can issue Neighbor | Advertisement route so that an egress EVPN PE can issue Neighbor | |||
| Advertisement messages with the correct Flag information. | Advertisement (NA) messages with the correct flag information. | |||
| The Flags are carried in the EVPN Address Resolution Protocol (ARP) | The flags are carried in the EVPN Address Resolution Protocol and | |||
| and Neighbor Discovery (ND) Extended Community, as described in the | Neighbor Discovery (ARP/ND) Extended Community, as described in the | |||
| following sections. | following sections. | |||
| 1.1. Terminology and Conventions | 1.1. Terminology and Conventions | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| EVPN: Ethernet Virtual Private Networks, as in [RFC7432]. | EVPN: Ethernet Virtual Private Networks, as in [RFC7432] | |||
| BD: Broadcast Domain, also described in [RFC7432]. | BD: Broadcast Domain, also described in [RFC7432] | |||
| ARP: Address Resolution Protocol. | ARP: Address Resolution Protocol | |||
| ND: Neighbor Discovery protocol, specified in [RFC4861]. | ND: Neighbor Discovery protocol, specified in [RFC4861] | |||
| PE: Provider Edge router. | PE: Provider Edge router | |||
| CE: Customer Edge router. | CE: Customer Edge router | |||
| IRB: Integrated Routing and Bridging interface. | IRB: Integrated Routing and Bridging interface | |||
| Proxy-ARP/ND: function on the EVPN PEs by which received Address | Proxy-ARP/ND: A function on the EVPN PEs by which received ARP | |||
| Resolution Protocol (ARP) Requests or Neighbor Solicitation (NS) | Requests or NS messages are replied to locally by the PE, | |||
| messages are replied to locally by the PE, without the need to flood | without the need to flood the requests to remote PEs in the | |||
| the requests to remote PEs in the BD. In order to reply to ARP | BD. In order to reply to ARP Requests or NS messages, the PE | |||
| Requests or NS messages, the PE does a lookup on an ARP/ND table, | does a lookup on an ARP/ND table, which is a collection of | |||
| that is a collection of IP->MAC entries learned by the PE. | IP->MAC entries learned by the PE. | |||
| IP->MAC: an IP address and MAC address combination that represents a | IP->MAC: An IP address and MAC address combination that represents a | |||
| given host and is added to an Address Resolution Protocol table or | given host and is added to an ARP table or ND table. This | |||
| Neighbor Discovery table. This document uses IP->MAC generically for | document uses IP->MAC generically for IPv4 and IPv6 | |||
| IPv4 and IPv6 addresses. When something is specific to IPv4, the | addresses. When something is specific to IPv4, the document | |||
| document will use IPv4->MAC and likewise, IPv6->MAC will be used when | will use IPv4->MAC; likewise, IPv6->MAC will be used when | |||
| something is specific to IPv6 entries only. | something is specific to IPv6 entries only. | |||
| Familiarity with the terminology in [RFC7432] and [RFC4861] is | Familiarity with the terminology in [RFC4861] and [RFC7432] is | |||
| expected. | expected. | |||
| 2. The EVPN ARP/ND Extended Community | 2. The EVPN ARP/ND Extended Community | |||
| This document defines a transitive EVPN Extended Community (Type | This document defines a transitive EVPN Extended Community (Type | |||
| field value of 0x06) with a Sub-Type of 0x08, as allocated by IANA. | field value of 0x06) with a Sub-Type of 0x08, as allocated by IANA. | |||
| It is advertised along with EVPN MAC/IP Advertisement routes that | It is advertised along with EVPN MAC/IP Advertisement routes that | |||
| carry an IPv4 or IPv6 address. | carry an IPv4 or IPv6 address. | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type=0x06 | Sub-Type=0x08 |Flags (1 octet)| Reserved=0 | | | Type=0x06 | Sub-Type=0x08 |Flags (1 octet)| Reserved=0 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved=0 | | | Reserved=0 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 4, line 22 ¶ | skipping to change at line 160 ¶ | |||
| | Reserved=0 | | | Reserved=0 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags field: | Flags field: | |||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| | |I| |O|R| | | |I| |O|R| | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| The following Flags are defined in the Flags field, third octet of | The following flags are defined in the Flags field, the third octet | |||
| the Extended Community: | of the Extended Community: | |||
| R - Router Flag (corresponds to Bit 23 of the Extended Community) | R: Router flag (corresponds to Bit 23 of the Extended Community) | |||
| Bit 7 of the Flags field is defined as the "Router Flag". When set, | Bit 7 of the Flags field is defined as the "Router flag". When | |||
| the R Flag indicates that the IPv6->MAC pair advertised in the MAC/IP | set, the R flag indicates that the IPv6->MAC pair advertised in | |||
| Advertisement route along with the Extended Community belongs to an | the MAC/IP Advertisement route, along with the Extended | |||
| IPv6 router. If the R Flag is zero, the IPv6->MAC pair belongs to a | Community, belongs to an IPv6 router. If the R flag is zero, | |||
| host. The receiving PE implementing the ND function will use this | the IPv6->MAC pair belongs to a host. The receiving PE | |||
| information in Neighbor Advertisement messages for the associated | implementing the ND function will use this information in | |||
| IPv6 address. This Flag has no meaning for ARP IPv4->MAC entries and | Neighbor Advertisement messages for the associated IPv6 address. | |||
| MUST be ignored when the Extended Community is received with an EVPN | This flag has no meaning for ARP IPv4->MAC entries and MUST be | |||
| MAC/IP Advertisement route for an IPv4->MAC pair. | ignored when the Extended Community is received with an EVPN | |||
| MAC/IP Advertisement route for an IPv4->MAC pair. | ||||
| O - Override Flag (corresponds to Bit 22 of the 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 | 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 | egress PE will normally advertise IPv6->MAC pairs with the O | |||
| set, and only when IPv6 "anycast" is enabled in the BD or interface, | flag set, and only when IPv6 "anycast" is enabled in the BD or | |||
| the PE will send an IPv6->MAC pair with the O Flag = 0. The ingress | interface will the PE send an IPv6->MAC pair with the O flag = | |||
| PE will install the ND entry with the received O Flag and will always | 0. The ingress PE will install the ND entry with the received O | |||
| use this O Flag value when replying to a Neighbor Solicitation for | flag and will always use this O flag value when replying to a | |||
| the IPv6 address. Similarly to the Router Flag, the Override Flag | Neighbor Solicitation for the IPv6 address. Similarly to the | |||
| has no meaning for ARP IPv4->MAC entries and MUST be ignored when the | Router Flag, the Override flag has no meaning for ARP IPv4->MAC | |||
| Extended Community is received with an EVPN MAC/IP Advertisement | entries and MUST be ignored when the Extended Community is | |||
| route for an IPv4->MAC pair. | received with an EVPN MAC/IP Advertisement route for an | |||
| IPv4->MAC pair. | ||||
| I - Immutable ARP/ND Binding Flag (corresponds to Bit 20 of the | I: Immutable ARP/ND Binding flag (corresponds to Bit 20 of the | |||
| Extended Community) | Extended Community) | |||
| Bit 4 of the Flags field is defined as the "Immutable ARP/ND Binding | ||||
| Flag". When set, the egress PE indicates that the IP->MAC pair sent | Bit 4 of the Flags field is defined as the "Immutable ARP/ND | |||
| in an EVPN MAC/IP Advertisement route (along with the Extended | Binding flag". When set, the egress PE indicates that the | |||
| Community) is a configured ARP/ND entry. In this case, the IP | IP->MAC pair that was sent in an EVPN MAC/IP Advertisement route | |||
| address in the EVPN MAC/IP Advertisement route can only be bound | (along with the Extended Community) is a configured ARP/ND | |||
| together with the MAC address specified in the same route, and not | entry. In this case, the IP address in the EVPN MAC/IP | |||
| with any other MAC addresses received in a different route without | Advertisement route can only be bound together with the MAC | |||
| the I Flag set. | address specified in the same route, and not with any other MAC | |||
| addresses received in a different route without the I flag set. | ||||
| Bits 0-3 and 5 are not assigned by this document. They MUST be set | Bits 0-3 and 5 are not assigned by this document. They MUST be set | |||
| to zero, and ignored on receipt. | to zero and ignored on receipt. | |||
| The reserved fields are set to 0 and ignored by the receiver. | The reserved fields are set to 0 and ignored by the receiver. | |||
| 3. Use of the EVPN ARP/ND Extended Community | 3. Use of the EVPN ARP/ND Extended Community | |||
| This section describes the relevant procedures when advertising and | This section describes the relevant procedures when advertising and | |||
| processing the EVPN ARP/ND Extended Community. In all the procedures | processing the EVPN ARP/ND Extended Community. In all the procedures | |||
| below a "PE" must be interpreted as a "PE which supports the ND/ARP | below, a "PE" must be interpreted as a "PE that supports the proxy- | |||
| proxy function (introduced by [RFC7432]) and implements the | ARP/ND (introduced by [RFC7432]) and implements the propagation of | |||
| propagation of the ARP/ND Flags that this document specifies". | the ARP/ND flags that this document specifies". | |||
| 3.1. Transmission of the EVPN ARP/ND Extended Community | 3.1. Transmission of the EVPN ARP/ND Extended Community | |||
| When an IP->MAC entry is not learned via EVPN, a PE may learn IP->MAC | When an IP->MAC entry is not learned via EVPN, a PE may learn IP->MAC | |||
| pairs in the management plane (this will create static entries in the | pairs in the management plane (this will create static entries in the | |||
| ARP/ND or proxy-ARP/ND table) or by snooping ARP or Neighbor | ARP/ND or proxy-ARP/ND table) or by snooping ARP or NA messages | |||
| Advertisement (NA) messages coming from the CE (this will create | coming from the CE (this will create dynamic entries). Those static | |||
| dynamic entries). Those static and dynamic IP->MAC entries will be | and dynamic IP->MAC entries will be advertised in EVPN MAC/IP | |||
| advertised in EVPN MAC/IP Advertisement routes that use the EVPN ARP/ | Advertisement routes that use the EVPN ARP/ND Extended Community as | |||
| ND Extended Community as follows: | follows: | |||
| o Advertised MAC/IP Advertisement routes for IPv6->MAC entries MUST | * Advertised MAC/IP Advertisement routes for IPv6->MAC entries MUST | |||
| include one (and only one) ARP/ND Extended Community with the R | include one (and only one) ARP/ND Extended Community with the R | |||
| and O Flag values associated with the entry. Those Flag values | and O flag values associated with the entry. Those flag values | |||
| are either dynamically learned (from NA messages) or configured in | are either dynamically learned (from NA messages) or configured in | |||
| case of static entries. | case of static entries. | |||
| o MAC/IP Advertisement routes for IPv4->MAC entries MAY include one | * MAC/IP Advertisement routes for IPv4->MAC entries MAY include one | |||
| ARP/ND Extended Community. If the EVPN ARP/ND Extended Community | ARP/ND Extended Community. If the EVPN ARP/ND Extended Community | |||
| is advertised along with an EVPN IPv4/MAC Advertisement route, the | is advertised along with an EVPN IPv4/MAC Advertisement route, the | |||
| R and O Flags SHOULD be set to zero. | R and O flags SHOULD be set to zero. | |||
| o If an IP->MAC pair is static (it has been configured) the | * If an IP->MAC pair is static (it has been configured), the | |||
| corresponding MAC/IP Advertisement route MUST be sent along with | corresponding MAC/IP Advertisement route MUST be sent along with | |||
| an ARP/ND Extended Community with the I Flag set. | an ARP/ND Extended Community with the I flag set. | |||
| o This Extended Community does not change the procedures described | * This Extended Community does not change the procedures described | |||
| in [RFC7432]. Specifically the procedures for advertising the MAC | in [RFC7432]. Specifically, the procedures for advertising the | |||
| Mobility Extended Community along with the MAC/IP Advertisement | MAC Mobility Extended Community along with the MAC/IP | |||
| route are not changed. | Advertisement route are not changed. | |||
| 3.2. Reception of the EVPN ARP/ND Extended Community | 3.2. Reception of the EVPN ARP/ND Extended Community | |||
| In addition to the procedures specified in [RFC7432] a PE receiving a | In addition to the procedures specified in [RFC7432], a PE receiving | |||
| MAC/IP Advertisement route will process the EVPN ARP/ND Extended | a MAC/IP Advertisement route will process the EVPN ARP/ND Extended | |||
| Community as follows: | Community as follows: | |||
| o Only one EVPN ARP/ND Extended Community is expected to be received | * Only one EVPN ARP/ND Extended Community is expected to be received | |||
| along with an EVPN MAC/IP Advertisement route. If more than one | along with an EVPN MAC/IP Advertisement route. If more than one | |||
| ARP/ND Extended Community is received, the PE MUST consider only | ARP/ND Extended Community is received, the PE MUST consider only | |||
| the first one on the list for processing purposes and MUST NOT | the first one on the list for processing purposes and MUST NOT | |||
| propagate the rest of the ARP/ND Extended Communities. | propagate the rest of the ARP/ND Extended Communities. | |||
| o The R, O and I Flags MUST be ignored if they are advertised along | * The R, O, and I flags MUST be ignored if they are advertised along | |||
| with an EVPN MAC/IP Advertisement route that does not contain an | with an EVPN MAC/IP Advertisement route that does not contain an | |||
| IP (IPv4 or IPv6) address. Otherwise they are processed as | IP (IPv4 or IPv6) address. Otherwise, they are processed as | |||
| follows. | follows. | |||
| o R and O Flags processing: | * R and O flag processing: | |||
| * If the EVPN MAC/IP Advertisement route contains an IPv6 address | - 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 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 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 | and propagate the value of the R and O flags from the ARP/ND | |||
| Extended Community to the Neighbor Advertisements when replying | Extended Community to the Neighbor Advertisements when replying | |||
| to a Solicitation for the IPv6 address. | to a solicitation for the IPv6 address. | |||
| * If no EVPN ARP/ND Extended Community is received along with the | - If no EVPN ARP/ND Extended Community is received along with the | |||
| route, the PE will add the default R and O Flags to the entry. | route, the PE will add the default R and O flags to the entry. | |||
| The default R Flag SHOULD be an administrative choice. The | The default R flag SHOULD be an administrative choice. The | |||
| default O Flag SHOULD be 1. | default O flag SHOULD be 1. | |||
| * A PE MUST ignore the received R and O Flags for an EVPN MAC/IP | - A PE MUST ignore the received R and O flags for an EVPN MAC/IP | |||
| Advertisement route that contains an IPv4->MAC pair. | Advertisement route that contains an IPv4->MAC pair. | |||
| o I Flag processing: | * I flag processing: | |||
| * A PE receiving an EVPN MAC/IP Advertisement route containing an | - A PE receiving an EVPN MAC/IP Advertisement route containing an | |||
| IP->MAC and the I Flag set SHOULD install the IP->MAC entry in | IP->MAC and the I flag set SHOULD install the IP->MAC entry in | |||
| the ARP/ND or proxy-ARP/ND table as an "Immutable binding". | the ARP/ND or proxy-ARP/ND table as an "immutable binding". | |||
| This Immutable binding entry will override an existing non- | This immutable binding entry will override an existing non- | |||
| immutable binding for the same IP->MAC. The absence of the | immutable binding for the same IP->MAC. The absence of the | |||
| EVPN ARP/ND Extended Community in a MAC/IP Advertisement route | EVPN ARP/ND Extended Community in a MAC/IP Advertisement route | |||
| indicates that the IP->MAC entry is not an "Immutable binding". | indicates that the IP->MAC entry is not an "immutable binding". | |||
| * Receiving multiple EVPN MAC/IP Advertisement routes with I=1 | - Receiving multiple EVPN MAC/IP Advertisement routes with the I | |||
| for the same IP but different MAC is considered a | flag set to 1 for the same IP but a different MAC address is | |||
| misconfiguration or a transient error condition. If this | considered a misconfiguration or a transient error condition. | |||
| happens in the network, a PE receiving multiple routes (with | If this happens in the network, a PE receiving multiple routes | |||
| I=1 for the same IP and a different MAC address) SHOULD update | (with the I flag set to 1 for the same IP and a different MAC | |||
| the IP->MAC entry with the latest received information. Note | address) SHOULD update the IP->MAC entry with the latest | |||
| that if a configured IP1->MAC1 changes to point to a new MAC | received information. Note that if a configured IP1->MAC1 | |||
| address, i.e., IP1->MAC2, the EVPN MAC/IP Advertisement route | changes to point to a new MAC address, i.e., IP1->MAC2, the | |||
| for IP1->MAC1 will be withdrawn before the EVPN MAC/IP | EVPN MAC/IP Advertisement route for IP1->MAC1 will be withdrawn | |||
| Advertisement route for IP1->MAC2 is advertised. | before the EVPN MAC/IP Advertisement route for IP1->MAC2 is | |||
| advertised. | ||||
| * A PE originating an EVPN MAC/IP Advertisement route for | - A PE originating an EVPN MAC/IP Advertisement route for | |||
| IP1->MAC1 with I=1 MAY also originate the route with the Static | IP1->MAC1 with the I flag set to 1 MAY also originate the route | |||
| bit set (in the MAC Mobility Extended Community). In such a | with the "Sticky/static flag" set (in the MAC Mobility Extended | |||
| case, the IP1->MAC1 binding is not only immutable but it cannot | Community). In such a case, the IP1->MAC1 binding is not only | |||
| move as well. Even so, if an update for the same IP1->MAC1 | immutable but it cannot move as well. Even so, if an update | |||
| immutable and static, is received from a different PE, one of | for the same immutable and static IP1->MAC1 is received from a | |||
| the two routes will be selected. This case is analogous to the | different PE, one of the two routes will be selected. This is | |||
| [RFC7432] case when two MAC/IP routes with the Static bit set | analogous to the case described in Section 15.2 of [RFC7432] | |||
| are received, and the PE likewise MUST alert the operator of | when two MAC/IP routes with the static flag set are received, | |||
| such a situation. | and the PE likewise MUST alert the operator of such a | |||
| situation. | ||||
| In a situation where a host (with an IP->MAC that is configured as | In a situation where a host (with an IP->MAC that is configured as | |||
| Immutable binding in the attached PE) is allowed to move between PEs | immutable binding in the attached PE) is allowed to move between PEs | |||
| (that is, the associated MAC is non-static), PEs can receive multiple | (that is, the associated MAC is non-static), PEs can receive multiple | |||
| MAC/IP advertisement routes for the same IP->MAC. In such | MAC/IP Advertisement routes for the same IP->MAC. In such | |||
| situations, MAC mobility procedures as in [RFC7432] dictate the | situations, MAC mobility procedures as in [RFC7432] dictate the | |||
| reachability of the MAC. | reachability of the MAC. | |||
| As an example of the use of the I Flag, consider PE1, PE2 and PE3 are | As an example of the use of the I flag, consider PE1, PE2, and PE3 | |||
| attached to the same BD. PE1 originates an EVPN MAC/IP Advertisement | attached to the same BD. PE1 originates an EVPN MAC/IP Advertisement | |||
| route for IP1->MAC1 with I=1; later on, PE2 also originates an EVPN | route for IP1->MAC1 with the I flag set to 1 later on, PE2 also | |||
| MAC/IP Advertisement route IP1->MAC1 with a higher sequence number | originates an EVPN MAC/IP Advertisement route IP1->MAC1 with a higher | |||
| and I=1. Then all the EVPN PEs attached to the same BD SHOULD retain | sequence number and the I flag set to 1. Then all the EVPN PEs | |||
| their IP1->MAC1 ARP/ND binding but update MAC1's forwarding | attached to the same BD SHOULD retain their IP1->MAC1 ARP/ND binding | |||
| destination to PE2. If for some reason, PE3 originates an EVPN MAC/ | but update MAC1's forwarding destination to PE2. For some reason, if | |||
| IP Advertisement route for IP1->MAC2 with I=0 (even with a higher | PE3 originates an EVPN MAC/IP Advertisement route for IP1->MAC2 with | |||
| sequence number), then the EVPN PEs in the BD will not update their | the I flag set to 0 (even with a higher sequence number), then the | |||
| IP1->MAC1 ARP/ND bindings, since IP1 is bound to MAC1 (MAC2 SHOULD | EVPN PEs in the BD will not update their IP1->MAC1 ARP/ND bindings | |||
| still be programmed in the layer-2 BDs). This is considered a | since IP1 is bound to MAC1 (MAC2 SHOULD still be programmed in the | |||
| misconfiguration in PE3. | 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 | When the I flag is set to 1, a given IP is assumed to be always bound | |||
| the same MAC address, and therefore the mobility procedures described | to the same MAC address; therefore, the mobility procedures described | |||
| in [I-D.ietf-bess-evpn-irb-extended-mobility] for "Host IP move to a | in [EXTENDED-MOBILITY] for "Host IP move to a new MAC" will not | |||
| new MAC" will not apply. | apply. | |||
| 4. Security Considerations | 4. Security Considerations | |||
| The same security considerations described in [RFC7432] apply to this | The same security considerations described in [RFC7432] apply to this | |||
| document. In general, it is worth noting that the use of Proxy ARP/ | document. In general, it is worth noting that the use of proxy-ARP/ | |||
| ND in EVPN BDs may add some security risks. Attackers can make use | ND in EVPN BDs may add some security risks. Attackers can make use | |||
| of ARP/ND messages to create state in all the PEs attached to the | of ARP/ND messages to create state in all the PEs attached to the | |||
| same BD as the attacker and exhaust resources in those PEs. | same BD as the attacker and exhaust resources in those PEs. | |||
| Therefore, additional security mechanisms may be needed. Some | Therefore, additional security mechanisms may be needed. Some | |||
| examples of such additional security mechanisms are e.g., limit the | examples of such additional security mechanisms are limiting the | |||
| number of Proxy ARP/ND entries per-BD/per-port, or monitor closely | number of proxy-ARP/ND entries per BD and/or per port or closely | |||
| the rate at which hosts create dynamic Proxy-ARP/ND entries. | monitoring the rate at which hosts create dynamic proxy-ARP/ND | |||
| entries. | ||||
| In addition, this document adds pieces of information that impact on | In addition, this document adds pieces of information that impact the | |||
| the way ARP/ND entries are installed in ARP/ND and/or proxy-ARP/ND | way ARP/ND entries are installed in ARP/ND and/or proxy-ARP/ND tables | |||
| tables, and therefore the resolution protocols for IPv4 and IPv6 | and, therefore, impacts the resolution protocols for IPv4 and IPv6 | |||
| addresses. For instance, if a given IPv6->MAC binding is configured | addresses. For instance, if a given IPv6->MAC binding is configured | |||
| with the wrong R or O Flags (intentionally or not) on a given PE, the | with the wrong R or O flags (intentionally or not) on a given PE, the | |||
| rest of the PEs attached to the same BD will install the wrong | rest of the PEs attached to the same BD will install the wrong | |||
| information for the IPv6->MAC. This will cause all the PEs in the BD | information for the IPv6->MAC. This will cause all the PEs in the BD | |||
| to reply to Neighbor Solicitations for the IPv6 with Neighbor | to reply to Neighbor Solicitations for the IPv6 with NA messages | |||
| Advertisement (NA) messages containing the wrong R and O Flags. For | containing the wrong R and O flags. For example, as specified in | |||
| example, as specified in [RFC4861], the receiver of a NA message with | [RFC4861], the receiver of an NA message with O not set will not | |||
| O not set will not update its existing cache entry for the IP->MAC, | update its existing cache entry for the IP->MAC; hence, the | |||
| hence the communication between the owner of the IP address and the | communication between the owner of the IP address and the receiver of | |||
| receiver of the NA message with the wrong O flag will fail. | the NA message with the wrong O flag will fail. Similarly, the | |||
| Similarly, the receiver of a NA message with the wrong R flag, may | receiver of an NA message with the wrong R flag may update its | |||
| update its Default Router List incorrectly adding or removing an | Default Router List by incorrectly adding or removing an entry, which | |||
| entry, which could for example lead to sending traffic to a node that | could, for example, lead to sending traffic to a node that is not a | |||
| is not a router, causing the traffic to be dropped . | router, causing the traffic to be dropped. | |||
| The I Flag, or Immutable ARP/ND Binding Flag, introduces a useful | The I flag, or Immutable ARP/ND Binding flag, is a useful security | |||
| security tool so that an operator makes sure a given IP address is | tool, allowing an operator to ensure a given IP address is always | |||
| always bound to the same MAC and that information is distributed to | bound to the same MAC and that information is distributed to all the | |||
| all the PEs attached to the same BD. ARP/ND spoofing attacks from | PEs attached to the same BD. ARP/ND spoofing attacks, in which a | |||
| hosts injecting Gratuitous ARPs or unsolicited Neighbor Advertisement | malicious host injects Gratuitous ARPs or unsolicited NAs for that IP | |||
| messages for that IP address with a different MAC address will not | address with a different MAC address, will not succeed in programming | |||
| succeed to be programmed in ARP/ND and proxy-ARP/ND tables and | the ARP/ND and proxy-ARP/ND tables and therefore the spoofer will not | |||
| therefore will avoid attracting traffic to the spoofer. | receive the traffic. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| This document request that the Name of the currently registered value | IANA has changed the name for Sub-Type Value 0x08 in the "EVPN | |||
| for Sub-Type 0x08 in the EVPN Extended Community Sub-Types registry | Extended Community Sub-Types" registry [IANA-BGP-EXT-COMM] to the | |||
| (https://www.iana.org/assignments/bgp-extended-communities/bgp- | following: | |||
| extended-communities.xhtml#evpn) be changed to: | ||||
| +----------+---------------------------+-----------------+ | +================+===========================+===========+ | |||
| | Sub-Type | Name | Reference | | | Sub-Type Value | Name | Reference | | |||
| +----------+---------------------------+-----------------+ | +================+===========================+===========+ | |||
| | 0x08 | ARP/ND Extended Community | [this document] | | | 0x08 | ARP/ND Extended Community | RFC 9047 | | |||
| +----------+---------------------------+-----------------+ | +----------------+---------------------------+-----------+ | |||
| This document also requests the creation of a registry called "ARP/ND | Table 1: Updated Value in the "EVPN Extended Community | |||
| Extended Community Flags" where the following initial allocations are | Sub-Types" Registry | |||
| made: | ||||
| +---------------+---------------------------------+-----------------+ | IANA has created the "ARP/ND Extended Community Flags" registry, | |||
| | Flag position | Name | Reference | | where the following initial allocations have been made: | |||
| +---------------+---------------------------------+-----------------+ | ||||
| | 0-3 | Unassigned | - | | ||||
| | 4 | Immutable ARP/ND Binding Flag | [this document] | | ||||
| | | (I) | | | ||||
| | 5 | Unassigned | - | | ||||
| | 6 | Override Flag (O) | [this document] | | ||||
| | 7 | Router Flag (R) | [this document] | | ||||
| +---------------+---------------------------------+-----------------+ | ||||
| The registration procedure for this registry is Standards Action. | +===============+===================================+===========+ | |||
| This registry should be located in the Border Gateway Protocol (BGP) | | Flag Position | Name | Reference | | |||
| Extended Communities general registry | +===============+===================================+===========+ | |||
| (https://www.iana.org/assignments/bgp-extended-communities/bgp- | | 0-3 | Unassigned | | | |||
| extended-communities.xhtml). | +---------------+-----------------------------------+-----------+ | |||
| | 4 | Immutable ARP/ND Binding Flag (I) | RFC 9047 | | ||||
| +---------------+-----------------------------------+-----------+ | ||||
| | 5 | Unassigned | | | ||||
| +---------------+-----------------------------------+-----------+ | ||||
| | 6 | Override Flag (O) | RFC 9047 | | ||||
| +---------------+-----------------------------------+-----------+ | ||||
| | 7 | Router Flag (R) | RFC 9047 | | ||||
| +---------------+-----------------------------------+-----------+ | ||||
| Note that the Flag position 5 is left unassigned and not used in this | Table 2: Initial Values of the "ARP/ND Extended Community | |||
| specification since it was previously requested by | Flags" Registry | |||
| [I-D.rbickhart-evpn-ip-mac-proxy-adv]. | ||||
| 6. Acknowledgments | The registration policy for this registry is Standards Action | |||
| [RFC8126]. This registry is located in the "Border Gateway Protocol | ||||
| (BGP) Extended Communities" registry [IANA-BGP-EXT-COMM]. | ||||
| The authors would like to thank Ali Sajassi for his feedback. | Note that the flag position 5 is left unassigned and not used in this | |||
| specification since it was previously requested by | ||||
| [EVPN-IP-MAC-PROXY]. | ||||
| 7. References | 6. References | |||
| 7.1. Normative References | 6.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
| Requirement Levels", BCP 14, RFC 2119, | ||||
| DOI 10.17487/RFC2119, March 1997, | ||||
| <https://www.rfc-editor.org/info/rfc2119>. | ||||
| [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | |||
| "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | |||
| DOI 10.17487/RFC4861, September 2007, | DOI 10.17487/RFC4861, September 2007, | |||
| <https://www.rfc-editor.org/info/rfc4861>. | <https://www.rfc-editor.org/info/rfc4861>. | |||
| [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., | [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., | |||
| Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based | Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based | |||
| Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February | Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February | |||
| 2015, <https://www.rfc-editor.org/info/rfc7432>. | 2015, <https://www.rfc-editor.org/info/rfc7432>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | ||||
| Requirement Levels", BCP 14, RFC 2119, | ||||
| DOI 10.17487/RFC2119, March 1997, | ||||
| <https://www.rfc-editor.org/info/rfc2119>. | ||||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 7.2. Informative References | 6.2. Informative References | |||
| [I-D.ietf-bess-evpn-irb-extended-mobility] | [EVPN-IP-MAC-PROXY] | |||
| Malhotra, N., Sajassi, A., Pattekar, A., Lingala, A., | Bickhart, R., Lin, W., Drake, J., Rabadan, J., and A. Lo, | |||
| "Proxy IP->MAC Advertisement in EVPNs", Work in Progress, | ||||
| Internet-Draft, draft-rbickhart-evpn-ip-mac-proxy-adv-01, | ||||
| 24 January 2020, <https://tools.ietf.org/html/draft- | ||||
| rbickhart-evpn-ip-mac-proxy-adv-01>. | ||||
| [EXTENDED-MOBILITY] | ||||
| Malhotra, N., Ed., Sajassi, A., Pattekar, A., Lingala, A., | ||||
| Rabadan, J., and J. Drake, "Extended Mobility Procedures | Rabadan, J., and J. Drake, "Extended Mobility Procedures | |||
| for EVPN-IRB", draft-ietf-bess-evpn-irb-extended- | for EVPN-IRB", Work in Progress, Internet-Draft, draft- | |||
| mobility-04 (work in progress), October 2020. | ietf-bess-evpn-irb-extended-mobility-05, 15 March 2021, | |||
| <https://tools.ietf.org/html/draft-ietf-bess-evpn-irb- | ||||
| extended-mobility-05>. | ||||
| [I-D.rbickhart-evpn-ip-mac-proxy-adv] | [IANA-BGP-EXT-COMM] | |||
| Bickhart, R., "Proxy IP->MAC Advertisement in EVPNs", | IANA, "Border Gateway Protocol (BGP) Extended | |||
| January 2020. | Communities", <https://www.iana.org/assignments/bgp- | |||
| extended-communities>. | ||||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | ||||
| Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8126>. | ||||
| Acknowledgments | ||||
| The authors would like to thank Ali Sajassi for his feedback. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Jorge Rabadan (editor) | Jorge Rabadan (editor) | |||
| Nokia | Nokia | |||
| 777 Middlefield Road | 777 Middlefield Road | |||
| Mountain View, CA 94043 | Mountain View, CA 94043 | |||
| USA | United States of America | |||
| Email: jorge.rabadan@nokia.com | Email: jorge.rabadan@nokia.com | |||
| Senthil Sathappan | Senthil Sathappan | |||
| Nokia | Nokia | |||
| 701 E. Middlefield Road | 701 E. Middlefield Road | |||
| Mountain View, CA 94043 USA | Mountain View, CA 94043 | |||
| United States of America | ||||
| Email: senthil.sathappan@nokia.com | Email: senthil.sathappan@nokia.com | |||
| Kiran Nagaraj | Kiran Nagaraj | |||
| Nokia | Nokia | |||
| 701 E. Middlefield Road | 701 E. Middlefield Road | |||
| Mountain View, CA 94043 USA | Mountain View, CA 94043 | |||
| United States of America | ||||
| Email: kiran.nagaraj@nokia.com | Email: kiran.nagaraj@nokia.com | |||
| Wen Lin | Wen Lin | |||
| Juniper Networks | Juniper Networks | |||
| Email: wlin@juniper.net | Email: wlin@juniper.net | |||
| End of changes. 87 change blocks. | ||||
| 268 lines changed or deleted | 295 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||