| rfc9161.original | rfc9161.txt | |||
|---|---|---|---|---|
| BESS Workgroup J. Rabadan, Ed. | Internet Engineering Task Force (IETF) J. Rabadan, Ed. | |||
| Internet-Draft S. Sathappan | Request for Comments: 9161 S. Sathappan | |||
| Updates: 7432 (if approved) K. Nagaraj | Updates: 7432 K. Nagaraj | |||
| Intended status: Standards Track G. Hankins | Category: Standards Track G. Hankins | |||
| Expires: April 9, 2022 Nokia | ISSN: 2070-1721 Nokia | |||
| T. King | T. King | |||
| DE-CIX | DE-CIX | |||
| October 6, 2021 | January 2022 | |||
| Operational Aspects of Proxy-ARP/ND in Ethernet Virtual Private Networks | Operational Aspects of Proxy ARP/ND in Ethernet Virtual Private Networks | |||
| draft-ietf-bess-evpn-proxy-arp-nd-16 | ||||
| Abstract | Abstract | |||
| This document describes the Ethernet Virtual Private Networks (EVPN) | This document describes the Ethernet Virtual Private Network (EVPN) | |||
| Proxy-ARP/ND function, augmented by the capability of the ARP/ND | Proxy ARP/ND function augmented by the capability of the ARP/ND | |||
| Extended Community. From that perspective this document updates the | Extended Community. From that perspective, this document updates the | |||
| EVPN specification to provide more comprehensive documentation of the | EVPN specification to provide more comprehensive documentation of the | |||
| operation of the Proxy-ARP/ND function. The EVPN Proxy-ARP/ND | operation of the Proxy ARP/ND function. The EVPN Proxy ARP/ND | |||
| function and the ARP/ND Extended Community help operators of Internet | function and the ARP/ND Extended Community help operators of Internet | |||
| Exchange Points, Data Centers, and other networks deal with IPv4 and | Exchange Points, Data Centers, and other networks deal with IPv4 and | |||
| IPv6 address resolution issues associated with large Broadcast | IPv6 address resolution issues associated with large Broadcast | |||
| Domains by reducing and even suppressing the flooding produced by | Domains by reducing and even suppressing the flooding produced by | |||
| address resolution in the EVPN network. | address resolution in the EVPN network. | |||
| 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 April 9, 2022. | 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/rfc9161. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 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 Revised BSD License text as described in Section 4.e of the | |||
| the Trust Legal Provisions and are provided without warranty as | Trust Legal Provisions and are provided without warranty as described | |||
| described in the Simplified BSD License. | in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.1. The Data Center Use Case | |||
| 2.1. The Data Center Use-Case . . . . . . . . . . . . . . . . 5 | 1.2. The Internet Exchange Point Use Case | |||
| 2.2. The Internet Exchange Point Use-Case . . . . . . . . . . 5 | 2. Terminology | |||
| 3. Solution Description . . . . . . . . . . . . . . . . . . . . 6 | 3. Solution Description | |||
| 3.1. Proxy-ARP/ND Sub-Functions . . . . . . . . . . . . . . . 8 | 3.1. Proxy ARP/ND Sub-functions | |||
| 3.2. Learning Sub-Function . . . . . . . . . . . . . . . . . . 9 | 3.2. Learning Sub-function | |||
| 3.2.1. Proxy-ND and the NA Flags . . . . . . . . . . . . . . 11 | 3.2.1. Proxy ND and the NA Flags | |||
| 3.3. Reply Sub-Function . . . . . . . . . . . . . . . . . . . 12 | 3.3. Reply Sub-function | |||
| 3.4. Unicast-forward Sub-Function . . . . . . . . . . . . . . 14 | 3.4. Unicast-Forward Sub-function | |||
| 3.5. Maintenance Sub-Function . . . . . . . . . . . . . . . . 14 | 3.5. Maintenance Sub-function | |||
| 3.6. Flood (to Remote PEs) Handling . . . . . . . . . . . . . 16 | 3.6. Flood (to Remote PEs) Handling | |||
| 3.7. Duplicate IP Detection . . . . . . . . . . . . . . . . . 17 | 3.7. Duplicate IP Detection | |||
| 4. Solution Benefits . . . . . . . . . . . . . . . . . . . . . . 19 | 4. Solution Benefits | |||
| 5. Deployment Scenarios . . . . . . . . . . . . . . . . . . . . 20 | 5. Deployment Scenarios | |||
| 5.1. All Dynamic Learning . . . . . . . . . . . . . . . . . . 20 | 5.1. All Dynamic Learning | |||
| 5.2. Dynamic Learning with Proxy-ARP/ND . . . . . . . . . . . 20 | 5.2. Dynamic Learning with Proxy ARP/ND | |||
| 5.3. Hybrid Dynamic Learning and Static Provisioning with | 5.3. Hybrid Dynamic Learning and Static Provisioning with Proxy | |||
| Proxy-ARP/ND . . . . . . . . . . . . . . . . . . . . . . 20 | ARP/ND | |||
| 5.4. All Static Provisioning with Proxy-ARP/ND . . . . . . . . 21 | 5.4. All Static Provisioning with Proxy ARP/ND | |||
| 5.5. Example of Deployment in Internet Exchange Points . . . . 21 | 5.5. Example of Deployment in Internet Exchange Points | |||
| 5.6. Example of Deployment in Data Centers . . . . . . . . . . 22 | 5.6. Example of Deployment in Data Centers | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 23 | 6. Security Considerations | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 | 7. IANA Considerations | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 24 | 8. References | |||
| 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 24 | 8.1. Normative References | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 8.2. Informative References | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 24 | Acknowledgments | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 25 | Contributors | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | Authors' Addresses | |||
| 1. Terminology | 1. Introduction | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | As specified in [RFC7432], the IP Address field in the Ethernet | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | Virtual Private Network (EVPN) Media Access Control (MAC) / IP | |||
| "OPTIONAL" in this document are to be interpreted as described in | Advertisement route may optionally carry one of the IP addresses | |||
| BCP14 [RFC2119] [RFC8174] when, and only when, they appear in all | associated with the MAC address. A Provider Edge (PE) may learn | |||
| capitals, as shown here. | local IP->MAC pairs and advertise them in EVPN MAC/IP Advertisement | |||
| routes. Remote PEs importing those routes in the same Broadcast | ||||
| Domain (BD) may add those IP->MAC pairs to their Proxy ARP/ND tables | ||||
| and reply to local ARP Requests or Neighbor Solicitations (or | ||||
| "unicast-forward" those packets to the owner MAC), reducing and even | ||||
| suppressing, in some cases, the flooding in the EVPN network. | ||||
| ARP: Address Resolution Protocol. | EVPN and its associated Proxy ARP/ND function are extremely useful in | |||
| Data Centers (DCs) or Internet Exchange Points (IXPs) with large | ||||
| Broadcast Domains, where the amount of ARP/ND flooded traffic causes | ||||
| issues on connected routers and Customer Edges (CEs). [RFC6820] | ||||
| describes the address resolution problems in large DC networks. | ||||
| AS-MAC: Anti-spoofing MAC. It is a especial MAC configured on all | This document describes the Proxy ARP/ND function in [RFC7432] | |||
| the PEs attached to the same BD and used for the Duplicate IP | networks, augmented by the capability of the ARP/ND Extended | |||
| Detection procedures. | Community [RFC9047]. From that perspective, this document updates | |||
| [RFC7432]. | ||||
| BD: Broadcast Domain. | Proxy ARP/ND may be implemented to help IXPs, DCs, and other | |||
| operators deal with the issues derived from address resolution in | ||||
| large Broadcast Domains. | ||||
| BUM: Broadcast, Unknown unicast and Multicast layer-2 traffic. | 1.1. The Data Center Use Case | |||
| CE: Customer Edge router. | As described in [RFC6820], the IPv4 and IPv6 address resolution can | |||
| create a lot of issues in large DCs. In particular, the issues | ||||
| created by IPv4 Address Resolution Protocol procedures may be | ||||
| significant. | ||||
| DAD: Duplicate Address Detection, as per [RFC4861]. | On one hand, ARP Requests use broadcast MAC addresses; therefore, any | |||
| Tenant System in a large Broadcast Domain will see a large amount of | ||||
| ARP traffic, which is not addressed to most of the receivers. | ||||
| DC: Data Center. | On the other hand, the flooding issue becomes even worse if some | |||
| Tenant Systems disappear from the Broadcast Domain, since some | ||||
| implementations will persistently retry sending ARP Requests. As | ||||
| [RFC6820] states, there are no clear requirements for retransmitting | ||||
| ARP Requests in the absence of replies; hence, an implementation may | ||||
| choose to keep retrying endlessly even if there are no replies. | ||||
| EVI: EVPN Instance. | The amount of flooding that address resolution creates can be | |||
| mitigated by the use of EVPN and its Proxy ARP/ND function. | ||||
| EVPN: Ethernet Virtual Private Networks, as per [RFC7432]. | 1.2. The Internet Exchange Point Use Case | |||
| GARP: Gratuitous ARP message. | The implementation described in this document is especially useful in | |||
| IXP networks. | ||||
| IP->MAC: an IP address associated to a MAC address. IP->MAC entries | A typical IXP provides access to a large Layer 2 Broadcast Domain for | |||
| are programmed in Proxy-ARP/ND tables and may be of three different | peering purposes (referred to as "the peering network"), where | |||
| types: dynamic, static or EVPN-learned. | (hundreds of) Internet routers are connected. We refer to these | |||
| Internet routers as CE devices in this section. Because of the | ||||
| requirement to connect all routers to a single Layer 2 network, the | ||||
| peering networks use IPv4 addresses in length ranges from /21 to /24 | ||||
| (and even bigger for IPv6), which can create very large Broadcast | ||||
| Domains. This peering network is transparent to the CEs and | ||||
| therefore floods any ARP Requests or NS messages to all the CEs in | ||||
| the network. Gratuitous ARP and NA messages are flooded to all the | ||||
| CEs too. | ||||
| IXP: Internet eXchange Point. | In these IXP networks, most of the CEs are typically peering routers | |||
| and roughly all the Broadcast, Unknown Unicast, and Multicast (BUM) | ||||
| traffic is originated by the ARP and ND address resolution | ||||
| procedures. This ARP/ND BUM traffic causes significant data volumes | ||||
| that reach every single router in the peering network. Since the | ||||
| ARP/ND messages are processed in "slow path" software processors and | ||||
| they take high priority in the routers, heavy loads of ARP/ND traffic | ||||
| can cause some routers to run out of resources. CEs disappearing | ||||
| from the network may cause address resolution explosions that can | ||||
| make a router with limited processing power fail to keep BGP sessions | ||||
| running. | ||||
| IXP-LAN: the IXP's large Broadcast Domain to where Internet routers | The issue might be better in IPv6 routers if Multicast Listener | |||
| are connected. | Discovery (MLD) snooping was enabled, since ND uses an SN-multicast | |||
| address in NS messages; however, ARP uses broadcast and has to be | ||||
| processed by all the routers in the network. Some routers may also | ||||
| be configured to broadcast periodic Gratuitous ARPs (GARPs) | ||||
| [RFC5227]. For IPv6, the fact that IPv6 CEs have more than one IPv6 | ||||
| address contributes to the growth of ND flooding in the network. The | ||||
| amount of ARP/ND flooded traffic grows linearly with the number of | ||||
| IXP participants; therefore, the issue can only grow worse as new CEs | ||||
| are added. | ||||
| LAG: Link Aggregation Group. | In order to deal with this issue, IXPs have developed certain | |||
| solutions over the past years. While these solutions may mitigate | ||||
| the issues of address resolution in large broadcast domains, EVPN | ||||
| provides new more efficient possibilities to IXPs. EVPN and its | ||||
| Proxy ARP/ND function may help solve the issue in a distributed and | ||||
| scalable way, fully integrated with the PE network. | ||||
| MAC or IP DA: MAC or IP Destination Address. | 2. Terminology | |||
| MAC or IP SA: MAC or IP Source Address. | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
| "OPTIONAL" in this document are to be interpreted as described in | ||||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| ND: Neighbor Discovery Protocol. | ARP: Address Resolution Protocol | |||
| NS: Neighbor Solicitation message. | AS-MAC: Anti-spoofing MAC. It is a special MAC configured on all | |||
| the PEs attached to the same BD and used for the | ||||
| duplicate IP detection procedures. | ||||
| NA: Neighbor Advertisement. | BD: Broadcast Domain | |||
| NUD: Neighbor Unreachability Detection, as per [RFC4861]. | BUM: Broadcast, Unknown Unicast, and Multicast Layer 2 traffic | |||
| O Flag: Override Flag in NA messages, as per [RFC4861]. | CE: Customer Edge router | |||
| PE: Provider Edge router. | DAD: Duplicate Address Detection, as per [RFC4861] | |||
| R Flag: Router Flag in NA messages, as per [RFC4861]. | DC: Data Center | |||
| RT2: EVPN Route type 2 or EVPN MAC/IP Advertisement route, as per | EVI: EVPN Instance | |||
| [RFC7432]. | ||||
| S Flag: Solicited Flag in NA messages, as per [RFC4861]. | EVPN: Ethernet Virtual Private Network, as per [RFC7432] | |||
| SN-multicast address: Solicited-Node IPv6 multicast address used by | GARP: Gratuitous ARP | |||
| NS messages. | ||||
| TLLA: Target Link Layer Address, as per [RFC4861]. | 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. | ||||
| VPLS: Virtual Private LAN Service. | IXP: Internet Exchange Point | |||
| This document assumes familiarity with the terminology used in | IXP-LAN: The IXP's large Broadcast Domain to where Internet | |||
| [RFC7432]. | routers are connected. | |||
| 2. Introduction | LAG: Link Aggregation Group | |||
| As specified in [RFC7432] the IP Address field in the Ethernet | MAC or IP DA: MAC or IP Destination Address | |||
| Virtual Private Networks (EVPN) MAC/IP Advertisement route may | ||||
| optionally carry one of the IP addresses associated with the MAC | ||||
| address. A PE may learn local IP->MAC pairs and advertise them in | ||||
| EVPN MAC/IP Advertisement routes. Remote PEs importing those routes | ||||
| in the same Broadcast Domain (BD) may add those IP->MAC pairs to | ||||
| their Proxy-ARP/ND tables and reply to local ARP requests or Neighbor | ||||
| Solicitations (or 'unicast-forward' those packets to the owner MAC), | ||||
| reducing and even suppressing in some cases the flooding in the EVPN | ||||
| network. | ||||
| EVPN and its associated Proxy-ARP/ND function are extremely useful in | MAC or IP SA: MAC or IP Source Address | |||
| DCs or Internet Exchange Points (IXPs) with large broadcast domains, | ||||
| where the amount of ARP/ND flooded traffic causes issues on connected | ||||
| routers and CEs. [RFC6820] describes the address resolution problems | ||||
| in large DC networks. | ||||
| This document describes the Proxy-ARP/ND function in [RFC7432] | ND: Neighbor Discovery | |||
| networks, augmented by the capability of the ARP/ND Extended | ||||
| Community [RFC9047]. From that perspective this document updates | ||||
| [RFC7432]. | ||||
| Proxy-ARP/ND may be implemented to help IXPs, DCs and other operators | NS: Neighbor Solicitation | |||
| deal with the issues derived from address resolution in large | ||||
| broadcast domains. | ||||
| 2.1. The Data Center Use-Case | NA: Neighbor Advertisement | |||
| As described in [RFC6820] the IPv4 and IPv6 address resolution can | NUD: Neighbor Unreachability Detection, as per [RFC4861] | |||
| create a lot of issues in large DCs. In particular, the issues | ||||
| created by the IPv4 Address Resolution Protocol procedures may be | ||||
| significant. | ||||
| On one hand, ARP Requests use broadcast MAC addresses, therefore any | O Flag: Override Flag in NA messages, as per [RFC4861] | |||
| Tenant System in a large Broadcast Domain will see a large amount of | ||||
| ARP traffic, which is not addressed to most of the receivers. | ||||
| On the other hand, the flooding issue becomes even worse if some | PE: Provider Edge router | |||
| Tenant Systems disappear from the broadcast domain, since some | ||||
| implementations will persistently retry sending ARP Requests. As | ||||
| [RFC6820] states, there are no clear requirements for retransmitting | ||||
| ARP Requests in the absence of replies, hence an implementation may | ||||
| choose to keep retrying endlessly even if there are no replies. | ||||
| The amount of flooding that address resolution creates can be | R Flag: Router Flag in NA messages, as per [RFC4861] | |||
| mitigated by the use of EVPN and its Proxy-ARP/ND function. | ||||
| 2.2. The Internet Exchange Point Use-Case | RT2: EVPN Route type 2 or EVPN MAC/IP Advertisement route, as | |||
| per [RFC7432] | ||||
| The implementation described in this document is especially useful in | S Flag: Solicited Flag in NA messages, as per [RFC4861] | |||
| IXP networks. | ||||
| A typical IXP provides access to a large layer-2 Broadcast Domain for | SN-multicast address: Solicited-Node IPv6 multicast address used by | |||
| peering purposes (referred to as 'the peering network'), where | NS messages | |||
| (hundreds of) Internet routers are connected. We refer to these | ||||
| Internet routers as Customer Edge (CE) devices in this section. | ||||
| Because of the requirement to connect all routers to a single layer-2 | ||||
| network the peering networks use IPv4 addresses in length ranges from | ||||
| /21 to /24 (and even bigger for IPv6), which can create very large | ||||
| broadcast domains. This peering network is transparent to the CEs, | ||||
| and therefore, floods any ARP request or NS messages to all the CEs | ||||
| in the network. Gratuitous ARP and NA messages are flooded to all | ||||
| the CEs too. | ||||
| In these IXP networks, most of the CEs are typically peering routers | TLLA: Target Link Layer Address, as per [RFC4861] | |||
| and roughly all the BUM traffic is originated by the ARP and ND | ||||
| address resolution procedures. This ARP/ND BUM traffic causes | ||||
| significant data volumes that reach every single router in the | ||||
| peering network. Since the ARP/ND messages are processed in "slow | ||||
| path" software processors and they take high priority in the routers, | ||||
| heavy loads of ARP/ND traffic can cause some routers to run out of | ||||
| resources. CEs disappearing from the network may cause address | ||||
| resolution explosions that can make a router with limited processing | ||||
| power fail to keep BGP sessions running. | ||||
| The issue might be better in IPv6 routers if MLD-snooping was | VPLS: Virtual Private LAN Service | |||
| enabled, since ND uses SN-multicast address in NS messages; however, | ||||
| ARP uses broadcast and has to be processed by all the routers in the | ||||
| network. Some routers may also be configured to broadcast periodic | ||||
| GARPs [RFC5227]. For IPv6, the fact that IPv6 CEs have more than one | ||||
| IPv6 address contributes to the growth of ND flooding in the network. | ||||
| The amount of ARP/ND flooded traffic grows linearly with the number | ||||
| of IXP participants, therefore the issue can only grow worse as new | ||||
| CEs are added. | ||||
| In order to deal with this issue, IXPs have developed certain | This document assumes familiarity with the terminology used in | |||
| solutions over the past years. While these solutions may mitigate | [RFC7432]. | |||
| the issues of address resolution in large broadcasts domains, EVPN | ||||
| provides new more efficient possibilities to IXPs. EVPN and its | ||||
| Proxy-ARP/ND function may help solve the issue in a distributed and | ||||
| scalable way, fully integrated with the PE network. | ||||
| 3. Solution Description | 3. Solution Description | |||
| Figure 1 illustrates an example EVPN network where the Proxy-ARP/ND | Figure 1 illustrates an example EVPN network where the Proxy ARP/ND | |||
| function is enabled. | function is enabled. | |||
| BD1 | BD1 | |||
| Proxy-ARP/ND | Proxy ARP/ND | |||
| +------------+ | +------------+ | |||
| IP1/M1 +----------------------------+ |IP1->M1 EVPN| | IP1/M1 +----------------------------+ |IP1->M1 EVPN| | |||
| GARP --->Proxy-ARP/ND | |IP2->M2 EVPN| | GARP --->Proxy ARP/ND | |IP2->M2 EVPN| | |||
| +---+ +--------+ RT2(IP1/M1) | |IP3->M3 sta | | +---+ +--------+ RT2(IP1/M1) | |IP3->M3 sta | | |||
| |CE1+------| BD1 | ------> +------+---|IP4->M4 dyn | | |CE1+------| BD1 | ------> +------+---|IP4->M4 dyn | | |||
| +---+ +--------+ | +------------+ | +---+ +--------+ | +------------+ | |||
| PE1 | +--------+ Who has IP1? | PE1 | +--------+ Who has IP1? | |||
| | EVPN | | BD1 | <----- +---+ | | EVPN | | BD1 | <----- +---+ | |||
| | EVI1 | | | -----> |CE3| | | EVI1 | | | -----> |CE3| | |||
| IP2/M2 | | | | IP1->M1 +---+ | IP2/M2 | | | | IP1->M1 +---+ | |||
| GARP --->Proxy-ARP/ND | +--------+ | IP3/M3 | GARP --->Proxy ARP/ND | +--------+ | IP3/M3 | |||
| +---+ +--------+ RT2(IP2/M2) | | | +---+ +--------+ RT2(IP2/M2) | | | |||
| |CE2+----| BD1 | ------> +--------------+ | |CE2+----| BD1 | ------> +--------------+ | |||
| +---+ +--------+ PE3| +---+ | +---+ +--------+ PE3| +---+ | |||
| PE2 | +----+CE4| | PE2 | +----+CE4| | |||
| +----------------------------+ +---+ | +----------------------------+ +---+ | |||
| <---IP4/M4 GARP | <---IP4/M4 GARP | |||
| Figure 1: Proxy-ARP/ND network example | Figure 1: Proxy ARP/ND Network Example | |||
| When the Proxy-ARP/ND function is enabled in a BD (Broadcast Domain) | When the Proxy ARP/ND function is enabled in a BD (Broadcast Domain) | |||
| of the EVPN PEs, each PE creates a Proxy table specific to that BD | of the EVPN PEs, each PE creates a Proxy table specific to that BD | |||
| that can contain three types of Proxy-ARP/ND entries: | that can contain three types of Proxy ARP/ND entries: | |||
| a. Dynamic entries: learned by snooping CE's ARP and ND messages. | Dynamic entries: | |||
| For instance, IP4->M4 in Figure 1. | Learned by snooping a CE's ARP and ND messages; for instance, see | |||
| IP4->M4 in Figure 1. | ||||
| b. Static entries: provisioned on the PE by the management system. | Static entries: | |||
| For instance, IP3->M3 in Figure 1. | Provisioned on the PE by the management system; for instance, see | |||
| IP3->M3 in Figure 1. | ||||
| c. EVPN-learned entries: learned from the IP/MAC information encoded | EVPN-learned entries: | |||
| in the received RT2's coming from remote PEs. For instance, | Learned from the IP/MAC information encoded in the received RT2's | |||
| IP1->M1 and IP2->M2 in Figure 1. | coming from remote PEs; for instance, see IP1->M1 and IP2->M2 in | |||
| Figure 1. | ||||
| As a high level example, the operation of the EVPN Proxy-ARP/ND | As a high-level example, the operation of the EVPN Proxy ARP/ND | |||
| function in the network of Figure 1 is described below. In this | function in the network of Figure 1 is described below. In this | |||
| example we assume IP1, IP2 and IP3 are IPv4 addresses: | example, we assume IP1, IP2, and IP3 are IPv4 addresses: | |||
| 1. Proxy-ARP/ND is enabled in BD1 of PE1, PE2 and PE3. | 1. Proxy ARP/ND is enabled in BD1 of PE1, PE2, and PE3. | |||
| 2. The PEs start adding dynamic, static and EVPN-learned entries to | 2. The PEs start adding dynamic, static, and EVPN-learned entries to | |||
| their Proxy tables: | their Proxy tables: | |||
| A. PE3 adds IP1->M1 and IP2->M2 based on the EVPN routes | a. PE3 adds IP1->M1 and IP2->M2 based on the EVPN routes | |||
| received from PE1 and PE2. Those entries were previously | received from PE1 and PE2. Those entries were previously | |||
| learned as dynamic entries in PE1 and PE2 respectively, and | learned as dynamic entries in PE1 and PE2, respectively, and | |||
| advertised in BGP EVPN. | advertised in BGP EVPN. | |||
| B. PE3 adds IP4->M4 as dynamic. This entry is learned by | ||||
| b. PE3 adds IP4->M4 as dynamic. This entry is learned by | ||||
| snooping the corresponding ARP messages sent by CE4. | snooping the corresponding ARP messages sent by CE4. | |||
| C. An operator also provisions the static entry IP3->M3. | ||||
| c. An operator also provisions the static entry IP3->M3. | ||||
| 3. When CE3 sends an ARP Request asking for the MAC address of IP1, | 3. When CE3 sends an ARP Request asking for the MAC address of IP1, | |||
| PE3 will: | PE3 will: | |||
| A. Intercept the ARP Request and perform a Proxy-ARP lookup for | a. Intercept the ARP Request and perform a Proxy ARP lookup for | |||
| IP1. | IP1. | |||
| B. If the lookup is successful (as in Figure 1), PE3 will send | ||||
| b. If the lookup is successful (as in Figure 1), PE3 will send | ||||
| an ARP Reply with IP1->M1. The ARP Request will not be | an ARP Reply with IP1->M1. The ARP Request will not be | |||
| flooded to the EVPN network or any other local CEs. | flooded to the EVPN network or any other local CEs. | |||
| C. If the lookup is not successful, PE3 will flood the ARP | ||||
| c. If the lookup is not successful, PE3 will flood the ARP | ||||
| Request in the EVPN network and the other local CEs. | Request in the EVPN network and the other local CEs. | |||
| In the same example, if we assume IP1, IP2, IP3 and IP4 are now IPv6 | In the same example, if we assume IP1, IP2, IP3, and IP4 are now IPv6 | |||
| addresses and Proxy-ARP/ND is enabled in BD1: | addresses and Proxy ARP/ND is enabled in BD1: | |||
| 1. PEs will start adding entries in a similar way as for IPv4, | 1. PEs will start adding entries in a similar way as they would for | |||
| however there are some differences: | IPv4; however, there are some differences: | |||
| A. IP1->M1 and IP2->M2 are learned as dynamic entries in PE1 and | a. IP1->M1 and IP2->M2 are learned as dynamic entries in PE1 and | |||
| PE2 respectively, by snooping NA messages and not by snooping | PE2, respectively, by snooping NA messages and not by | |||
| NS messages. In the IPv4 case, any ARP frame can be snooped | snooping NS messages. In the IPv4 case, any ARP frame can be | |||
| to learn the dynamic Proxy-ARP entry. When learning the | snooped to learn the dynamic Proxy ARP entry. When learning | |||
| dynamic entries, the R and O Flags contained in the snooped | the dynamic entries, the R and O Flags contained in the | |||
| NA messages will be added to the Proxy-ND entries too. | snooped NA messages will be added to the Proxy ND entries | |||
| too. | ||||
| B. PE1 and PE2 will advertise those entries in EVPN MAC/IP | b. PE1 and PE2 will advertise those entries in EVPN MAC/IP | |||
| Advertisement routes, including the corresponding learned R | Advertisement routes, including the corresponding learned R | |||
| and O Flags in the ARP/ND Extended Community. | and O Flags in the ARP/ND Extended Community. | |||
| C. PE3 also adds IP4->M4 as dynamic, after snooping an NA | c. PE3 also adds IP4->M4 as dynamic after snooping an NA message | |||
| message sent by CE4. | sent by CE4. | |||
| 2. When CE3 sends an NS message asking for the MAC address of IP1, | 2. When CE3 sends an NS message asking for the MAC address of IP1, | |||
| PE3 behaves as in the IPv4 example, by intercepting the NS, doing | PE3 behaves as in the IPv4 example, by intercepting the NS, | |||
| a lookup on the IP and replying with an NA if the lookup is | performing a lookup on the IP, and replying with an NA if the | |||
| successful. If it is successful the NS is not flooded to the | lookup is successful. If it is successful, the NS is not flooded | |||
| EVPN PEs or any other local CEs. | to the EVPN PEs or any other local CEs. | |||
| 3. If the lookup is not successful, PE3 will flood the NS to remote | 3. If the lookup is not successful, PE3 will flood the NS to remote | |||
| EVPN PEs attached to the same BD and the other local CEs as in | EVPN PEs attached to the same BD and the other local CEs as in | |||
| the IPv4 case. | the IPv4 case. | |||
| As PE3 learns more and more host entries in the Proxy-ARP/ND table, | As PE3 learns more and more host entries in the Proxy ARP/ND table, | |||
| the flooding of ARP Request messages among PEs is reduced and in some | the flooding of ARP Request messages among PEs is reduced and in some | |||
| cases it can even be suppressed. In a network where most of the | cases, it can even be suppressed. In a network where most of the | |||
| participant CEs are not moving between PEs and they advertise their | participant CEs are not moving between PEs and are advertising their | |||
| presence with GARPs or unsolicited-NA messages, the ARP/ND flooding | presence with GARPs or unsolicited-NA messages, the ARP/ND flooding | |||
| among PEs, as well as the unknown unicast flooding, can practically | among PEs, as well as the unknown unicast flooding, can practically | |||
| be suppressed. In an EVPN-based IXP network, where all the entries | be suppressed. In an EVPN-based IXP network, where all the entries | |||
| are Static, the ARP/ND flooding among PEs is in fact totally | are static, the ARP/ND flooding among PEs is in fact totally | |||
| suppressed. | suppressed. | |||
| In a network where CEs move between PEs, the Proxy-ARP/ND function | In a network where CEs move between PEs, the Proxy ARP/ND function | |||
| relies on the CE signaling its new location via GARP or unsolicited- | relies on the CE signaling its new location via GARP or unsolicited- | |||
| NA messages so that tables are immediately updated. If a CE moves | NA messages so that tables are immediately updated. If a CE moves | |||
| "silently", that is, without issuing any GARP or NA message upon | "silently", that is, without issuing any GARP or NA message upon | |||
| getting attached to the destination PE, the mechanisms described in | getting attached to the destination PE, the mechanisms described in | |||
| Section 3.5 make sure that the Proxy-ARP/ND tables are eventually | Section 3.5 make sure that the Proxy ARP/ND tables are eventually | |||
| updated. | updated. | |||
| 3.1. Proxy-ARP/ND Sub-Functions | 3.1. Proxy ARP/ND Sub-functions | |||
| The Proxy-ARP/ND function can be structured in six sub-functions or | The Proxy ARP/ND function can be structured in six sub-functions or | |||
| procedures: | procedures: | |||
| 1. Learning sub-function | 1. Learning sub-function | |||
| 2. Reply sub-function | 2. Reply sub-function | |||
| 3. Unicast-forward sub-function | 3. Unicast-forward sub-function | |||
| 4. Maintenance sub-function | 4. Maintenance sub-function | |||
| 5. Flood handling sub-function | 5. Flood handling sub-function | |||
| 6. Duplicate IP detection sub-function | 6. Duplicate IP detection sub-function | |||
| A Proxy-ARP/ND implementation MUST at least support the Learning, | A Proxy ARP/ND implementation MUST at least support the Learning, | |||
| Reply, Maintenance, and Duplicate IP detection sub-functions. The | Reply, Maintenance, and duplicate IP detection sub-functions. The | |||
| following sections describe each individual sub-function. | following sections describe each individual sub-function. | |||
| 3.2. Learning Sub-Function | 3.2. Learning Sub-function | |||
| A Proxy-ARP/ND implementation in an EVPN BD MUST support dynamic and | A Proxy ARP/ND implementation in an EVPN BD MUST support dynamic and | |||
| EVPN-learned entries, and SHOULD support static entries. | EVPN-learned entries and SHOULD support static entries. | |||
| Static entries are provisioned from the management plane. A static | Static entries are provisioned from the management plane. A static | |||
| entry is configured on the PE attached to the host using the IP | entry is configured on the PE attached to the host using the IP | |||
| address in that entry. The provisioned static IP->MAC entry MUST be | address in that entry. The provisioned static IP->MAC entry MUST be | |||
| advertised in EVPN with an ARP/ND Extended Community where the | advertised in EVPN with an ARP/ND Extended Community where the | |||
| Immutable ARP/ND Binding Flag (I) is set to 1, as per [RFC9047]. | Immutable ARP/ND Binding Flag (I) is set to 1, as per [RFC9047]. | |||
| When the I flag in the ARP/ND Extended Community is 1, the | When the I Flag in the ARP/ND Extended Community is 1, the | |||
| advertising PE indicates that the IP address must not be associated | advertising PE indicates that the IP address must not be associated | |||
| to a MAC, other than the one included in the EVPN MAC/IP | to a MAC other than the one included in the EVPN MAC/IP Advertisement | |||
| Advertisement route. The advertisement of I=1 in the ARP/ND Extended | route. The advertisement of I = 1 in the ARP/ND Extended Community | |||
| Community is compatible with any value of the Sticky bit (S) or | is compatible with any value of the Sticky bit (S) or sequence number | |||
| Sequence Number in the [RFC7432] MAC Mobility Extended Community. | in the [RFC7432] MAC Mobility Extended Community. Note that the I | |||
| Note that the I bit in the ARP/ND Extended Community refers to the | bit in the ARP/ND Extended Community refers to the immutable | |||
| immutable configured association between the IP and the MAC address | configured association between the IP and the MAC address in the | |||
| in the IP->MAC binding, whereas the S bit in the MAC Mobility | IP->MAC binding, whereas the S bit in the MAC Mobility Extended | |||
| Extended Community refers to the fact that the advertised MAC address | Community refers to the fact that the advertised MAC address is not | |||
| is not subject to the [RFC7432] mobility procedures. | subject to the [RFC7432] mobility procedures. | |||
| An entry may associate a configured static IP to a list of potential | An entry may associate a configured static IP to a list of potential | |||
| MACs, i.e. IP1->(MAC1,MAC2..MACN). Until a frame (including local | MACs, i.e., IP1->(MAC1,MAC2..MACN). Until a frame (including a local | |||
| ARP/NA message) is received from the CE, the PE will not advertise | ARP/NA message) is received from the CE, the PE will not advertise | |||
| any IP1->MAC in EVPN. Upon receiving traffic from the CE, the PE | any IP1->MAC in EVPN. Upon receiving traffic from the CE, the PE | |||
| will check that the source MAC, E.g., MAC1, is included in the list | will check that the source MAC, e.g., MAC1, is included in the list | |||
| of allowed MACs. Only in that case, the PE will activate the | of allowed MACs. Only in that case, the PE will activate the | |||
| IP1->MAC1 and advertise only that IP1 and MAC1 in an EVPN MAC/IP | IP1->MAC1 and advertise only that IP1 and MAC1 in an EVPN MAC/IP | |||
| Advertisement route. | Advertisement route. | |||
| The PE MUST create EVPN-learned entries from the received valid EVPN | The PE MUST create EVPN-learned entries from the received valid EVPN | |||
| MAC/IP Advertisement routes containing a MAC and IP address. | MAC/IP Advertisement routes containing a MAC and IP address. | |||
| Dynamic entries are learned in different ways depending on whether | Dynamic entries are learned in different ways depending on whether | |||
| the entry contains an IPv4 or IPv6 address: | the entry contains an IPv4 or IPv6 address: | |||
| a. Proxy-ARP dynamic entries: | Proxy ARP dynamic entries: | |||
| The PE MUST snoop all ARP packets (that is, all frames with | ||||
| The PE MUST snoop all ARP packets (that is, all frames with | Ethertype 0x0806) received from the CEs attached to the BD in | |||
| Ethertype 0x0806) received from the CEs attached to the BD in | order to learn dynamic entries. ARP packets received from remote | |||
| order to learn dynamic entries. ARP packets received from | EVPN PEs attached to the same BD are not snooped. The Learning | |||
| remote EVPN PEs attached to the same BD are not snooped. The | function will add the sender MAC and sender IP of the snooped ARP | |||
| Learning function will add the Sender MAC and Sender IP of the | packet to the Proxy ARP table. Note that a MAC or an IP address | |||
| snooped ARP packet to the Proxy-ARP table. Note that a MAC or | with value 0 SHOULD NOT be learned. | |||
| an IP address with value 0 SHOULD NOT be learned. | ||||
| b. Proxy-ND dynamic entries: | ||||
| The PE MUST snoop the NA messages (Ethertype 0x86dd, ICMPv6 | Proxy ND dynamic entries: | |||
| type 136) received from the CEs attached to the BD and learn | The PE MUST snoop the NA messages (Ethertype 0x86dd, ICMPv6 type | |||
| dynamic entries from the Target Address and TLLA information. | 136) received from the CEs attached to the BD and learn dynamic | |||
| NA messages received from remote EVPN PEs are not snooped. A | entries from the Target Address and TLLA information. NA messages | |||
| PE implementing Proxy-ND as in this document MUST NOT create | received from remote EVPN PEs are not snooped. A PE implementing | |||
| dynamic IP->MAC entries from NS messages, since they don't | Proxy ND as in this document MUST NOT create dynamic IP->MAC | |||
| contain the R Flag required by the Proxy-ND reply function. | entries from NS messages because they don't contain the R Flag | |||
| See Section 3.2.1 for more information about the R Flag. | required by the Proxy ND reply function. See Section 3.2.1 for | |||
| more information about the R Flag. | ||||
| This document specifies an "anycast" capability that can be | This document specifies an "anycast" capability that can be | |||
| configured for the proxy-ND function of the PE, and affects | configured for the Proxy ND function of the PE and affects how | |||
| how dynamic Proxy-ND entries are learned based on the O Flag | dynamic Proxy ND entries are learned based on the O Flag of the | |||
| of the snooped NA messages. If the O Flag is zero in the | snooped NA messages. If the O Flag is zero in the received NA | |||
| received NA message, the IP->MAC SHOULD only be learned in | message, the IP->MAC SHOULD only be learned in case the IPv6 | |||
| case the IPv6 "anycast" capability is enabled in the BD. | "anycast" capability is enabled in the BD. Irrespective, an NA | |||
| Irrespective, an NA message with O Flag = 0 will be normally | message with O Flag = 0 will be normally forwarded by the PE based | |||
| forwarded by the PE based on a MAC DA lookup. | on a MAC DA lookup. | |||
| The following procedure associated to the Learning sub-function is | The following procedure associated to the Learning sub-function is | |||
| RECOMMENDED: | RECOMMENDED: | |||
| o When a new Proxy-ARP/ND EVPN or static active entry is learned (or | * When a new Proxy ARP/ND EVPN or static active entry is learned (or | |||
| provisioned), the PE SHOULD send a GARP or unsolicited-NA message | provisioned), the PE SHOULD send a GARP or unsolicited-NA message | |||
| to all the connected access CEs. The PE SHOULD send a GARP or | to all the connected access CEs. The PE SHOULD send a GARP or | |||
| unsolicited-NA message for dynamic entries only if the ARP/NA | unsolicited-NA message for dynamic entries only if the ARP/NA | |||
| message that previously created the entry on the PE was NOT | message that previously created the entry on the PE was NOT | |||
| flooded to all the local connected CEs before. This GARP/ | flooded to all the local connected CEs before. This GARP/ | |||
| unsolicited-NA message makes sure the CE ARP/ND caches are updated | unsolicited-NA message makes sure the CE ARP/ND caches are updated | |||
| even if the ARP/NS/NA messages from CEs connected to remote PEs | even if the ARP/NS/NA messages from CEs connected to remote PEs | |||
| are not flooded in the EVPN network. | are not flooded in the EVPN network. | |||
| Note that if a Static entry is provisioned with the same IP as an | Note that if a static entry is provisioned with the same IP as an | |||
| existing EVPN-learned or Dynamic entry, the Static entry takes | existing EVPN-learned or dynamic entry, the static entry takes | |||
| precedence. | precedence. | |||
| In case of a PE reboot, the static and EVPN entries will be re-added | In case of a PE reboot, the static and EVPN entries will be re-added | |||
| as soon as the PE is back online and receives all the EVPN routes for | as soon as the PE is back online and receives all the EVPN routes for | |||
| the BD. However, the dynamic entries will be gone. Due to that | the BD. However, the dynamic entries will be gone. Due to that | |||
| reason, new NS and ARP Requests will be flooded by the PE to remote | reason, new NS and ARP Requests will be flooded by the PE to remote | |||
| PEs and dynamic entries gradually re-learned again. | PEs and dynamic entries gradually relearned again. | |||
| 3.2.1. Proxy-ND and the NA Flags | 3.2.1. Proxy ND and the NA Flags | |||
| [RFC4861] describes the use of the R Flag in IPv6 address resolution: | [RFC4861] describes the use of the R Flag in IPv6 address resolution: | |||
| o Nodes capable of routing IPv6 packets must reply to NS messages | * Nodes capable of routing IPv6 packets must reply to NS messages | |||
| with NA messages where the R Flag is set (R Flag=1). | with NA messages where the R Flag is set (R Flag = 1). | |||
| o Hosts that are not able to route IPv6 packets must indicate that | * Hosts that are not able to route IPv6 packets must indicate that | |||
| inability by replying with NA messages that contain R Flag=0. | inability by replying with NA messages that contain R Flag = 0. | |||
| The use of the R Flag in NA messages has an impact on how hosts | The use of the R Flag in NA messages has an impact on how hosts | |||
| select their default gateways when sending packets off-link, as per | select their default gateways when sending packets off-link, as per | |||
| [RFC4861]: | [RFC4861]: | |||
| o Hosts build a Default Router List based on the received RAs and | * Hosts build a Default Router List based on the received RAs and | |||
| NAs with R Flag=1. Each cache entry has an IsRouter flag, which | NAs with R Flag = 1. Each cache entry has an IsRouter flag, which | |||
| must be set for received RAs and is set based on the R flag in the | must be set for received RAs and is set based on the R Flag in the | |||
| received NAs. A host can choose one or more Default Routers when | received NAs. A host can choose one or more Default Routers when | |||
| sending packets off-link. | sending packets off-link. | |||
| o In those cases where the IsRouter flag changes from TRUE to FALSE | * In those cases where the IsRouter flag changes from TRUE to FALSE | |||
| as a result of a NA update, the node must remove that router from | as a result of an NA update, the node must remove that router from | |||
| the Default Router List and update the Destination Cache entries | the Default Router List and update the Destination Cache entries | |||
| for all destinations using that neighbor as a router, as specified | for all destinations using that neighbor as a router, as specified | |||
| in [RFC4861] section 7.3.3. This is needed to detect when a node | in Section 7.3.3 of [RFC4861]. This is needed to detect when a | |||
| that is used as a router stops forwarding packets due to being | node that is used as a router stops forwarding packets due to | |||
| configured as a host. | being configured as a host. | |||
| The R Flag and O Flag for a Proxy-ARP/ND entry will be learned in the | The R and O Flags for a Proxy ARP/ND entry will be learned in the | |||
| following ways: | following ways: | |||
| o The R Flag information SHOULD be added to the Static entries by | * The R Flag information SHOULD be added to the static entries by | |||
| the management interface. The O Flag information MAY also be | the management interface. The O Flag information MAY also be | |||
| added by the management interface. If the R and O Flags are not | added by the management interface. If the R and O Flags are not | |||
| configured, the default value is 1. | configured, the default value is 1. | |||
| o Dynamic entries SHOULD learn the R Flag and MAY learn the O Flag | * Dynamic entries SHOULD learn the R Flag and MAY learn the O Flag | |||
| from the snooped NA messages used to learn the IP->MAC itself. | from the snooped NA messages used to learn the IP->MAC itself. | |||
| o EVPN-learned entries SHOULD learn the R Flag and MAY learn the O | * EVPN-learned entries SHOULD learn the R Flag and MAY learn the O | |||
| Flag from the ARP/ND Extended Community [RFC9047] received from | Flag from the ARP/ND Extended Community [RFC9047] received from | |||
| EVPN along with the RT2 used to learn the IP->MAC itself. If no | EVPN along with the RT2 used to learn the IP->MAC itself. If no | |||
| ARP/ND Extended Community is received, the PE will add a | ARP/ND Extended Community is received, the PE will add a | |||
| configured R Flag/O Flag to the entry. These configured R and O | configured R Flag / O Flag to the entry. These configured R and O | |||
| Flags MAY be an administrative choice with a default value of 1. | Flags MAY be an administrative choice with a default value of 1. | |||
| The configuration of this administrative choice provides a | The configuration of this administrative choice provides a | |||
| backwards compatible option with EVPN PEs that follow [RFC7432] | backwards-compatible option with EVPN PEs that follow [RFC7432] | |||
| but do not support this specification. | but do not support this specification. | |||
| Note that, typically, IP->MAC entries with O=0 will not be learned, | 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 | therefore, the Proxy ND function will reply to NS messages with NA | |||
| messages that contain O=1. However, this document allows the | messages that contain O = 1. However, this document allows the | |||
| configuration of the "anycast" capability in the BD where the Proxy- | 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 | 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 | 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, | learned with O = 0. If this "anycast" capability is enabled in the | |||
| Duplicate IP Detection must be disabled so that the PE is able to | 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 | learn the same IP mapped to different MACs in the same Proxy ND | |||
| table. If the "anycast" capability is disabled, NA messages with O | table. If the "anycast" capability is disabled, NA messages with O | |||
| Flag = 0 will not create a Proxy-ND entry (although they will be | Flag = 0 will not create a Proxy ND entry (although they will be | |||
| forwarded normally), hence no EVPN advertisement with ARP/ND Extended | forwarded normally); hence, no EVPN advertisement with ARP/ND | |||
| Community will be generated. | Extended Community will be generated. | |||
| 3.3. Reply Sub-Function | 3.3. Reply Sub-function | |||
| This sub-function will reply to address resolution requests/ | This sub-function will reply to address resolution requests/ | |||
| solicitations upon successful lookup in the Proxy-ARP/ND table for a | solicitations upon successful lookup in the Proxy ARP/ND table for a | |||
| given IP address. The following considerations should be taken into | given IP address. The following considerations should be taken into | |||
| account, assuming that the ARP Request/NS lookup hits a Proxy-ARP/ND | account, assuming that the ARP Request / NS lookup hits a Proxy ARP/ | |||
| entry IP1->MAC1: | ND entry IP1->MAC1: | |||
| a. When replying to ARP Request or NS messages: | a. When replying to ARP Requests or NS messages: | |||
| - the PE SHOULD use the Proxy-ARP/ND entry MAC address MAC1 as | * The PE SHOULD use the Proxy ARP/ND entry MAC address MAC1 as | |||
| MAC SA. This is RECOMMENDED so that the resolved MAC can be | MAC SA. This is RECOMMENDED so that the resolved MAC can be | |||
| learned in the MAC forwarding database of potential layer-2 | learned in the MAC forwarding database of potential Layer 2 | |||
| switches sitting between the PE and the CE requesting the | switches sitting between the PE and the CE requesting the | |||
| address resolution. | address resolution. | |||
| - for an ARP reply, the PE MUST use the Proxy-ARP entry IP1 and | * For an ARP reply, the PE MUST use the Proxy ARP entry IP1 and | |||
| MAC1 addresses in the Sender Protocol Address and Hardware | MAC1 addresses in the sender Protocol Address and Hardware | |||
| Address fields, respectively. | Address fields, respectively. | |||
| - for an NA message in response to an address resolution NS or | * For an NA message in response to an address resolution NS or | |||
| DAD NS, the PE MUST use IP1 as the IP SA and Target Address. | DAD NS, the PE MUST use IP1 as the IP SA and Target Address. | |||
| M1 MUST be used as the Target Link Local Address (TLLA). | M1 MUST be used as the Target Link Local Address (TLLA). | |||
| b. A PE SHOULD NOT reply to a request/solicitation received on the | b. A PE SHOULD NOT reply to a request/solicitation received on the | |||
| same attachment circuit over which the IP->MAC is learned. In | same attachment circuit over which the IP->MAC is learned. In | |||
| this case the requester and the requested IP are assumed to be | this case, the requester and the requested IP are assumed to be | |||
| connected to the same layer-2 CE/access network linked to the | connected to the same Layer 2 CE/access network linked to the | |||
| PE's attachment circuit, and therefore the requested IP owner | PE's attachment circuit; therefore, the requested IP owner will | |||
| will receive the request directly. | receive the request directly. | |||
| c. A PE SHOULD reply to broadcast/multicast address resolution | c. A PE SHOULD reply to broadcast/multicast address resolution | |||
| messages, that is, ARP-Request, ARP probes, NS messages as well | messages, i.e., ARP Requests, ARP probes, NS messages, as well as | |||
| as DAD NS messages. An ARP probe is an ARP request constructed | DAD NS messages. An ARP probe is an ARP Request constructed with | |||
| with an all-zero sender IP address that may be used by hosts for | an all-zero sender IP address that may be used by hosts for IPv4 | |||
| IPv4 Address Conflict Detection as specified in [RFC5227]. A PE | Address Conflict Detection as specified in [RFC5227]. A PE | |||
| SHOULD NOT reply to unicast address resolution requests (for | SHOULD NOT reply to unicast address resolution requests (for | |||
| instance, NUD NS messages). | instance, NUD NS messages). | |||
| d. When replying to an NS, a PE SHOULD set the Flags in the NA | d. When replying to an NS, a PE SHOULD set the Flags in the NA | |||
| messages as follows: | messages as follows: | |||
| - The R-bit is set as it was learned for the IP->MAC entry in | * The R bit is set as it was learned for the IP->MAC entry in | |||
| the NA messages that created the entry (see Section 3.2.1). | the NA messages that created the entry (see Section 3.2.1). | |||
| - The S Flag will be set/unset as per [RFC4861]. | * The S Flag will be set/unset as per [RFC4861]. | |||
| - The O Flag will be set in all the NA messages issued by the | * The O Flag will be set in all the NA messages issued by the PE | |||
| PE, except in the case the BD is configured with the "anycast" | except in the case in which the BD is configured with the | |||
| capability and the entry was previously learned with O=0. If | "anycast" capability and the entry was previously learned with | |||
| "anycast" is enabled and there are more than one MAC for a | O = 0. If "anycast" is enabled and there is more than one MAC | |||
| given IP in the Proxy-ND table, the PE will reply to NS | for a given IP in the Proxy ND table, the PE will reply to NS | |||
| messages with as many NA responses as 'anycast' entries there | messages with as many NA responses as "anycast" entries there | |||
| are in the Proxy-ND table. | are in the Proxy ND table. | |||
| e. For Proxy-ARP, a PE MUST only reply to ARP-Request with the | e. For Proxy ARP, a PE MUST only reply to ARP Requests with the | |||
| format specified in [RFC0826]. | format specified in [RFC0826]. | |||
| f. For Proxy-ND, a PE MUST reply to NS messages with known options | f. For Proxy ND, a PE MUST reply to NS messages with known options | |||
| with the format and options specified in [RFC4861], and MAY | with the format and options specified in [RFC4861] and MAY reply, | |||
| reply, discard, forward or unicast-forward NS messages containing | discard, forward, or unicast-forward NS messages containing other | |||
| other options. An administrative choice to control the behavior | options. An administrative choice to control the behavior for | |||
| for received NS messages with unknown options ('reply', | received NS messages with unknown options ("reply", "discard", | |||
| 'discard', 'unicast-forward' or 'forward') MAY be supported. | "unicast-forward", or "forward") MAY be supported. | |||
| - The 'reply' option implies that the PE ignores the unknown | * The "reply" option implies that the PE ignores the unknown | |||
| options and replies with NA messages, assuming a successful | options and replies with NA messages, assuming a successful | |||
| lookup on the Proxy-ND table. An unsuccessful lookup will | lookup on the Proxy ND table. An unsuccessful lookup will | |||
| result in a 'forward' behavior (i.e., flood the NS message | result in a "forward" behavior (i.e., flood the NS message | |||
| based on the MAC DA. | based on the MAC DA). | |||
| - If 'discard' is available, the operator should assess if | * If "discard" is available, the operator should assess if | |||
| flooding NS unknown options may be a security risk for the | flooding NS unknown options may be a security risk for the | |||
| EVPN BD (and if so, enable 'discard'), or if, on the contrary, | EVPN BD (and if so, enable "discard") or, on the contrary, if | |||
| not forwarding/flooding NS unknown options may disrupt | not forwarding/flooding NS unknown options may disrupt | |||
| connectivity. This option discards NS messages with unknown | connectivity. This option discards NS messages with unknown | |||
| options, irrespective of the result of the lookup on the | options irrespective of the result of the lookup on the Proxy | |||
| Proxy-ND table. | ND table. | |||
| - The 'unicast-forward' option is described in Section 3.4. | * The "unicast-forward" option is described in Section 3.4. | |||
| - The 'forward' option implies flooding the NS message based on | * The "forward" option implies flooding the NS message based on | |||
| the MAC DA. This option forwards NS messages with unknown | the MAC DA. This option forwards NS messages with unknown | |||
| options, irrespective of the result of the lookup on the | options irrespective of the result of the lookup on the Proxy | |||
| Proxy-ND table. The 'forward' option is RECOMMENDED by this | ND table. The "forward" option is RECOMMENDED by this | |||
| document. | document. | |||
| 3.4. Unicast-forward Sub-Function | 3.4. Unicast-Forward Sub-function | |||
| As discussed in Section 3.3, in some cases the operator may want to | As discussed in Section 3.3, in some cases, the operator may want to | |||
| 'unicast-forward' certain ARP-Request and NS messages as opposed to | "unicast-forward" certain ARP Requests and NS messages as opposed to | |||
| reply to them. The implementation of a 'unicast-forward' function is | reply to them. The implementation of a "unicast-forward" function is | |||
| RECOMMENDED. This option can be enabled with one of the following | RECOMMENDED. This option can be enabled with one of the following | |||
| parameters: | parameters: | |||
| a. unicast-forward always | a. unicast-forward always | |||
| b. unicast-forward unknown-options | b. unicast-forward unknown-options | |||
| If 'unicast-forward always' is enabled, the PE will perform a Proxy- | 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 | 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 | 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 | is irrespective of the options carried in the ARP/ND packet. This | |||
| option provides total transparency in the BD and yet reduces the | option provides total transparency in the BD and yet reduces the | |||
| amount of flooding significantly. | amount of flooding significantly. | |||
| If 'unicast-forward unknown-options' is enabled, upon a successful | If "unicast-forward unknown-options" is enabled, upon a successful | |||
| Proxy-ARP/ND lookup, the PE will perform a 'unicast-forward' action | Proxy ARP/ND lookup, the PE will perform a "unicast-forward" action | |||
| only if the ARP-Request or NS messages carry unknown options, as | only if the ARP Requests or NS messages carry unknown options, as | |||
| explained in Section 3.3. The 'unicast-forward unknown-options' | explained in Section 3.3. The "unicast-forward unknown-options" | |||
| configuration allows the support of new applications using ARP/ND in | configuration allows the support of new applications using ARP/ND in | |||
| the BD while still reducing the flooding. | the BD while still reducing the flooding. | |||
| Irrespective of the enabled option, if there is no successful Proxy- | Irrespective of the enabled option, if there is no successful Proxy | |||
| ARP/ND lookup, the unknown ARP-Request/NS will be flooded in the | ARP/ND lookup, the unknown ARP Request / NS message will be flooded | |||
| context of the BD, as per Section 3.6. | in the context of the BD, as per Section 3.6. | |||
| 3.5. Maintenance Sub-Function | 3.5. Maintenance Sub-function | |||
| The Proxy-ARP/ND tables SHOULD follow a number of maintenance | The Proxy ARP/ND tables SHOULD follow a number of maintenance | |||
| procedures so that the dynamic IP->MAC entries are kept if the owner | procedures so that the dynamic IP->MAC entries are kept if the owner | |||
| is active and flushed (and the associated RT2 withdrawn) if the owner | is active and flushed (and the associated RT2 withdrawn) or if the | |||
| is no longer in the network. The following procedures are | owner is no longer in the network. The following procedures are | |||
| RECOMMENDED: | RECOMMENDED: | |||
| a. Age-time | Age-time: | |||
| A dynamic Proxy-ARP/ND entry MUST be flushed out of the table if | A dynamic Proxy ARP/ND entry MUST be flushed out of the table if | |||
| the IP->MAC has not been refreshed within a given age-time. The | the IP->MAC has not been refreshed within a given age-time. The | |||
| entry is refreshed if an ARP or NA message is received for the | entry is refreshed if an ARP or NA message is received for the | |||
| same IP->MAC entry. The age-time is an administrative option and | same IP->MAC entry. The age-time is an administrative option, and | |||
| its value should be carefully chosen depending on the specific | its value should be carefully chosen depending on the specific use | |||
| use case: in IXP networks (where the CE routers are fairly | case; in IXP networks (where the CE routers are fairly static), | |||
| static) the age-time may normally be longer than in DC networks | the age-time may normally be longer than in DC networks (where | |||
| (where mobility is required). | mobility is required). | |||
| b. Send-refresh option | ||||
| The PE MAY send periodic refresh messages (ARP/ND "probes") to | Send-refresh option: | |||
| the owners of the dynamic Proxy-ARP/ND entries, so that the | The PE MAY send periodic refresh messages (ARP/ND "probes") to the | |||
| entries can be refreshed before they age out. The owner of the | owners of the dynamic Proxy ARP/ND entries, so that the entries | |||
| IP->MAC entry would reply to the ARP/ND probe and the | can be refreshed before they age out. The owner of the IP->MAC | |||
| corresponding entry age-time reset. The periodic send-refresh | entry would reply to the ARP/ND probe and the corresponding entry | |||
| timer is an administrative option and is RECOMMENDED to be a | age-time reset. The periodic send-refresh timer is an | |||
| third of the age-time or a half of the age-time in scaled | administrative option and is RECOMMENDED to be a third of the age- | |||
| networks. | time or a half of the age-time in scaled networks. | |||
| An ARP refresh issued by the PE will be an ARP-Request message | An ARP refresh issued by the PE will be an ARP Request message | |||
| with the Sender's IP = 0 sent from the PE's MAC SA. If the PE | with the sender's IP = 0 sent from the PE's MAC SA. If the PE has | |||
| has an IP address in the subnet, for instance on an Integrated | an IP address in the subnet, for instance, on an Integrated | |||
| Routing and Bridging (IRB) interface, then it MAY use it as a | Routing and Bridging (IRB) interface, then it MAY use it as a | |||
| source for the ARP request (instead of Sender's IP = 0). An ND | source for the ARP Request (instead of sender's IP = 0). An ND | |||
| refresh will be a NS message issued from the PE's MAC SA and a | refresh will be an NS message issued from the PE's MAC SA and a | |||
| Link Local Address associated to the PE's MAC. | Link Local Address associated to the PE's MAC. | |||
| The refresh request messages SHOULD be sent only for dynamic | The refresh request messages SHOULD be sent only for dynamic | |||
| entries and not for static or EVPN-learned entries. Even though | entries and not for static or EVPN-learned entries. Even though | |||
| the refresh request messages are broadcast or multicast, the PE | the refresh request messages are broadcast or multicast, the PE | |||
| SHOULD only send the message to the attachment circuit associated | SHOULD only send the message to the attachment circuit associated | |||
| to the MAC in the IP->MAC entry. | to the MAC in the IP->MAC entry. | |||
| The age-time and send-refresh options are used in EVPN networks to | The age-time and send-refresh options are used in EVPN networks to | |||
| avoid unnecessary EVPN RT2 withdrawals: if refresh messages are sent | avoid unnecessary EVPN RT2 withdrawals; if refresh messages are sent | |||
| before the corresponding BD Bridge-Table and Proxy-ARP/ND age-time | before the corresponding BD Bridge-Table and Proxy ARP/ND age-time | |||
| for a given entry expires, inactive but existing hosts will reply, | for a given entry expires, inactive but existing hosts will reply, | |||
| refreshing the entry and therefore avoiding unnecessary EVPN MAC/IP | refreshing the entry and therefore avoiding unnecessary EVPN MAC/IP | |||
| Advertisement withdrawals in EVPN. Both entries (MAC in the BD and | Advertisement withdrawals in EVPN. Both entries (MAC in the BD and | |||
| IP->MAC in Proxy-ARP/ND) are reset when the owner replies to the ARP/ | IP->MAC in the Proxy ARP/ND) are reset when the owner replies to the | |||
| ND probe. If there is no response to the ARP/ND probe, the MAC and | ARP/ND probe. If there is no response to the ARP/ND probe, the MAC | |||
| IP->MAC entries will be legitimately flushed and the RT2s withdrawn. | and IP->MAC entries will be legitimately flushed and the RT2s | |||
| withdrawn. | ||||
| 3.6. Flood (to Remote PEs) Handling | 3.6. Flood (to Remote PEs) Handling | |||
| The Proxy-ARP/ND function implicitly helps reducing the flooding of | The Proxy ARP/ND function implicitly helps reduce the flooding of ARP | |||
| ARP Request and NS messages to remote PEs in an EVPN network. | Requests and NS messages to remote PEs in an EVPN network. However, | |||
| However, in certain use cases, the flooding of ARP/NS/NA messages | in certain use cases, the flooding of ARP/NS/NA messages (and even | |||
| (and even the unknown unicast flooding) to remote PEs can be | the unknown unicast flooding) to remote PEs can be suppressed | |||
| suppressed completely in an EVPN network. | completely in an EVPN network. | |||
| For instance, in an IXP network, since all the participant CEs are | 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 | well known and will not move to a different PE, the IP->MAC entries | |||
| for the local CEs may be all provisioned on the PEs by a management | for the local CEs may be all provisioned on the PEs by a management | |||
| system. Assuming the entries for the CEs are all provisioned on the | 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 | local PE, a given Proxy ARP/ND table will only contain static and | |||
| EVPN-learned entries. In this case, the operator may choose to | EVPN-learned entries. In this case, the operator may choose to | |||
| suppress the flooding of ARP/NS/NA from the local PE to the remote | suppress the flooding of ARP/NS/NA from the local PE to the remote | |||
| PEs completely. | PEs completely. | |||
| The flooding may also be suppressed completely in IXP networks with | The flooding may also be suppressed completely in IXP networks with | |||
| dynamic Proxy-ARP/ND entries assuming that all the CEs are directly | dynamic Proxy ARP/ND entries assuming that all the CEs are directly | |||
| connected to the PEs and they all advertise their presence with a | connected to the PEs and that they all advertise their presence with | |||
| GARP/unsolicited-NA when they connect to the network. If any of | a GARP/unsolicited-NA when they connect to the network. If any of | |||
| those two assumptions is not true and any of the PEs may not learn | those two assumptions are not true and any of the PEs may not learn | |||
| all the local Proxy-ARP/ND entries, flooding of the ARP/NS/NA | all the local Proxy ARP/ND entries, flooding of the ARP/NS/NA | |||
| messages from the local PE to the remote PEs SHOULD NOT be | messages from the local PE to the remote PEs SHOULD NOT be | |||
| suppressed, or the address resolution process for some CEs will not | suppressed, or the address resolution process for some CEs will not | |||
| be completed. | be completed. | |||
| In networks where fast mobility is expected (DC use case), it is NOT | In networks where fast mobility is expected (DC use case), it is NOT | |||
| RECOMMENDED to suppress the flooding of unknown ARP-Requests/NS or | RECOMMENDED to suppress the flooding of unknown ARP Requests / NS | |||
| GARPs/unsolicited-NAs. Unknown ARP-Requests/NS refer to those ARP- | messages or GARPs/unsolicited-NAs. Unknown ARP Requests / NS | |||
| Request/NS messages for which the Proxy-ARP/ND lookups for the | messages refer to those ARP Requests / NS messages for which the | |||
| requested IPs do not succeed. | Proxy ARP/ND lookups for the requested IPs do not succeed. | |||
| In order to give the operator the choice to suppress/allow the | In order to give the operator the choice to suppress/allow the | |||
| flooding to remote PEs, a PE MAY support administrative options to | flooding to remote PEs, a PE MAY support administrative options to | |||
| individually suppress/allow the flooding of: | individually suppress/allow the flooding of: | |||
| o Unknown ARP-Request and NS messages. | * Unknown ARP Requests and NS messages. | |||
| o GARP and unsolicited-NA messages. | * GARP and unsolicited-NA messages. | |||
| The operator will use these options based on the expected behavior on | The operator will use these options based on the expected behavior on | |||
| the CEs. | the CEs. | |||
| 3.7. Duplicate IP Detection | 3.7. Duplicate IP Detection | |||
| The Proxy-ARP/ND function MUST support duplicate IP detection as per | The Proxy ARP/ND function MUST support duplicate IP detection as per | |||
| this section so that ARP/ND-spoofing attacks or duplicate IPs due to | this section so that ARP/ND-spoofing attacks or duplicate IPs due to | |||
| human errors can be detected. For IPv6 addresses, CEs will continue | human errors can be detected. For IPv6 addresses, CEs will continue | |||
| to carry out the DAD procedures as per [RFC4862]. The solution | to carry out the DAD procedures as per [RFC4862]. The solution | |||
| described in this section is an additional security mechanism carried | described in this section is an additional security mechanism carried | |||
| out by the PEs that guarantees IPv6 address moves between PEs are | out by the PEs that guarantees IPv6 address moves between PEs are | |||
| legitimate and not the result of an attack. [RFC6957] describes a | legitimate and not the result of an attack. [RFC6957] describes a | |||
| solution for IPv6 Duplicate Address Detection Proxy, however, it is | solution for the IPv6 Duplicate Address Detection Proxy; however, it | |||
| defined for point-to-multipoint topologies with a split-horizon | is defined for point-to-multipoint topologies with a split-horizon | |||
| forwarding, where the 'CEs' have no direct communication within the | forwarding, where the "CEs" have no direct communication within the | |||
| same L2 link and therefore it is not suitable for EVPN Broadcast | same L2 link; therefore, it is not suitable for EVPN Broadcast | |||
| Domains. In addition, the solution described in this section | Domains. In addition, the solution described in this section | |||
| includes the use of the AS-MAC for additional security. | includes the use of the AS-MAC for additional security. | |||
| ARP/ND spoofing is a technique whereby an attacker sends "fake" ARP/ | ARP/ND spoofing is a technique whereby an attacker sends "fake" ARP/ | |||
| ND messages onto a broadcast domain. Generally the aim is to | ND messages onto a Broadcast Domain. Generally, the aim is to | |||
| associate the attacker's MAC address with the IP address of another | associate the attacker's MAC address with the IP address of another | |||
| host causing any traffic meant for that IP address to be sent to the | host causing any traffic meant for that IP address to be sent to the | |||
| attacker instead. | attacker instead. | |||
| The distributed nature of EVPN and Proxy-ARP/ND allows the easy | The distributed nature of EVPN and Proxy ARP/ND allows the easy | |||
| detection of duplicated IPs in the network, in a similar way to the | detection of duplicated IPs in the network in a similar way to the | |||
| MAC duplication detection function supported by [RFC7432] for MAC | MAC duplication detection function supported by [RFC7432] for MAC | |||
| addresses. | addresses. | |||
| Duplicate IP detection monitors "IP-moves" in the Proxy-ARP/ND table | Duplicate IP detection monitors "IP-moves" in the Proxy ARP/ND table | |||
| in the following way: | in the following way: | |||
| a. When an existing active IP1->MAC1 entry is modified, a PE starts | a. When an existing active IP1->MAC1 entry is modified, a PE starts | |||
| an M-second timer (default value of M=180), and if it detects N | an M-second timer (default value of M = 180), and if it detects N | |||
| IP moves before the timer expires (default value of N=5), it | IP moves before the timer expires (default value of N = g5), it | |||
| concludes that a duplicate IP situation has occurred. An IP move | concludes that a duplicate IP situation has occurred. An IP move | |||
| is considered when, for instance, IP1->MAC1 is replaced by | is considered when, for instance, IP1->MAC1 is replaced by | |||
| IP1->MAC2 in the Proxy-ARP/ND table. Static IP->MAC entries, | IP1->MAC2 in the Proxy ARP/ND table. Static IP->MAC entries, | |||
| that is, locally provisioned or EVPN-learned entries with I=1 in | i.e., locally provisioned or EVPN-learned entries with I = 1 in | |||
| the ARP/ND Extended Community, are not subject to this procedure. | the ARP/ND Extended Community, are not subject to this procedure. | |||
| Static entries MUST NOT be overridden by dynamic Proxy-ARP/ND | Static entries MUST NOT be overridden by dynamic Proxy ARP/ND | |||
| entries. | entries. | |||
| b. In order to detect the duplicate IP faster, the PE SHOULD send a | b. In order to detect the duplicate IP faster, the PE SHOULD send a | |||
| Confirm message to the former owner of the IP. A Confirm message | Confirm message to the former owner of the IP. A Confirm message | |||
| is a unicast ARP-Request/NS message sent by the PE to the MAC | is a unicast ARP Request / NS message sent by the PE to the MAC | |||
| addresses that previously owned the IP, when the MAC changes in | addresses that previously owned the IP, when the MAC changes in | |||
| the Proxy-ARP/ND table. The Confirm message uses a sender's IP | the Proxy ARP/ND table. The Confirm message uses a sender's IP | |||
| 0.0.0.0 in case of ARP (if the PE has an IP address in the subnet | 0.0.0.0 in case of ARP (if the PE has an IP address in the | |||
| then it MAY use it) and an IPv6 Link Local Address in case of NS. | subnet, then it MAY use it) and an IPv6 Link Local Address in | |||
| case of NS. If the PE does not receive an answer within a given | ||||
| If the PE does not receive an answer within a given time, the new | time, the new entry will be confirmed and activated. The default | |||
| entry will be confirmed and activated. The default RECOMMENDED | RECOMMENDED time to receive the confirmation is 30 seconds. In | |||
| time to receive the confirmation is 30 seconds. In case of | case of spoofing, for instance, if IP1->MAC1 moves to IP1->MAC2, | |||
| spoofing, for instance, if IP1->MAC1 moves to IP1->MAC2, the PE | the PE may send a unicast ARP Request / NS message for IP1 with | |||
| may send a unicast ARP-Request/NS message for IP1 with MAC DA= | MAC DA = MAC1 and MAC SA = PE's MAC. This will force the | |||
| MAC1 and MAC SA= PE's MAC. This will force the legitimate owner | legitimate owner to respond if the move to MAC2 was spoofed and | |||
| to respond if the move to MAC2 was spoofed, and make the PE issue | make the PE issue another Confirm message, this time to MAC DA = | |||
| another Confirm message, this time to MAC DA= MAC2. If both, | MAC2. If both, the legitimate owner and spoofer keep replying to | |||
| legitimate owner and spoofer keep replying to the Confirm | the Confirm message. The PE would then detect the duplicate IP | |||
| message, the PE will detect the duplicate IP within the M-second | within the M-second timer, and a response would be triggered as | |||
| timer: | follows: | |||
| - If the IP1->MAC1 pair was previously owned by the spoofer and | * If the IP1->MAC1 pair was previously owned by the spoofer and | |||
| the new IP1->MAC2 was from a valid CE, then the issued Confirm | the new IP1->MAC2 was from a valid CE, then the issued Confirm | |||
| message would trigger a response from the spoofer. | message would trigger a response from the spoofer. | |||
| - If it were the other way around, that is, IP1->MAC1 was | * If it were the other way around, that is, IP1->MAC1 was | |||
| previously owned by a valid CE, the Confirm message would | previously owned by a valid CE, the Confirm message would | |||
| trigger a response from the CE. | trigger a response from the CE. | |||
| Either way, if this process continues, then duplicate | Either way, if this process continues, then duplicate | |||
| detection will kick in. | detection will kick in. | |||
| c. Upon detecting a duplicate IP situation: | c. Upon detecting a duplicate IP situation: | |||
| 1. The entry in duplicate detected state cannot be updated with | 1. The entry in duplicate detected state cannot be updated with | |||
| new dynamic or EVPN-learned entries for the same IP. The | new dynamic or EVPN-learned entries for the same IP. The | |||
| operator MAY override the entry, though, with a static | operator MAY override the entry, though, with a static | |||
| IP->MAC. | IP->MAC. | |||
| 2. The PE SHOULD alert the operator and stop responding to ARP/ | 2. The PE SHOULD alert the operator and stop responding to ARP/ | |||
| NS for the duplicate IP until a corrective action is taken. | NS for the duplicate IP until a corrective action is taken. | |||
| 3. Optionally the PE MAY associate an "anti-spoofing-mac" (AS- | 3. Optionally, the PE MAY associate an "anti-spoofing-mac" (AS- | |||
| MAC) to the duplicate IP in the Proxy-ARP/ND table. The PE | MAC) to the duplicate IP in the Proxy ARP/ND table. The PE | |||
| will send a GARP/unsolicited-NA message with IP1->AS-MAC to | will send a GARP/unsolicited-NA message with IP1->AS-MAC to | |||
| the local CEs as well as an RT2 (with IP1->AS-MAC) to the | the local CEs as well as an RT2 (with IP1->AS-MAC) to the | |||
| remote PEs. This will update the ARP/ND caches on all the | remote PEs. This will update the ARP/ND caches on all the | |||
| CEs in the BD, and hence all the CEs in the BD will use the | CEs in the BD; hence, all the CEs in the BD will use the AS- | |||
| AS-MAC as MAC DA when sending traffic to IP1. This procedure | MAC as MAC DA when sending traffic to IP1. This procedure | |||
| prevents the spoofer from attracting any traffic for IP1. | prevents the spoofer from attracting any traffic for IP1. | |||
| Since the AS-MAC is a managed MAC address known by all the | Since the AS-MAC is a managed MAC address known by all the | |||
| PEs in the BD, all the PEs MAY apply filters to drop and/or | PEs in the BD, all the PEs MAY apply filters to drop and/or | |||
| log any frame with MAC DA= AS-MAC. The advertisement of the | log any frame with MAC DA = AS-MAC. The advertisement of the | |||
| AS-MAC as a "black-hole MAC" (by using an indication in the | AS-MAC as a "drop-MAC" (by using an indication in the RT2) | |||
| RT2) that can be used directly in the BD to drop frames is | that can be used directly in the BD to drop frames is for | |||
| for further study. | further study. | |||
| d. The duplicate IP situation will be cleared when a corrective | d. The duplicate IP situation will be cleared when a corrective | |||
| action is taken by the operator, or alternatively after a HOLD- | action is taken by the operator or, alternatively, after a HOLD- | |||
| DOWN timer (default value of 540 seconds). | DOWN timer (default value of 540 seconds). | |||
| The values of M, N and HOLD-DOWN timer SHOULD be a configurable | The values of M, N, and HOLD-DOWN timer SHOULD be a configurable | |||
| administrative option to allow for the required flexibility in | administrative option to allow for the required flexibility in | |||
| different scenarios. | different scenarios. | |||
| For Proxy-ND, the Duplicate IP Detection described in this section | For Proxy ND, the duplicate IP detection described in this section | |||
| SHOULD only monitor IP moves for IP->MACs learned from NA messages | 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 | with O Flag = 1. NA messages with O Flag = 0 would not override the | |||
| cache entries for an existing IP, and therefore the procedure in this | ND cache entries for an existing IP; therefore, the procedure in this | |||
| section would not detect duplicate IPs. This Duplicate IP Detection | section would not detect duplicate IPs. This duplicate IP detection | |||
| for IPv6 SHOULD be disabled when the IPv6 "anycast" capability is | for IPv6 SHOULD be disabled when the IPv6 "anycast" capability is | |||
| activated in a given BD. | activated in a given BD. | |||
| 4. Solution Benefits | 4. Solution Benefits | |||
| The solution described in this document provides the following | The solution described in this document provides the following | |||
| benefits: | benefits: | |||
| a. The solution may suppress completely the flooding of the ARP/ND | a. May completely suppress the flooding of the ARP/ND messages in | |||
| messages in the EVPN network, assuming that all the CE IP->MAC | the EVPN network, assuming that all the CE IP->MAC addresses | |||
| addresses local to the PEs are known or provisioned on the PEs | local to the PEs are known or provisioned on the PEs from a | |||
| from a management system. Note that in this case, the unknown | management system. Note that in this case, the unknown unicast | |||
| unicast flooded traffic can also be suppressed, since all the | flooded traffic can also be suppressed, since all the expected | |||
| expected unicast traffic will be destined to known MAC addresses | unicast traffic will be destined to known MAC addresses in the PE | |||
| in the PE BDs. | BDs. | |||
| b. The solution reduces significantly the flooding of the ARP/ND | b. Significantly reduces the flooding of the ARP/ND messages in the | |||
| messages in the EVPN network, assuming that some or all the CE | EVPN network, assuming that some or all the CE IP->MAC addresses | |||
| IP->MAC addresses are learned on the data plane by snooping ARP/ | are learned on the data plane by snooping ARP/ND messages issued | |||
| ND messages issued by the CEs. | by the CEs. | |||
| c. The solution provides a way to refresh periodically the CE | c. Provides a way to refresh periodically the CE IP->MAC entries | |||
| IP->MAC entries learned through the data plane, so that the | learned through the data plane so that the IP->MAC entries are | |||
| IP->MAC entries are not withdrawn by EVPN when they age out | not withdrawn by EVPN when they age out unless the CE is not | |||
| unless the CE is not active anymore. This option helps reducing | active anymore. This option helps reducing the EVPN control | |||
| the EVPN control plane overhead in a network with active CEs that | plane overhead in a network with active CEs that do not send | |||
| do not send packets frequently. | packets frequently. | |||
| d. Provides a mechanism to detect duplicate IP addresses and avoid | d. Provides a mechanism to detect duplicate IP addresses and avoid | |||
| ARP/ND-spoof attacks or the effects of duplicate addresses due to | ARP/ND-spoof attacks or the effects of duplicate addresses due to | |||
| human errors. | human errors. | |||
| 5. Deployment Scenarios | 5. Deployment Scenarios | |||
| Four deployment scenarios with different levels of ARP/ND control are | Four deployment scenarios with different levels of ARP/ND control are | |||
| available to operators using this solution, depending on their | available to operators using this solution depending on their | |||
| requirements to manage ARP/ND: all dynamic learning, all dynamic | requirements to manage ARP/ND: all dynamic learning, all dynamic | |||
| learning with Proxy-ARP/ND, hybrid dynamic learning and static | learning with Proxy ARP/ND, hybrid dynamic learning and static | |||
| provisioning with Proxy-ARP/ND, and all static provisioning with | provisioning with Proxy ARP/ND, and all static provisioning with | |||
| Proxy-ARP/ND. | Proxy ARP/ND. | |||
| 5.1. All Dynamic Learning | 5.1. All Dynamic Learning | |||
| In this scenario for minimum security and mitigation, EVPN is | In this scenario for minimum security and mitigation, EVPN is | |||
| deployed in the BD with the Proxy-ARP/ND function shutdown. PEs do | deployed in the BD with the Proxy ARP/ND function shutdown. PEs do | |||
| not intercept ARP/ND requests and flood all requests issued by the | not intercept ARP/ND requests and flood all requests issued by the | |||
| CEs, as a conventional layer-2 network among those CEs would do. | CEs as a conventional Layer 2 network among those CEs would suffice. | |||
| While no ARP/ND mitigation is used in this scenario, the operator can | While no ARP/ND mitigation is used in this scenario, the operator can | |||
| still take advantage of EVPN features such as control plane learning | still take advantage of EVPN features such as control plane learning | |||
| and all-active multihoming in the peering network. | and all-active multihoming in the peering network. | |||
| Although this option does not require any of the procedures described | Although this option does not require any of the procedures described | |||
| in this document, it is added as baseline/default option for | in this document, it is added as a baseline/default option for | |||
| completeness. This option is equivalent to VPLS as far as ARP/ND is | completeness. This option is equivalent to VPLS as far as ARP/ND is | |||
| concerned. The options described in Section 5.2, Section 5.3 and | concerned. The options described in Sections 5.2, 5.3, and 5.4 are | |||
| Section 5.4 are only possible in EVPN networks in combination with | only possible in EVPN networks in combination with their Proxy ARP/ND | |||
| their Proxy-ARP/ND capabilities. | capabilities. | |||
| 5.2. Dynamic Learning with Proxy-ARP/ND | 5.2. Dynamic Learning with Proxy ARP/ND | |||
| This scenario minimizes flooding while enabling dynamic learning of | This scenario minimizes flooding while enabling dynamic learning of | |||
| IP->MAC entries. The Proxy-ARP/ND function is enabled in the BDs of | IP->MAC entries. The Proxy ARP/ND function is enabled in the BDs of | |||
| the EVPN PEs, so that the PEs snoop ARP/ND messages issued by the CEs | the EVPN PEs so that the PEs snoop ARP/ND messages issued by the CEs | |||
| and respond to CE ARP-requests/NS messages. | and respond to CE ARP Requests / NS messages. | |||
| PEs will flood requests if the entry is not in their Proxy table. | PEs will flood requests if the entry is not in their Proxy table. | |||
| Any unknown source IP->MAC entries will be learned and advertised in | Any unknown source IP->MAC entries will be learned and advertised in | |||
| EVPN, and traffic to unknown entries is discarded at the ingress PE. | EVPN, and traffic to unknown entries is discarded at the ingress PE. | |||
| This scenario makes use of the Learning, Reply and Maintenance sub- | This scenario makes use of the Learning, Reply, and Maintenance sub- | |||
| functions, with an optional use of the Unicast-forward and Duplicate | functions, with an optional use of the Unicast-forward and duplicate | |||
| IP detection sub-functions. The Flood handling sub-function uses | IP detection sub-functions. The Flood handling sub-function uses | |||
| default flooding for unknown ARP-Request/NS messages. | default flooding for unknown ARP Requests / NS messages. | |||
| 5.3. Hybrid Dynamic Learning and Static Provisioning with Proxy-ARP/ND | 5.3. Hybrid Dynamic Learning and Static Provisioning with Proxy ARP/ND | |||
| Some IXPs and other operators want to protect particular hosts on the | Some IXPs and other operators want to protect particular hosts on the | |||
| BD while allowing dynamic learning of CE addresses. For example, an | BD while allowing dynamic learning of CE addresses. For example, an | |||
| operator may want to configure static IP->MAC entries for management | operator may want to configure static IP->MAC entries for management | |||
| and infrastructure hosts that provide critical services. In this | and infrastructure hosts that provide critical services. In this | |||
| scenario, static entries are provisioned from the management plane | scenario, static entries are provisioned from the management plane | |||
| for protected IP->MAC addresses, and dynamic learning with Proxy-ARP/ | for protected IP->MAC addresses, and dynamic learning with Proxy ARP/ | |||
| ND is enabled as described in Section 5.2 on the BD. | ND is enabled as described in Section 5.2 on the BD. | |||
| This scenario makes use of the same sub-functions as in Section 5.2, | This scenario makes use of the same sub-functions as in Section 5.2 | |||
| but adding static entries added by the Learning sub-function. | but with static entries added by the Learning sub-function. | |||
| 5.4. All Static Provisioning with Proxy-ARP/ND | 5.4. All Static Provisioning with Proxy ARP/ND | |||
| For a solution that maximizes security and eliminates flooding and | For a solution that maximizes security and eliminates flooding and | |||
| unknown unicast in the peering network, all IP->MAC entries are | unknown unicast in the peering network, all IP->MAC entries are | |||
| provisioned from the management plane. The Proxy-ARP/ND function is | provisioned from the management plane. The Proxy ARP/ND function is | |||
| enabled in the BDs of the EVPN PEs, so that the PEs intercept and | enabled in the BDs of the EVPN PEs so that the PEs intercept and | |||
| respond to CE requests. Dynamic learning and ARP/ND snooping is | respond to CE requests. Dynamic learning and ARP/ND snooping is | |||
| disabled so that ARP-Requests and NS to unknown IPs are discarded at | disabled so that ARP Requests and NS messages to unknown IPs are | |||
| the ingress PE. This scenario provides an operator the most control | discarded at the ingress PE. This scenario provides an operator the | |||
| over IP->MAC entries and allows an operator to manage all entries | most control over IP->MAC entries and allows an operator to manage | |||
| from a management system. | all entries from a management system. | |||
| In this scenario, the Learning sub-function is limited to static | In this scenario, the Learning sub-function is limited to static | |||
| entries, the Maintenance sub-function will not require any procedures | entries, the Maintenance sub-function will not require any procedures | |||
| due to the static entries, and the Flood handling sub-function will | due to the static entries, and the Flood handling sub-function will | |||
| completely suppress Unknown ARP-Requests/NS messages as well as GARP | completely suppress unknown ARP Requests / NS messages as well as | |||
| and unsolicited-NA messages. | GARP and unsolicited-NA messages. | |||
| 5.5. Example of Deployment in Internet Exchange Points | 5.5. Example of Deployment in Internet Exchange Points | |||
| Nowadays, almost all IXPs install some security rules in order to | Nowadays, almost all IXPs install some security rules in order to | |||
| protect the peering network (BD). These rules are often called port | protect the peering network (BD). These rules are often called port | |||
| security. Port security summarizes different operational steps that | security. Port security summarizes different operational steps that | |||
| limit the access to the IXP-LAN and the customer router, and controls | limit the access to the IXP-LAN and the customer router and controls | |||
| the kind of traffic that the routers are allowed to exchange (e.g., | the kind of traffic that the routers are allowed to exchange (e.g., | |||
| Ethernet, IPv4, IPv6). Due to this, the deployment scenario as | Ethernet, IPv4, and IPv6). Due to this, the deployment scenario as | |||
| described in Section 5.4 "All Static Provisioning with Proxy-ARP/ND" | described in Section 5.4, "All Static Provisioning with Proxy ARP/ | |||
| is the predominant scenario for IXPs. | ND", is the predominant scenario for IXPs. | |||
| In addition to the "All Static Provisioning" behavior, in IXP | In addition to the "All Static Provisioning" behavior, in IXP | |||
| networks it is recommended to configure the Reply Sub-Function to | networks it is recommended to configure the Reply sub-function to | |||
| 'discard' ARP-Requests/NS messages with unrecognized options. | "discard" ARP Requests / NS messages with unrecognized options. | |||
| At IXPs, customers usually follow a certain operational life-cycle. | At IXPs, customers usually follow a certain operational life cycle. | |||
| For each step of the operational life-cycle specific operational | For each step of the operational life cycle, specific operational | |||
| procedures are executed. | procedures are executed. | |||
| The following describes the operational procedures that are needed to | The following describes the operational procedures that are needed to | |||
| guarantee port security throughout the life-cycle of a customer with | guarantee port security throughout the life cycle of a customer with | |||
| focus on EVPN features: | focus on EVPN features: | |||
| 1. A new customer is connected the first time to the IXP: | 1. A new customer is connected the first time to the IXP: | |||
| Before the connection between the customer router and the IXP-LAN | Before the connection between the customer router and the IXP-LAN | |||
| is activated, the MAC of the router is allow-listed on the IXP's | is activated, the MAC of the router is allowlisted on the IXP's | |||
| switch port. All other MAC addresses are blocked. Pre-defined | switch port. All other MAC addresses are blocked. Pre-defined | |||
| IPv4 and IPv6 addresses of the IXP peering network space are | IPv4 and IPv6 addresses of the IXP peering network space are | |||
| configured at the customer router. The IP->MAC static entries | configured at the customer router. The IP->MAC static entries | |||
| (IPv4 and IPv6) are configured in the management system of the | (IPv4 and IPv6) are configured in the management system of the | |||
| IXP for the customer's port in order to support Proxy-ARP/ND. | IXP for the customer's port in order to support Proxy ARP/ND. | |||
| In case a customer uses multiple ports aggregated to a single | In case a customer uses multiple ports aggregated to a single | |||
| logical port (LAG) some vendors randomly select the MAC address | logical port (LAG), some vendors randomly select the MAC address | |||
| of the LAG from the different MAC addresses assigned to the | of the LAG from the different MAC addresses assigned to the | |||
| ports. In this case the static entry will be used associated to | ports. In this case, the static entry will be used and | |||
| a list of allowed MACs. | associated to a list of allowed MACs. | |||
| 2. Replacement of customer router: | 2. Replacement of customer router: | |||
| If a customer router is about to be replaced, the new MAC | If a customer router is about to be replaced, the new MAC | |||
| address(es) must be installed in the management system besides | address(es) must be installed in the management system in | |||
| the MAC address(es) of the currently connected router. This | addition to the MAC address(es) of the currently connected | |||
| allows the customer to replace the router without any active | router. This allows the customer to replace the router without | |||
| involvement of the IXP operator. For this, static entries are | any active involvement of the IXP operator. For this, static | |||
| also used. After the replacement takes place, the MAC | entries are also used. After the replacement takes place, the | |||
| address(es) of the replaced router can be removed. | MAC address(es) of the replaced router can be removed. | |||
| 3. Decommissioning a customer router | 3. Decommissioning a customer router: | |||
| If a customer router is decommissioned, the router is | If a customer router is decommissioned, the router is | |||
| disconnected from the IXP PE. Right after that, the MAC | disconnected from the IXP PE. Right after that, the MAC | |||
| address(es) of the router and IP->MAC bindings can be removed | address(es) of the router and IP->MAC bindings can be removed | |||
| from the management system. | from the management system. | |||
| 5.6. Example of Deployment in Data Centers | 5.6. Example of Deployment in Data Centers | |||
| DCs normally have different requirements than IXPs in terms of Proxy- | DCs normally have different requirements than IXPs in terms of Proxy | |||
| ARP/ND. Some differences are listed below: | ARP/ND. Some differences are listed below: | |||
| a. The required mobility in virtualized DCs makes the "Dynamic | a. The required mobility in virtualized DCs makes the "Dynamic | |||
| Learning" or "Hybrid Dynamic and Static Provisioning" models more | Learning" or "Hybrid Dynamic and Static Provisioning" models more | |||
| appropriate than the "All Static Provisioning" model. | appropriate than the "All Static Provisioning" model. | |||
| b. IPv6 'anycast' may be required in DCs, while it is typically not | b. IPv6 "anycast" may be required in DCs, while it is typically not | |||
| a requirement in IXP networks. Therefore if the DC needs IPv6 | a requirement in IXP networks. Therefore, if the DC needs IPv6 | |||
| anycast addresses, the "anycast" capability will be explicitly | anycast addresses, the "anycast" capability will be explicitly | |||
| enabled in the Proxy-ND function, hence the Proxy-ND sub- | enabled in the Proxy ND function and hence the Proxy ND sub- | |||
| functions modified accordingly. For instance, if IPv6 'anycast' | functions modified accordingly. For instance, if IPv6 "anycast" | |||
| is enabled in the Proxy-ND function, the Duplicate IP Detection | is enabled in the Proxy ND function, the duplicate IP detection | |||
| procedure in Section 3.7 must be disabled. | procedure in Section 3.7 must be disabled. | |||
| c. DCs may require special options on ARP/ND as opposed to the | c. DCs may require special options on ARP/ND as opposed to the | |||
| address resolution function, which is the only one typically | address resolution function, which is the only one typically | |||
| required in IXPs. Based on that, the Reply Sub-function may be | required in IXPs. Based on that, the Reply sub-function may be | |||
| modified to forward or discard unknown options. | modified to forward or discard unknown options. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| The security considerations of [RFC7432] and [RFC9047] apply to this | The security considerations of [RFC7432] and [RFC9047] apply to this | |||
| document too. Note that EVPN does not inherently provide | document too. Note that EVPN does not inherently provide | |||
| cryptographic protection (including confidentiality protection). | cryptographic protection (including confidentiality protection). | |||
| The procedures in this document reduce the amount of ARP/ND message | The procedures in this document reduce the amount of ARP/ND message | |||
| flooding, which in itself provides a protection to "slow path" | flooding, which in itself provides a protection to "slow path" | |||
| software processors of routers and Tenant Systems in large BDs. The | software processors of routers and Tenant Systems in large BDs. The | |||
| ARP/ND requests that are replied by the Proxy-ARP/ND function (hence | ARP/ND requests that are replied to by the Proxy ARP/ND function | |||
| not flooded) are normally targeted to existing hosts in the BD. ARP/ | (hence not flooded) are normally targeted to existing hosts in the | |||
| ND requests targeted to absent hosts are still normally flooded; | BD. ARP/ND requests targeted to absent hosts are still normally | |||
| however, the suppression of Unknown ARP-Requests and NS messages | flooded; however, the suppression of unknown ARP Requests and NS | |||
| described in Section 3.6 can provide an additional level of security | messages described in Section 3.6 can provide an additional level of | |||
| against ARP-Requests/NS messages issued to non-existing hosts. | security against ARP Requests / NS messages issued to non-existing | |||
| hosts. | ||||
| While the unicast-forward and/or flood suppression sub-functions | While the unicast-forward and/or flood suppression sub-functions | |||
| provide an added security mechanism for the BD, they can also | provide an added security mechanism for the BD, they can also | |||
| increase the risk of blocking the service for a CE if the EVPN PEs | increase the risk of blocking the service for a CE if the EVPN PEs | |||
| cannot provide the ARP/ND resolution that the CE needs. | cannot provide the ARP/ND resolution that the CE needs. | |||
| The solution also provides protection against Denial Of Service | The solution also provides protection against Denial-of-Service (DoS) | |||
| attacks that use ARP/ND-spoofing as a first step. The Duplicate IP | 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.7 | detection and the use of an AS-MAC as explained in Section 3.7 | |||
| protects the BD against ARP/ND spoofing. | protects the BD against ARP/ND spoofing. | |||
| The Proxy-ARP/ND function specified in this document does not allow | The Proxy ARP/ND function specified in this document does not allow | |||
| the learning of an IP address mapped to multiple MAC addresses in the | for the learning of an IP address mapped to multiple MAC addresses in | |||
| same table, unless the "anycast" capability is enabled (and only in | the same table unless the "anycast" capability is enabled (and only | |||
| case of Proxy-ND). When "anycast" is enabled in the Proxy-ND | in case of Proxy ND). When "anycast" is enabled in the Proxy ND | |||
| function, the number of allowed entries for the same IP address MUST | function, the number of allowed entries for the same IP address MUST | |||
| be limited by the operator to prevent DoS attacks that attempt to | be limited by the operator to prevent DoS attacks that attempt to | |||
| fill the Proxy-ND table with a significant number of entries for the | fill the Proxy ND table with a significant number of entries for the | |||
| same IP. | same IP. | |||
| The document provides some examples and guidelines that can be used | This document provides some examples and guidelines that can be used | |||
| by IXPs in their EVPN BDs. When EVPN and its associated Proxy-ARP/ND | by IXPs in their EVPN BDs. When EVPN and its associated Proxy ARP/ND | |||
| function are used in IXP networks, they provide ARP/ND security and | function are used in IXP networks, they provide ARP/ND security and | |||
| mitigation. IXPs must still employ additional security mechanisms | mitigation. IXPs must still employ additional security mechanisms | |||
| that protect the peering network as per the established BCPs such as | that protect the peering network as per the established BCPs such as | |||
| the ones described in [Euro-IX-BCP]. For example, IXPs should | the ones described in [EURO-IX-BCP]. For example, IXPs should | |||
| disable all unneeded control protocols, and block unwanted protocols | disable all unneeded control protocols and block unwanted protocols | |||
| from CEs so that only IPv4, ARP and IPv6 Ethertypes are permitted on | from CEs so that only IPv4, ARP, and IPv6 Ethertypes are permitted on | |||
| the peering network. In addition, port security features and ACLs | the peering network. In addition, port security features and ACLs | |||
| can provide an additional level of security. | can provide an additional level of security. | |||
| Finally, it is worth noting that the Proxy-ARP/ND solution in this | Finally, it is worth noting that the Proxy ARP/ND solution in this | |||
| document will not work if there is a mechanism securing ARP/ND | document will not work if there is a mechanism securing ARP/ND | |||
| exchanges among CEs, because the PE is not able to secure the | exchanges among CEs because the PE is not able to secure the | |||
| "proxied" ND messages. | "proxied" ND messages. | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| No IANA considerations. | This document has no IANA actions. | |||
| 8. Acknowledgments | ||||
| The authors want to thank Ranganathan Boovaraghavan, Sriram | ||||
| Venkateswaran, Manish Krishnan, Seshagiri Venugopal, Tony Przygienda, | ||||
| Robert Raszuk and Iftekhar Hussain for their review and | ||||
| contributions. Thank you to Oliver Knapp as well, for his detailed | ||||
| review. | ||||
| 9. Contributors | ||||
| In addition to the authors listed on the front page, the following | ||||
| co-authors have also contributed to this document: | ||||
| Wim Henderickx | ||||
| Nokia | ||||
| Daniel Melzer | ||||
| DE-CIX Management GmbH | ||||
| Erik Nordmark | 8. References | |||
| Zededa | ||||
| 10. References | 8.1. Normative References | |||
| 10.1. Normative References | [RFC0826] Plummer, D., "An Ethernet Address Resolution Protocol: Or | |||
| Converting Network Protocol Addresses to 48.bit Ethernet | ||||
| Address for Transmission on Ethernet Hardware", STD 37, | ||||
| RFC 826, DOI 10.17487/RFC0826, November 1982, | ||||
| <https://www.rfc-editor.org/info/rfc826>. | ||||
| [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based | Requirement Levels", BCP 14, RFC 2119, | |||
| Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February | DOI 10.17487/RFC2119, March 1997, | |||
| 2015, <https://www.rfc-editor.org/info/rfc7432>. | <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>. | |||
| [RFC0826] Plummer, D., "An Ethernet Address Resolution Protocol: Or | ||||
| Converting Network Protocol Addresses to 48.bit Ethernet | ||||
| Address for Transmission on Ethernet Hardware", STD 37, | ||||
| RFC 826, DOI 10.17487/RFC0826, November 1982, | ||||
| <https://www.rfc-editor.org/info/rfc826>. | ||||
| [RFC5227] Cheshire, S., "IPv4 Address Conflict Detection", RFC 5227, | [RFC5227] Cheshire, S., "IPv4 Address Conflict Detection", RFC 5227, | |||
| DOI 10.17487/RFC5227, July 2008, | DOI 10.17487/RFC5227, July 2008, | |||
| <https://www.rfc-editor.org/info/rfc5227>. | <https://www.rfc-editor.org/info/rfc5227>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., | |||
| Requirement Levels", BCP 14, RFC 2119, | Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based | |||
| DOI 10.17487/RFC2119, March 1997, | Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February | |||
| <https://www.rfc-editor.org/info/rfc2119>. | 2015, <https://www.rfc-editor.org/info/rfc7432>. | |||
| [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>. | |||
| [RFC9047] Rabadan, J., Ed., Sathappan, S., Nagaraj, K., and W. Lin, | [RFC9047] Rabadan, J., Ed., Sathappan, S., Nagaraj, K., and W. Lin, | |||
| "Propagation of ARP/ND Flags in an Ethernet Virtual | "Propagation of ARP/ND Flags in an Ethernet Virtual | |||
| Private Network (EVPN)", RFC 9047, DOI 10.17487/RFC9047, | Private Network (EVPN)", RFC 9047, DOI 10.17487/RFC9047, | |||
| June 2021, <https://www.rfc-editor.org/info/rfc9047>. | June 2021, <https://www.rfc-editor.org/info/rfc9047>. | |||
| 10.2. Informative References | 8.2. Informative References | |||
| [Euro-IX-BCP] | [EURO-IX-BCP] | |||
| Euro-IX, "European Internet Exchange Association Best | Euro-IX, "European Internet Exchange Association", | |||
| Practises - | <https://www.euro-ix.net/en/forixps/set-ixp/ixp-bcops>. | |||
| https://www.euro-ix.net/en/forixps/set-ixp/ixp-bcops/". | ||||
| [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | ||||
| Address Autoconfiguration", RFC 4862, | ||||
| DOI 10.17487/RFC4862, September 2007, | ||||
| <https://www.rfc-editor.org/info/rfc4862>. | ||||
| [RFC6820] Narten, T., Karir, M., and I. Foo, "Address Resolution | [RFC6820] Narten, T., Karir, M., and I. Foo, "Address Resolution | |||
| Problems in Large Data Center Networks", RFC 6820, | Problems in Large Data Center Networks", RFC 6820, | |||
| DOI 10.17487/RFC6820, January 2013, | DOI 10.17487/RFC6820, January 2013, | |||
| <https://www.rfc-editor.org/info/rfc6820>. | <https://www.rfc-editor.org/info/rfc6820>. | |||
| [RFC6957] Costa, F., Combes, J-M., Ed., Pougnard, X., and H. Li, | [RFC6957] Costa, F., Combes, J-M., Ed., Pougnard, X., and H. Li, | |||
| "Duplicate Address Detection Proxy", RFC 6957, | "Duplicate Address Detection Proxy", RFC 6957, | |||
| DOI 10.17487/RFC6957, June 2013, | DOI 10.17487/RFC6957, June 2013, | |||
| <https://www.rfc-editor.org/info/rfc6957>. | <https://www.rfc-editor.org/info/rfc6957>. | |||
| [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | Acknowledgments | |||
| Address Autoconfiguration", RFC 4862, | ||||
| DOI 10.17487/RFC4862, September 2007, | The authors want to thank Ranganathan Boovaraghavan, Sriram | |||
| <https://www.rfc-editor.org/info/rfc4862>. | Venkateswaran, Manish Krishnan, Seshagiri Venugopal, Tony Przygienda, | |||
| Robert Raszuk, and Iftekhar Hussain for their review and | ||||
| contributions. Thank you to Oliver Knapp as well for his detailed | ||||
| review. | ||||
| Contributors | ||||
| In addition to the authors listed on the front page, the following | ||||
| coauthors have also contributed to this document: | ||||
| Wim Henderickx | ||||
| Nokia | ||||
| Daniel Melzer | ||||
| DE-CIX Management GmbH | ||||
| Erik Nordmark | ||||
| Zededa | ||||
| 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 | |||
| Greg Hankins | Greg Hankins | |||
| Nokia | Nokia | |||
| Email: greg.hankins@nokia.com | Email: greg.hankins@nokia.com | |||
| Thomas King | Thomas King | |||
| DE-CIX Management GmbH | DE-CIX Management GmbH | |||
| End of changes. 240 change blocks. | ||||
| 618 lines changed or deleted | 624 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/ | ||||