| rfc9136xml2.original.xml | rfc9136.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!ENTITY RFC7432 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.7432.xml"> | ||||
| <!ENTITY RFC5512 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.5512.xml"> | ||||
| <!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.2119.xml"> | ||||
| <!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.8174.xml"> | ||||
| <!ENTITY RFC8365 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.8365.xml"> | ||||
| <!ENTITY I-D.ietf-bess-evpn-inter-subnet-forwarding SYSTEM "https://xml2rfc.ietf | ||||
| .org/public/rfc/bibxml3/reference.I-D.ietf-bess-evpn-inter-subnet-forwarding.xml | ||||
| "> | ||||
| <!ENTITY RFC4364 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.4364.xml"> | ||||
| <!ENTITY RFC7606 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.7606.xml"> | ||||
| <!ENTITY RFC7365 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.7365.xml"> | ||||
| <!ENTITY RFC5227 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.5227.xml"> | ||||
| <!ENTITY RFC7348 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | ||||
| C.7348.xml"> | ||||
| <!ENTITY I-D.ietf-nvo3-geneve SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml | ||||
| 3/reference.I-D.draft-ietf-nvo3-geneve-06.xml"> | ||||
| <!ENTITY I-D.ietf-nvo3-geneve SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml | ||||
| 3/reference.I-D.ietf-nvo3-geneve.xml"> | ||||
| ]> | ||||
| <rfc submissionType="IETF" docName="draft-ietf-bess-evpn-prefix-advertisement-11 | ||||
| " category="std" ipr="trust200902"> | ||||
| <!-- Generated by id2xml 1.5.0 on 2020-06-11T21:13:55Z --> | ||||
| <?rfc strict="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <?rfc sortrefs="no"?> | ||||
| <?rfc text-list-symbols="oo*+-"?> | ||||
| <!-- | ||||
| draft-ietf-bess-evpn-prefix-advertisement-11-manual.txt(14): Warning: Expecte | ||||
| d | ||||
| an expires indication top left, found none | ||||
| --><?rfc toc="yes"?> | ||||
| <front> | ||||
| <title abbrev="EVPN Prefix Advertisement">IP Prefix Advertisement in EVPN | ||||
| </title> | ||||
| <author initials="J." surname="Rabadan" fullname="Jorge Rabadan" role="ed | ||||
| itor"> | ||||
| <organization>Nokia</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>777 E. Middlefield Road</street> | ||||
| <city>Mountain View</city> | ||||
| <region>CA</region> | ||||
| <code>94043</code> | ||||
| <country>USA</country> | ||||
| </postal> | ||||
| <phone></phone> | ||||
| <email>jorge.rabadan@nokia.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="W." surname="Henderickx" fullname="Wim Henderickx"> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <organization>Nokia</organization> | ||||
| <address> | ||||
| <email>wim.henderickx@nokia.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="J." surname="Drake" fullname="John Drake"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" | |||
| <organization>Juniper</organization> | std" consensus="true" docName="draft-ietf-bess-evpn-prefix-advertisement-11" num | |||
| <address> | ber="9136" ipr="trust200902" obsoletes="" updates="" xml:lang="en" symRefs="true | |||
| <email>jdrake@juniper.net</email> | " sortRefs="true" tocInclude="true" version="3"> | |||
| </address> | ||||
| </author> | ||||
| <author initials="W." surname="Lin" fullname="Wen Lin"> | <front> | |||
| <organization>Juniper</organization> | <title abbrev="EVPN Prefix Advertisement">IP Prefix Advertisement in | |||
| <address> | Ethernet VPN (EVPN)</title> | |||
| <email>wlin@juniper.net</email> | <seriesInfo name="RFC" value="9136"/> | |||
| </address> | <author initials="J." surname="Rabadan" fullname="Jorge Rabadan" role="edito | |||
| </author> | r"> | |||
| <organization>Nokia</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>777 E. Middlefield Road</street> | ||||
| <city>Mountain View</city> | ||||
| <region>CA</region> | ||||
| <code>94043</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <phone/> | ||||
| <email>jorge.rabadan@nokia.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="W." surname="Henderickx" fullname="Wim Henderickx"> | ||||
| <organization>Nokia</organization> | ||||
| <address> | ||||
| <email>wim.henderickx@nokia.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="J." surname="Drake" fullname="John Drake"> | ||||
| <organization>Juniper</organization> | ||||
| <address> | ||||
| <email>jdrake@juniper.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="W." surname="Lin" fullname="Wen Lin"> | ||||
| <organization>Juniper</organization> | ||||
| <address> | ||||
| <email>wlin@juniper.net</email> | ||||
| </address> | ||||
| </author> | ||||
| <author initials="A." surname="Sajassi" fullname="Ali Sajassi"> | ||||
| <organization>Cisco</organization> | ||||
| <address> | ||||
| <email>sajassi@cisco.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <date year="2021" month="October"/> | ||||
| <workgroup>BESS Workgroup</workgroup> | ||||
| <author initials="A." surname="Sajassi" fullname="Ali Sajassi"> | <keyword>RT5</keyword> | |||
| <organization>Cisco</organization> | <keyword>RT-5</keyword> | |||
| <address> | <keyword>Type-5</keyword> | |||
| <email>sajassi@cisco.com</email> | <keyword>Interface-less</keyword> | |||
| </address> | <keyword>Interface-ful</keyword> | |||
| </author> | ||||
| <date year="2020" month="July"/> | <abstract> | |||
| <workgroup>BESS Workgroup</workgroup> | <t> | |||
| <abstract><t> | The BGP MPLS-based Ethernet VPN (EVPN) (RFC 7432) mechanism provides a | |||
| The BGP MPLS-based Ethernet VPN (EVPN) <xref target="RFC7432"/> mechanism pro | ||||
| vides a | ||||
| flexible control plane that allows intra-subnet connectivity in an | flexible control plane that allows intra-subnet connectivity in an | |||
| MPLS and/or NVO (Network Virtualization Overlay) <xref target="RFC7365"/> net | MPLS and/or Network Virtualization Overlay (NVO) (RFC 7365) network. | |||
| work. | In some networks, there is also a need for dynamic and efficient | |||
| In some networks, there is also a need for a dynamic and efficient | inter-subnet connectivity across Tenant Systems and end devices that | |||
| inter-subnet connectivity across Tenant Systems and End Devices that | ||||
| can be physical or virtual and do not necessarily participate in | can be physical or virtual and do not necessarily participate in | |||
| dynamic routing protocols. This document defines a new EVPN route | dynamic routing protocols. This document defines a new EVPN route | |||
| type for the advertisement of IP Prefixes and explains some use-case | type for the advertisement of IP prefixes and explains some use-case | |||
| examples where this new route-type is used.</t> | examples where this new route type is used.</t> | |||
| </abstract> | ||||
| </abstract> | </front> | |||
| </front> | <middle> | |||
| <section anchor="sect-1" numbered="true" toc="default"> | ||||
| <middle> | <name>Introduction</name> | |||
| <section title="Introduction" anchor="sect-1"><t> | <t><xref target="RFC7365" format="default"/> provides a framework for Data | |||
| <xref target="RFC7365"/> provides a framework for Data Center (DC) Network Vi | Center (DC) Network Virtualization | |||
| rtualization | over Layer 3 and specifies that the Network Virtualization Edge (NVE) devices | |||
| over Layer 3 and specifies that the Network Virtualization Edge devices | must provide Layer 2 and Layer 3 virtualized network services in | |||
| (NVEs) must provide layer 2 and layer 3 virtualized network services in | multi-tenant DCs. <xref target="RFC8365" format="default"/> discusses the use | |||
| multi-tenant DCs. <xref target="RFC8365"/> discusses the use of EVPN as the t | of EVPN as the technology of | |||
| echnology of | choice to provide Layer 2 or intra-subnet services in these DCs. This | |||
| choice to provide layer 2 or intra-subnet services in these DCs. This | document, along with <xref target="RFC9135" format="default"/>, specifies the | |||
| document, along with <xref target="I-D.ietf-bess-evpn-inter-subnet-forwarding | use of EVPN for Layer 3 or inter-subnet connectivity services.</t> | |||
| "/>, specifies the use of EVPN for | <t> | |||
| layer 3 or inter-subnet connectivity services.</t> | <xref target="RFC9135" format="default"/> defines some | |||
| fairly common inter-subnet forwarding scenarios where Tenant Systems (TSs) ca | ||||
| <t> | n exchange | |||
| <xref target="I-D.ietf-bess-evpn-inter-subnet-forwarding"/> defines some | packets with TSs located in remote subnets. In order to achieve this, | |||
| fairly common inter-subnet forwarding scenarios where TSes can exchange | <xref target="RFC9135" format="default"/> describes how Media Access | |||
| packets with TSes located in remote subnets. In order to achieve this, | Control (MAC) and IPs encoded in TS RT-2 routes are not only used to populate | |||
| <xref target="I-D.ietf-bess-evpn-inter-subnet-forwarding"/> describes how | MAC Virtual Routing and Forwarding (MAC-VRF) and | |||
| MAC/IPs encoded in TS RT-2 routes are not only used to populate MAC-VRF and | overlay Address Resolution Protocol (ARP) tables but also IP-VRF tables with | |||
| overlay ARP tables, but also IP-VRF tables with the encoded TS host routes | the encoded TS host routes | |||
| (/32 or /128). In some cases, EVPN may advertise IP Prefixes and therefore | (/32 or /128). In some cases, EVPN may advertise IP prefixes and therefore | |||
| provide aggregation in the IP-VRF tables, as opposed to propagate | provide aggregation in the IP-VRF tables, as opposed to propagating | |||
| individual host routes. This document complements the scenarios described | individual host routes. This document complements the scenarios described | |||
| in <xref target="I-D.ietf-bess-evpn-inter-subnet-forwarding"/> and defines | in <xref target="RFC9135" format="default"/> and defines | |||
| how EVPN may be used to advertise IP Prefixes. Interoperability between | how EVPN may be used to advertise IP prefixes. Interoperability between | |||
| EVPN and L3VPN <xref target="RFC4364"/> IP Prefix routes is out of the | EVPN and Layer 3 Virtual Private Network (VPN) <xref target="RFC4364" format= | |||
| "default"/> IP Prefix routes is out of the | ||||
| scope of this document.</t> | scope of this document.</t> | |||
| <t> | ||||
| <t> | <xref target="sect-2.1" format="default"/> describes the | |||
| <xref target="sect-2.1"/> describes the inter-subnet connectivity requirement | inter-subnet connectivity requirements in DCs. <xref | |||
| s in | target="sect-2.2" format="default"/> explains why a new EVPN route | |||
| Data Centers. <xref target="sect-2.2"/> explains why a new EVPN route type is | type is required for IP prefix advertisements. Sections <xref | |||
| required for IP Prefix advertisements. Sections 3, 4 and 5 will | target="sect-3" format="counter"/>, <xref target="sect-4" | |||
| format="counter"/>, and <xref target="sect-5" format="counter"/> will | ||||
| describe this route type and how it is used in some specific use | describe this route type and how it is used in some specific use | |||
| cases.</t> | cases.</t> | |||
| <section anchor="sect-1.1" numbered="true" toc="default"> | ||||
| <section title="Terminology" anchor="sect-1.1"><t> | <name>Terminology</name> | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t> | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUI | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | RED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", | |||
| 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, the | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bc | |||
| y appear in all | p14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and | |||
| "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described | ||||
| in BCP | ||||
| 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="d | ||||
| efault"/> when, and only when, they appear in all | ||||
| capitals, as shown here. | capitals, as shown here. | |||
| <list style="hanging" hangIndent="3"> | </t> | |||
| <t hangText="AC:">Attachment Circuit.</t> | ||||
| <t hangText="ARP:">Address Resolution Protocol.</t> | ||||
| <t hangText="BD:">Broadcast Domain. As per [RFC7432], an EVI consists | ||||
| of a single or multiple BDs. In case of VLAN-bundle and VLAN-based | ||||
| service models (see <xref target="RFC7432"/>), a BD is equivalent to | ||||
| an EVI. In case of VLAN-aware bundle service model, an EVI contains | ||||
| multiple BDs. Also, in this document, BD and subnet are equivalent | ||||
| terms.</t> | ||||
| <t hangText="BD Route Target:">refers to the Broadcast Domain | <dl indent="10"> | |||
| assigned Route Target <xref target="RFC4364"/>. In case of VLAN-aware | <dt>AC:</dt> | |||
| <dd>Attachment Circuit</dd> | ||||
| <dt>ARP:</dt> | ||||
| <dd>Address Resolution Protocol</dd> | ||||
| <dt>BD:</dt> | ||||
| <dd>Broadcast Domain. As per <xref target="RFC7432"/>, an EVI consists | ||||
| of a single BD or multiple BDs. In case of VLAN-bundle and VLAN-based | ||||
| service models (see <xref target="RFC7432" format="default"/>), a BD is e | ||||
| quivalent to | ||||
| an EVI. In case of a VLAN-aware bundle service model, an EVI contains | ||||
| multiple BDs. Also, in this document, "BD" and "subnet" are equivalent | ||||
| terms.</dd> | ||||
| <dt>BD Route Target:</dt> | ||||
| <dd>Refers to the broadcast-domain-assigned Route Target <xref | ||||
| target="RFC4364" format="default"/>. In case of a VLAN-aware | ||||
| bundle service model, all the BD instances in the MAC-VRF share the | bundle service model, all the BD instances in the MAC-VRF share the | |||
| same Route Target.</t> | same Route Target.</dd> | |||
| <dt>BT:</dt> | ||||
| <t hangText="BT:">Bridge Table. The instantiation of a BD in a | <dd>Bridge Table. The instantiation of a BD in a | |||
| MAC-VRF, as per <xref target="RFC7432"/>.</t> | MAC-VRF, as per <xref target="RFC7432" format="default"/>.</dd> | |||
| <dt>CE:</dt><dd>Customer Edge</dd> | ||||
| <t hangText="DGW:">Data Center Gateway.</t> | <dt>DA:</dt><dd>Destination Address</dd> | |||
| <dt>DGW:</dt> | ||||
| <t hangText="Ethernet A-D route:">Ethernet Auto-Discovery (A-D) | <dd>Data Center Gateway</dd> | |||
| route, as per <xref target="RFC7432"/>.</t> | <dt>Ethernet A-D Route:</dt> | |||
| <dd>Ethernet Auto-Discovery (A-D) | ||||
| <t hangText="Ethernet NVO tunnel:">refers to Network Virtualization | route, as per <xref target="RFC7432" format="default"/>.</dd> | |||
| <dt>Ethernet NVO Tunnel:</dt> | ||||
| <dd>Refers to Network Virtualization | ||||
| Overlay tunnels with Ethernet payload. Examples of this type of | Overlay tunnels with Ethernet payload. Examples of this type of | |||
| tunnels are VXLAN or GENEVE.</t> | tunnel are VXLAN or GENEVE.</dd> | |||
| <dt>EVI:</dt> | ||||
| <t hangText="EVI:">EVPN Instance spanning the NVE/PE devices that are | <dd>EVPN Instance spanning the NVE/PE devices that are | |||
| participating on that EVPN, as per <xref target="RFC7432"/>.</t> | participating on that EVPN, as per <xref target="RFC7432" format="default | |||
| "/>.</dd> | ||||
| <t hangText="EVPN:">Ethernet Virtual Private Networks, as per <xref | <dt>EVPN:</dt> | |||
| target="RFC7432"/>.</t> | <dd>Ethernet VPN, as per <xref target="RFC7432" format="default"/>.</d | |||
| d> | ||||
| <t hangText="GRE:">Generic Routing Encapsulation.</t> | <dt>GENEVE:</dt> | |||
| <dd>Generic Network Virtualization Encapsulation, as per <xref target= | ||||
| <t hangText="GW IP:">Gateway IP Address.</t> | "RFC8926" format="default"/>.</dd> | |||
| <dt>GRE:</dt> | ||||
| <t hangText="IPL:">IP Prefix Length.</t> | <dd>Generic Routing Encapsulation</dd> | |||
| <dt>GW IP:</dt> | ||||
| <t hangText="IP NVO tunnel:">it refers to Network Virtualization | <dd>Gateway IP address</dd> | |||
| Overlay tunnels with IP payload (no MAC header in the payload).</t> | <dt>IPL:</dt> | |||
| <dd>IP Prefix Length</dd> | ||||
| <t hangText="IP-VRF:">A VPN Routing and Forwarding table for IP | <dt>IP NVO Tunnel:</dt> | |||
| <dd>Refers to Network Virtualization | ||||
| Overlay tunnels with IP payload (no MAC header in the payload).</dd> | ||||
| <dt>IP-VRF:</dt> | ||||
| <dd>A Virtual Routing and Forwarding table for IP | ||||
| routes on an NVE/PE. The IP routes could be populated by EVPN and | routes on an NVE/PE. The IP routes could be populated by EVPN and | |||
| IP-VPN address families. An IP-VRF is also an instantiation of a layer | IP-VPN address families. An IP-VRF is also an instantiation of a Layer | |||
| 3 VPN in an NVE/PE.</t> | 3 VPN in an NVE/PE.</dd> | |||
| <dt>IRB:</dt> | ||||
| <t hangText="IRB:">Integrated Routing and Bridging interface. It | <dd>Integrated Routing and Bridging interface. It | |||
| connects an IP-VRF to a BD (or subnet).</t> | connects an IP-VRF to a BD (or subnet).</dd> | |||
| <dt>MAC:</dt> | ||||
| <t hangText="MAC-VRF:">A Virtual Routing and Forwarding table for | <dd>Media Access Control</dd> | |||
| Media Access Control (MAC) addresses on an NVE/PE, as per <xref | <dt>MAC-VRF:</dt> | |||
| target="RFC7432"/>. A MAC-VRF is also an instantiation of an EVI in an | <dd>A Virtual Routing and Forwarding table for | |||
| NVE/PE.</t> | MAC addresses on an NVE/PE, as per <xref target="RFC7432" format="default | |||
| "/>. A MAC-VRF is also an instantiation of an EVI in an | ||||
| <t hangText="ML:">MAC address length.</t> | NVE/PE.</dd> | |||
| <dt>ML:</dt> | ||||
| <t hangText="ND:">Neighbor Discovery Protocol.</t> | <dd>MAC Address Length</dd> | |||
| <dt>ND:</dt> | ||||
| <t hangText="NVE:">Network Virtualization Edge.</t> | <dd>Neighbor Discovery</dd> | |||
| <dt>NVE:</dt> | ||||
| <t hangText="GENEVE:">Generic Network Virtualization Encapsulation, | <dd>Network Virtualization Edge</dd> | |||
| <xref target="I-D.ietf-nvo3-geneve"/>.</t> | <dt>NVO:</dt> | |||
| <dd>Network Virtualization Overlay</dd> | ||||
| <t hangText="NVO:">Network Virtualization Overlays.</t> | <dt>PE:</dt> | |||
| <dd>Provider Edge</dd> | ||||
| <t hangText="RT-2:">EVPN route type 2, i.e., MAC/IP advertisement | <dt>RT-2:</dt> | |||
| route, as defined in <xref target="RFC7432"/>.</t> | <dd>EVPN Route Type 2, i.e., MAC/IP Advertisement | |||
| route, as defined in <xref target="RFC7432" format="default"/>.</dd> | ||||
| <t hangText="RT-5:">EVPN route type 5, i.e., IP Prefix route. As | <dt>RT-5:</dt> | |||
| defined in Section 3.</t> | <dd>EVPN Route Type 5, i.e., IP Prefix route, as | |||
| defined in <xref target="sect-3"/>.</dd> | ||||
| <t hangText="SBD:">Supplementary Broadcast Domain. A BD that does not | <dt>SBD:</dt> | |||
| have any ACs, only IRB interfaces, and it is used to provide | <dd>Supplementary Broadcast Domain. A BD that does not | |||
| have any ACs, only IRB interfaces, and is used to provide | ||||
| connectivity among all the IP-VRFs of the tenant. The SBD is only | connectivity among all the IP-VRFs of the tenant. The SBD is only | |||
| required in IP-VRF-to-IP-VRF use-cases (see <xref | required in IP-VRF-to-IP-VRF use cases (see <xref target="sect-4.4" forma | |||
| target="sect-4.4"/>.).</t> | t="default"/>).</dd> | |||
| <dt>SN:</dt> | ||||
| <t hangText="SN:">Subnet.</t> | <dd>Subnet</dd> | |||
| <dt>TS:</dt> | ||||
| <t hangText="TS:">Tenant System.</t> | <dd>Tenant System</dd> | |||
| <dt>VA:</dt> | ||||
| <t hangText="VA:">Virtual Appliance.</t> | <dd>Virtual Appliance</dd> | |||
| <dt>VM:</dt> | ||||
| <t hangText="VNI:">Virtual Network Identifier. As in [RFC8365], the | <dd>Virtual Machine</dd> | |||
| <dt>VNI:</dt> | ||||
| <dd>Virtual Network Identifier. As in <xref target="RFC8365"/>, the | ||||
| term is used as a representation of a 24-bit NVO instance identifier, | term is used as a representation of a 24-bit NVO instance identifier, | |||
| with the understanding that VNI will refer to a VXLAN Network | with the understanding that "VNI" will refer to a VXLAN Network | |||
| Identifier in VXLAN, or Virtual Network Identifier in GENEVE, | Identifier in VXLAN, or a Virtual Network Identifier in GENEVE, | |||
| etc. unless it is stated otherwise.</t> | etc., unless it is stated otherwise.</dd> | |||
| <dt>VSID:</dt> | ||||
| <t hangText="VTEP:">VXLAN Termination End Point, as in <xref | <dd>Virtual Subnet Identifier</dd> | |||
| target="RFC7348"/>.</t> | <dt>VTEP:</dt> | |||
| <dd>VXLAN Termination End Point, as per <xref target="RFC7348" format= | ||||
| <t hangText="VXLAN:">Virtual Extensible LAN, as in <xref | "default"/>.</dd> | |||
| target="RFC7348"/>.</t> | <dt>VXLAN:</dt> | |||
| <dd>Virtual eXtensible Local Area Network, as per <xref target="RFC734 | ||||
| </list> | 8" format="default"/>.</dd> | |||
| </t> | </dl> | |||
| <t>This document also assumes familiarity with the terminology of | ||||
| <t>This document also assumes familiarity with the terminology of | <xref target="RFC7365" format="default"/>, <xref target="RFC7432" format= | |||
| <xref target="RFC7432"/>, <xref target="RFC8365"/> and <xref | "default"/>, and <xref target="RFC8365"/>.</t> | |||
| target="RFC7365"/>.</t> | </section> | |||
| </section> | ||||
| </section> | <section anchor="sect-2" numbered="true" toc="default"> | |||
| <name>Problem Statement</name> | ||||
| </section> | <t> | |||
| This section describes the inter-subnet connectivity requirements in | ||||
| <section title="Problem Statement" anchor="sect-2"><t> | DCs and why a specific route type to advertise IP prefixes | |||
| This Section describes the inter-subnet connectivity requirements in | ||||
| Data Centers and why a specific route type to advertise IP Prefixes | ||||
| is needed.</t> | is needed.</t> | |||
| <section anchor="sect-2.1" numbered="true" toc="default"> | ||||
| <name>Inter-Subnet Connectivity Requirements in Data Centers</name> | ||||
| <t> | ||||
| <section title="Inter-Subnet Connectivity Requirements in Data Centers" a | <xref target="RFC7432" format="default"/> is used as the control plane for an N | |||
| nchor="sect-2.1"><t> | VO solution in DCs, where NVE devices can be located in hypervisors or | |||
| <xref target="RFC7432"/> is used as the control plane for a Network Virtualiz | Top-of-Rack (ToR) switches, as described in <xref target="RFC8365" format="de | |||
| ation | fault"/>.</t> | |||
| Overlay (NVO) solution in Data Centers (DC), where Network | <t> | |||
| Virtualization Edge (NVE) devices can be located in Hypervisors or | The following considerations apply to TSs that are | |||
| Top of Rack switches (ToRs), as described in <xref target="RFC8365"/>.</t> | physical or virtual systems identified by MAC (and possibly IP addresses) | |||
| and are connected to BDs by Attachment Circuits: | ||||
| <t> | ||||
| The following considerations apply to Tenant Systems (TS) that are | ||||
| physical or virtual systems identified by MAC and maybe IP addresses | ||||
| and connected to BDs by Attachment Circuits: | ||||
| <list style="symbols"> | ||||
| <t>The Tenant Systems may be Virtual Machines (VMs) that generate | ||||
| traffic from their own MAC and IP.</t> | ||||
| <t>The Tenant Systems may be Virtual Appliance entities (VAs) that | </t> | |||
| forward traffic to/from IP addresses of different End Devices sitting | <ul spacing="normal"> | |||
| <li>The Tenant Systems may be VMs that generate | ||||
| traffic from their own MAC and IP.</li> | ||||
| <li> | ||||
| <t>The Tenant Systems may be VA entities that | ||||
| forward traffic to/from IP addresses of different end devices sitting | ||||
| behind them. | behind them. | |||
| <list style="symbols"> | </t> | |||
| <t>These VAs can be firewalls, load balancers, NAT devices, other | <ul spacing="normal"> | |||
| appliances or virtual gateways with virtual routing instances.</t> | <li>These VAs can be firewalls, load balancers, NAT devices, other | |||
| appliances, or virtual gateways with virtual routing instances.</li> | ||||
| <t>These VAs do not necessarily participate in dynamic routing | <li>These VAs do not necessarily participate in dynamic routing | |||
| protocols and hence rely on the EVPN NVEs to advertise the routes on | protocols and hence rely on the EVPN NVEs to advertise the routes on | |||
| their behalf.</t> | their behalf.</li> | |||
| <t>In all these cases, the VA will forward traffic to other TSes using | <li>In all these cases, the VA will forward traffic to other TSs u | |||
| its own source MAC but the source IP will be the one associated to the | sing | |||
| End Device sitting behind or a translated IP address (part of a public | its own source MAC, but the source IP will be the one associated with the | |||
| NAT pool) if the VA is performing NAT.</t> | end device sitting behind the VA or a translated IP address (part of a pu | |||
| blic | ||||
| NAT pool) if the VA is performing NAT.</li> | ||||
| <t>Note that the same IP address and endpoint could exist behind two | <li>Note that the same IP address and endpoint could exist behind | |||
| of these TSes. One example of this would be certain appliance | two | |||
| of these TSs. One example of this would be certain appliance | ||||
| resiliency mechanisms, where a virtual IP or floating IP can be owned | resiliency mechanisms, where a virtual IP or floating IP can be owned | |||
| by one of the two VAs running the resiliency protocol (the master | by one of the two VAs running the resiliency protocol (the Master | |||
| VA). Virtual Router Redundancy Protocol (VRRP), RFC5798, is one | VA). The Virtual Router Redundancy Protocol (VRRP) <xref target="RFC5798" | |||
| particular example of this. Another example is multi-homed subnets, | /> is one | |||
| i.e., the same subnet is connected to two VAs.</t> | particular example of this. Another example is multihomed subnets, | |||
| i.e., the same subnet is connected to two VAs.</li> | ||||
| <t>Although these VAs provide IP connectivity to VMs and subnets | <li>Although these VAs provide IP connectivity to VMs and the subn | |||
| ets | ||||
| behind them, they do not always have their own IP interface connected | behind them, they do not always have their own IP interface connected | |||
| to the EVPN NVE, e.g., layer 2 firewalls are examples of VAs not | to the EVPN NVE; Layer 2 firewalls are examples of VAs not | |||
| supporting IP interfaces. </t> | supporting IP interfaces. </li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | </ul> | |||
| <t><xref target="fig-1"/> illustrates some of the examples described abo | ||||
| </list> | ve.</t> | |||
| </t> | <figure anchor="fig-1"> | |||
| <name>DC Inter-subnet Use Cases</name> | ||||
| <t>Figure 1 illustrates some of the examples described above.</t> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| <figure title="DC inter-subnet use-cases" anchor="fig-1"> | ||||
| <artwork><![CDATA[ | ||||
| NVE1 | NVE1 | |||
| +-----------+ | +-----------+ | |||
| TS1(VM)--| (BD-10) |-----+ | TS1(VM)--| (BD-10) |-----+ | |||
| IP1/M1 +-----------+ | DGW1 | M1/IP1 +-----------+ | DGW1 | |||
| +---------+ +-------------+ | +---------+ +-------------+ | |||
| | |----| (BD-10) | | | |----| (BD-10) | | |||
| SN1---+ NVE2 | | | IRB1\ | | SN1---+ NVE2 | | | IRB1\ | | |||
| | +-----------+ | | | (IP-VRF)|---+ | | +-----------+ | | | (IP-VRF)|---+ | |||
| SN2---TS2(VA)--| (BD-10) |-| | +-------------+ _|_ | SN2---TS2(VA)--| (BD-10) |-| | +-------------+ _|_ | |||
| | IP2/M2 +-----------+ | VXLAN/ | ( ) | | M2/IP2 +-----------+ | VXLAN/ | ( ) | |||
| IP4---+ <-+ | GENEVE | DGW2 ( WAN ) | IP4---+ <-+ | GENEVE | DGW2 ( WAN ) | |||
| | | | +-------------+ (___) | | | | +-------------+ (___) | |||
| vIP23 (floating) | |----| (BD-10) | | | vIP23 (floating) | |----| (BD-10) | | | |||
| | +---------+ | IRB2\ | | | | +---------+ | IRB2\ | | | |||
| SN1---+ <-+ NVE3 | | | | (IP-VRF)|---+ | SN1---+ <-+ NVE3 | | | | (IP-VRF)|---+ | |||
| | IP3/M3 +-----------+ | | | +-------------+ | | M3/IP3 +-----------+ | | | +-------------+ | |||
| SN3---TS3(VA)--| (BD-10) |---+ | | | SN3---TS3(VA)--| (BD-10) |---+ | | | |||
| | +-----------+ | | | | +-----------+ | | | |||
| IP5---+ | | | IP5---+ | | | |||
| | | | | | | |||
| NVE4 | | NVE5 +--SN5 | NVE4 | | NVE5 +--SN5 | |||
| +---------------------+ | | +-----------+ | | +---------------------+ | | +-----------+ | | |||
| IP6------| (BD-1) | | +-| (BD-10) |--TS4(VA)--SN6 | IP6------| (BD-1) | | +-| (BD-10) |--TS4(VA)--SN6 | |||
| | \ | | +-----------+ | | | \ | | +-----------+ | | |||
| | (IP-VRF) |--+ ESI4 +--SN7 | | (IP-VRF) |--+ ESI4 +--SN7 | |||
| | / \IRB3 | | | / \IRB3 | | |||
| |---| (BD-2) (BD-10) | | |---| (BD-2) (BD-10) | | |||
| SN4| +---------------------+ | SN4| +---------------------+ | |||
| Note: | ||||
| ESI4 = Ethernet Segment Identifier 4 | ||||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>Where:</t> | ||||
| <t>Where:</t> | <t>NVE1, NVE2, NVE3, NVE4, NVE5, DGW1, and DGW2 share the same BD for a | |||
| <t>NVE1, NVE2, NVE3, NVE4, NVE5, DGW1 and DGW2 share the same BD for a | ||||
| particular tenant. BD-10 is comprised of the collection of BD | particular tenant. BD-10 is comprised of the collection of BD | |||
| instances defined in all the NVEs. All the hosts connected to BD-10 | instances defined in all the NVEs. All the hosts connected to BD-10 | |||
| belong to the same IP subnet. The hosts connected to BD-10 are listed | belong to the same IP subnet. The hosts connected to BD-10 are listed | |||
| below: | below: | |||
| <list style="symbols"> | </t> | |||
| <t>TS1 is a VM that generates/receives traffic from/to IP1, where IP1 | ||||
| belongs to the BD-10 subnet.</t> | ||||
| <t>TS2 and TS3 are Virtual Appliances (VA) that send/receive traffic | <ul spacing="normal"> | |||
| from/to the subnets and hosts sitting behind them (SN1, SN2, SN3, IP4 and | <li>TS1 is a VM that generates/receives traffic to/from IP1, where IP1 | |||
| IP5). Their IP addresses (IP2 and IP3) belong to the BD-10 subnet and they | belongs to the BD-10 subnet.</li> | |||
| <li>TS2 and TS3 are VAs that send/receive traffic | ||||
| to/from the subnets and hosts sitting behind them (SN1, SN2, SN3, IP4, and | ||||
| IP5). Their IP addresses (IP2 and IP3) belong to the BD-10 subnet, and they | ||||
| can also generate/receive traffic. When these VAs receive packets destined | can also generate/receive traffic. When these VAs receive packets destined | |||
| to their own MAC addresses (M2 and M3) they will route the packets to the | to their own MAC addresses (M2 and M3), they will route the packets to the | |||
| proper subnet or host. These VAs do not support routing protocols to | proper subnet or host. These VAs do not support routing protocols to | |||
| advertise the subnets connected to them and can move to a different server | advertise the subnets connected to them and can move to a different server | |||
| and NVE when the Cloud Management System decides to do so. These VAs may | and NVE when the cloud management system decides to do so. These VAs may | |||
| also support redundancy mechanisms for some subnets, similar to VRRP, where | also support redundancy mechanisms for some subnets, similar to VRRP, where | |||
| a floating IP is owned by the master VA and only the master VA forwards | a floating IP is owned by the Master VA and only the Master VA forwards | |||
| traffic to a given subnet. E.g.,: vIP23 in Figure 1 is a floating IP that | traffic to a given subnet. For example, vIP23 in <xref target="fig-1"/> is a | |||
| can be owned by TS2 or TS3 depending on which system is the master. Only | floating IP that | |||
| the master will forward traffic to SN1.</t> | can be owned by TS2 or TS3 depending on which system is the Master. Only | |||
| the Master will forward traffic to SN1.</li> | ||||
| <t>Integrated Routing and Bridging interfaces IRB1, IRB2 and IRB3 have | <li>Integrated Routing and Bridging interfaces IRB1, IRB2, and IRB3 ha | |||
| ve | ||||
| their own IP addresses that belong to the BD-10 subnet too. These IRB | their own IP addresses that belong to the BD-10 subnet too. These IRB | |||
| interfaces connect the BD-10 subnet to Virtual Routing and Forwarding | interfaces connect the BD-10 subnet to Virtual Routing and Forwarding | |||
| (IP-VRF) instances that can route the traffic to other subnets for the same | (IP-VRF) instances that can route the traffic to other subnets for the same | |||
| tenant (within the DC or at the other end of the WAN).</t> | tenant (within the DC or at the other end of the WAN).</li> | |||
| <li>TS4 is a Layer 2 VA that provides connectivity to subnets SN5, SN6 | ||||
| <t>TS4 is a layer 2 VA that provides connectivity to subnets SN5, SN6 and | , and | |||
| SN7, but does not have an IP address itself in the BD-10. TS4 is connected | SN7 but does not have an IP address itself in the BD-10. TS4 is connected | |||
| to a port on NVE5 assigned to Ethernet Segment Identifier 4.</t> | to a port on NVE5 that is assigned to Ethernet Segment Identifier 4 (ESI4).</ | |||
| li> | ||||
| </list> | </ul> | |||
| </t> | <t> | |||
| For a BD to which an ingress NVE is attached, "Overlay Index" is | ||||
| <t> | ||||
| For a BD that an ingress NVE is attached to, "Overlay Index" is | ||||
| defined as an identifier that the ingress EVPN NVE requires in order | defined as an identifier that the ingress EVPN NVE requires in order | |||
| to forward packets to a subnet or host in a remote subnet. As an | to forward packets to a subnet or host in a remote subnet. As an | |||
| example, vIP23 (Figure 1) is an Overlay Index that any NVE attached | example, vIP23 (<xref target="fig-1"/>) is an Overlay Index that any NVE atta | |||
| to BD-10 needs to know in order to forward packets to SN1. IRB3 IP | ched | |||
| address is an Overlay Index required to get to SN4, and ESI4 | to BD-10 needs to know in order to forward packets to SN1. The IRB3 IP | |||
| (Ethernet Segment Identifier 4) is an Overlay Index needed to forward | address is an Overlay Index required to get to SN4, and ESI4 is an Overlay In | |||
| traffic to SN5. In other words, the Overlay Index is a next-hop in | dex needed to forward | |||
| the overlay address space that can be an IP address, a MAC address or | traffic to SN5. In other words, the Overlay Index is a next hop in | |||
| an ESI. When advertised along with an IP Prefix, the Overlay Index | the overlay address space that can be an IP address, a MAC address, or | |||
| requires a recursive resolution to find out to what egress NVE the | an ESI. When advertised along with an IP prefix, the Overlay Index | |||
| requires a recursive resolution to find out the egress NVE to which the | ||||
| EVPN packets need to be sent.</t> | EVPN packets need to be sent.</t> | |||
| <t> | ||||
| All the DC use cases in <xref target="fig-1"/> require inter-subnet | ||||
| forwarding; therefore, the individual host routes and subnets: | ||||
| <t> | </t> | |||
| All the DC use cases in Figure 1 require inter-subnet forwarding and | <ol spacing="normal" type="%c)"> | |||
| therefore, the individual host routes and subnets: | <li>must be advertised from the NVEs (since VAs and VMs do not | |||
| participate in dynamic routing protocols) and</li> | ||||
| <list style="format (%c)"> | <li>may be associated with an Overlay Index that can be a VA IP addres | |||
| <t>must be advertised from the NVEs (since VAs and VMs do not | s, | |||
| participate in dynamic routing protocols) and</t> | a floating IP address, a MAC address, or an ESI. The Overlay Index is | |||
| further discussed in <xref target="sect-3.2" format="default"/>.</li> | ||||
| <t>may be associated to an Overlay Index that can be a VA IP address, | </ol> | |||
| a floating IP address, a MAC address or an ESI. The Overlay Index is | </section> | |||
| further discussed in <xref target="sect-3.2"/>.</t> | <section anchor="sect-2.2" numbered="true" toc="default"> | |||
| <name>The Need for the EVPN IP Prefix Route</name> | ||||
| </list> | <t> | |||
| </t> | <xref target="RFC7432" format="default"/> defines a MAC/IP Advertisement rout | |||
| e (also | ||||
| </section> | referred to as "RT-2") where a MAC | |||
| <section title="The Need for the EVPN IP Prefix Route" anchor="sect-2.2"> | ||||
| <t> | ||||
| <xref target="RFC7432"/> defines a MAC/IP route (also referred as RT-2) where | ||||
| a MAC | ||||
| address can be advertised together with an IP address length and IP | address can be advertised together with an IP address length and IP | |||
| address (IP). While a variable IP address length might have been used | address (IP). While a variable IP address length might have been used | |||
| to indicate the presence of an IP prefix in a route type 2, there are | to indicate the presence of an IP prefix in a route type 2, there are | |||
| several specific use cases in which using this route type to deliver | several specific use cases in which using this route type to deliver | |||
| IP Prefixes is not suitable.</t> | IP prefixes is not suitable.</t> | |||
| <t> | ||||
| <t> | ||||
| One example of such use cases is the "floating IP" example described | One example of such use cases is the "floating IP" example described | |||
| in <xref target="sect-2.1"/>. In this example it is needed to decouple the | in <xref target="sect-2.1" format="default"/>. In this example, it is | |||
| advertisement of the prefixes from the advertisement of MAC address | necessary to decouple the advertisement of the prefixes from the advertisemen | |||
| of either M2 or M3, otherwise the solution gets highly inefficient | t of a MAC address | |||
| of either M2 or M3; otherwise, the solution gets highly inefficient | ||||
| and does not scale.</t> | and does not scale.</t> | |||
| <t> | ||||
| <t> | ||||
| For example, if 1,000 prefixes are advertised from M2 (using RT-2) | For example, if 1,000 prefixes are advertised from M2 (using RT-2) | |||
| and the floating IP owner changes from M2 to M3, 1,000 routes would | and the floating IP owner changes from M2 to M3, 1,000 routes would | |||
| be withdrawn from M2 and readvertise 1k routes from M3. However if a | be withdrawn by M2 and readvertised by M3. However, if a | |||
| separate route type is used, 1,000 routes can be advertised as | separate route type is used, 1,000 routes can be advertised as | |||
| associated to the floating IP address (vIP23) and only one RT-2 for | associated with the floating IP address (vIP23), and only one RT-2 can be use d for | |||
| advertising the ownership of the floating IP, i.e., vIP23 and M2 in | advertising the ownership of the floating IP, i.e., vIP23 and M2 in | |||
| the route type 2. When the floating IP owner changes from M2 to M3, a | the route type 2. When the floating IP owner changes from M2 to M3, a | |||
| single RT-2 withdraw/update is required to indicate the change. The | single RT-2 withdrawal/update is required to indicate the change. The | |||
| remote DGW will not change any of the 1,000 prefixes associated to | remote DGW will not change any of the 1,000 prefixes associated with | |||
| vIP23, but will only update the ARP resolution entry for vIP23 (now | vIP23 but will only update the ARP resolution entry for vIP23 (now | |||
| pointing at M3).</t> | pointing at M3).</t> | |||
| <t> | ||||
| <t> | An EVPN route (type 5) for the advertisement of IP prefixes is | |||
| An EVPN route (type 5) for the advertisement of IP Prefixes is | ||||
| described in this document. This new route type has a differentiated | described in this document. This new route type has a differentiated | |||
| role from the RT-2 route and addresses the Data Center (or NVO-based | role from the RT-2 route and addresses the inter-subnet connectivity | |||
| networks in general) inter-subnet connectivity scenarios described in | scenarios for DCs (or NVO-based | |||
| this document. Using this new RT-5, an IP Prefix may be advertised | networks in general) described in | |||
| along with an Overlay Index that can be a GW IP address, a MAC or an | this document. Using this new RT-5, an IP prefix may be advertised | |||
| ESI, or without an Overlay Index, in which case the BGP next-hop will | along with an Overlay Index, which can be a GW IP address, a MAC, or an | |||
| point at the egress NVE/ASBR/ABR and the MAC in the Router's MAC | ESI. The IP prefix may also be advertised without an Overlay Index, in which | |||
| case the BGP next hop will | ||||
| point at the egress NVE, Area Border Router (ABR), or ASBR, and the MAC in th | ||||
| e EVPN Router's MAC | ||||
| Extended Community will provide the inner MAC destination address to | Extended Community will provide the inner MAC destination address to | |||
| be used. As discussed throughout the document, the EVPN RT-2 does not | be used. As discussed throughout the document, the EVPN RT-2 does not | |||
| meet the requirements for all the DC use cases, therefore this EVPN | meet the requirements for all the DC use cases; therefore, this EVPN | |||
| route type 5 is required.</t> | route type 5 is required.</t> | |||
| <t> | <t> | |||
| The EVPN route type 5 decouples the IP Prefix advertisements from the | The EVPN route type 5 decouples the IP prefix advertisements from the | |||
| MAC/IP route advertisements in EVPN, hence: | MAC/IP Advertisement routes in EVPN. Hence: | |||
| <list style="format (%c)"> | ||||
| <t>Allows the clean and clear advertisements of IPv4 or IPv6 prefixes | ||||
| in an NLRI (Network Layer Reachability Information message) with no | ||||
| MAC addresses.</t> | ||||
| <t>Since the route type is different from the MAC/IP Advertisement | ||||
| route, the current <xref target="RFC7432"/> procedures do not need to | ||||
| be modified.</t> | ||||
| <t>Allows a flexible implementation where the prefix can be linked to | ||||
| different types of Overlay/Underlay Indexes: overlay IP address, | ||||
| overlay MAC addresses, overlay ESI, underlay BGP next-hops, etc. | ||||
| </t> | ||||
| <t>An EVPN implementation not requiring IP Prefixes can simply discard | </t> | |||
| <ol spacing="normal" type="%c)"> | ||||
| <li>The clean and clear advertisements of IPv4 or IPv6 prefixes | ||||
| in a Network Layer Reachability Information (NLRI) message without | ||||
| MAC addresses are allowed.</li> | ||||
| <li>Since the route type is different from the MAC/IP Advertisement | ||||
| route, the current procedures described in <xref target="RFC7432" format= | ||||
| "default"/> do not need to | ||||
| be modified.</li> | ||||
| <li>A flexible implementation is allowed where the prefix can be linke | ||||
| d to | ||||
| different types of Overlay/Underlay Indexes: overlay IP addresses, | ||||
| overlay MAC addresses, overlay ESIs, underlay BGP next hops, etc. | ||||
| </li> | ||||
| <li>An EVPN implementation not requiring IP prefixes can simply discar | ||||
| d | ||||
| them by looking at the route type value. | them by looking at the route type value. | |||
| </t> | </li> | |||
| </ol> | ||||
| </list> | <t> | |||
| </t> | The following sections describe how EVPN is extended with a route | |||
| <t> | ||||
| The following Sections describe how EVPN is extended with a route | ||||
| type for the advertisement of IP prefixes and how this route is used | type for the advertisement of IP prefixes and how this route is used | |||
| to address the inter-subnet connectivity requirements existing in the | to address the inter-subnet connectivity requirements existing in the | |||
| Data Center.</t> | DC.</t> | |||
| </section> | ||||
| </section> | </section> | |||
| <section anchor="sect-3" numbered="true" toc="default"> | ||||
| </section> | <name>The BGP EVPN IP Prefix Route</name> | |||
| <t> The BGP EVPN NLRI as defined in <xref target="RFC7432"/> is shown belo | ||||
| w:</t> | ||||
| <section title="The BGP EVPN IP Prefix Route" anchor="sect-3"> | <figure> | |||
| <t> The BGP EVPN NLRI as defined in [RFC7432] is shown below:</t> | <name>BGP EVPN NLRI</name> | |||
| <artwork> | ||||
| +-----------------------------------+ | ||||
| | Route Type (1 octet) | | ||||
| +-----------------------------------+ | ||||
| | Length (1 octet) | | ||||
| +-----------------------------------+ | ||||
| | Route Type specific (variable) | | ||||
| +-----------------------------------+ | ||||
| </artwork> | ||||
| </figure> | ||||
| <texttable style="all"><ttcol> Route Type (1 octet)</ttcol> | <!-- <t keepWithPrevious="true"> </t> --> | |||
| <c>Length (1 octet)</c> | <t> | |||
| <c>Route Type specific (variable)</c> | ||||
| <postamble> BGP EVPN NLRI</postamble> | ||||
| </texttable> | ||||
| <t> | ||||
| This document defines an additional route type (RT-5) in the IANA | This document defines an additional route type (RT-5) in the IANA | |||
| EVPN Route Types registry <xref target="EVPNRouteTypes"/>, to be used for the | "EVPN Route Types" registry <xref target="EVPNRouteTypes" format="default"/> | |||
| advertisement of EVPN routes using IP Prefixes:</t> | to be used for the | |||
| advertisement of EVPN routes using IP prefixes:</t> | ||||
| <t>Value: 5</t> | ||||
| <t>Description: IP Prefix Route</t> | ||||
| <t> | <ul empty="true"><li> | |||
| According to Section 5.4 in <xref target="RFC7606"/>, a node that doesn't rec | <dl spacing="compact"> | |||
| ognize the | <dt>Value:</dt><dd>5</dd> | |||
| Route Type 5 (RT-5) will ignore it. Therefore an NVE following this | <dt>Description:</dt><dd>IP Prefix</dd> | |||
| </dl> | ||||
| </li></ul> | ||||
| <t> | ||||
| According to <xref target="RFC7606" section="5.4" format="default"/>, a node | ||||
| that doesn't recognize the | ||||
| route type 5 (RT-5) will ignore it. Therefore, an NVE following this | ||||
| document can still be attached to a BD where an NVE ignoring RT-5s is | document can still be attached to a BD where an NVE ignoring RT-5s is | |||
| attached to. Regular <xref target="RFC7432"/> procedures would apply in that case for both | attached. Regular procedures described in <xref target="RFC7432" format="defa ult"/> would apply in that case for both | |||
| NVEs. In case two or more NVEs are attached to different BDs of the same | NVEs. In case two or more NVEs are attached to different BDs of the same | |||
| tenant, they MUST support RT-5 for the proper Inter-Subnet Forwarding | tenant, they <bcp14>MUST</bcp14> support the RT-5 for the proper inter-subnet forwarding | |||
| operation of the tenant.</t> | operation of the tenant.</t> | |||
| <t> | ||||
| <t> | ||||
| The detailed encoding of this route and associated procedures are | The detailed encoding of this route and associated procedures are | |||
| described in the following Sections.</t> | described in the following sections.</t> | |||
| <section anchor="sect-3.1" numbered="true" toc="default"> | ||||
| <section title="IP Prefix Route Encoding" anchor="sect-3.1"><t> | <name>IP Prefix Route Encoding</name> | |||
| An IP Prefix Route Type for IPv4 has the Length field set to 34 and | <t> | |||
| An IP Prefix route type for IPv4 has the Length field set to 34 and | ||||
| consists of the following fields:</t> | consists of the following fields:</t> | |||
| <texttable style="all"><ttcol> RD (8 octets)</ttcol> | <figure> | |||
| <c>Ethernet Segment Identifier (10 octets)</c> | <name>EVPN IP Prefix Route NLRI for IPv4</name> | |||
| <c>Ethernet Tag ID (4 octets)</c> | <artwork> | |||
| <c>IP Prefix Length (1 octet, 0 to 32)</c> | +---------------------------------------+ | |||
| <c>IP Prefix (4 octets)</c> | | RD (8 octets) | | |||
| <c>GW IP Address (4 octets)</c> | +---------------------------------------+ | |||
| <c>MPLS Label (3 octets)</c> | |Ethernet Segment Identifier (10 octets)| | |||
| <postamble> EVPN IP Prefix route NLRI for IPv4</postamble> | +---------------------------------------+ | |||
| </texttable> | | Ethernet Tag ID (4 octets) | | |||
| <t> | +---------------------------------------+ | |||
| An IP Prefix Route Type for IPv6 has the Length field set to 58 and | | IP Prefix Length (1 octet, 0 to 32) | | |||
| +---------------------------------------+ | ||||
| | IP Prefix (4 octets) | | ||||
| +---------------------------------------+ | ||||
| | GW IP Address (4 octets) | | ||||
| +---------------------------------------+ | ||||
| | MPLS Label (3 octets) | | ||||
| +---------------------------------------+ | ||||
| </artwork> | ||||
| </figure> | ||||
| <!-- <t keepWithPrevious="true"> </t> --> | ||||
| <t> | ||||
| An IP Prefix route type for IPv6 has the Length field set to 58 and | ||||
| consists of the following fields:</t> | consists of the following fields:</t> | |||
| <texttable style="all"><ttcol> RD (8 octets)</ttcol> | <figure> | |||
| <c>Ethernet Segment Identifier (10 octets)</c> | <name>EVPN IP Prefix Route NLRI for IPv6</name> | |||
| <c>Ethernet Tag ID (4 octets)</c> | <artwork> | |||
| <c>IP Prefix Length (1 octet, 0 to 128)</c> | +---------------------------------------+ | |||
| <c>IP Prefix (16 octets)</c> | | RD (8 octets) | | |||
| <c>GW IP Address (16 octets)</c> | +---------------------------------------+ | |||
| <c>MPLS Label (3 octets)</c> | |Ethernet Segment Identifier (10 octets)| | |||
| <postamble> EVPN IP Prefix route NLRI for IPv6</postamble> | +---------------------------------------+ | |||
| </texttable> | | Ethernet Tag ID (4 octets) | | |||
| <t> | +---------------------------------------+ | |||
| | IP Prefix Length (1 octet, 0 to 128) | | ||||
| +---------------------------------------+ | ||||
| | IP Prefix (16 octets) | | ||||
| +---------------------------------------+ | ||||
| | GW IP Address (16 octets) | | ||||
| +---------------------------------------+ | ||||
| | MPLS Label (3 octets) | | ||||
| +---------------------------------------+ | ||||
| </artwork> | ||||
| </figure> | ||||
| <!-- <t keepWithPrevious="true"> </t> --> | ||||
| <t> | ||||
| Where:</t> | Where:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"><t>The Length field of the BGP EVPN NLRI for an | <li>The Length field of the BGP EVPN NLRI for an EVPN IP Prefix route | |||
| EVPN IP Prefix route | <bcp14>MUST</bcp14> be either 34 (if IPv4 addresses are carried) or 58 (if | |||
| MUST be either 34 (if IPv4 addresses are carried) or 58 (if IPv6 | IPv6 | |||
| addresses are carried). The IP Prefix and Gateway IP Address MUST | addresses are carried). The IP prefix and gateway IP address <bcp14>MUST</b | |||
| be from the same IP address family.</t> | cp14> | |||
| be from the same IP address family.</li> | ||||
| <t>Route Distinguisher (RD) and Ethernet Tag ID MUST be used as | <li>The Route Distinguisher (RD) and Ethernet Tag ID <bcp14>MUST</bcp1 | |||
| defined in <xref target="RFC7432"/> and <xref target="RFC8365"/>. In partic | 4> be used as | |||
| ular, the RD is unique | defined in <xref target="RFC7432" format="default"/> and <xref target="RFC8 | |||
| 365" format="default"/>. In particular, the RD is unique | ||||
| per MAC-VRF (or IP-VRF). The MPLS Label field is set to either an | per MAC-VRF (or IP-VRF). The MPLS Label field is set to either an | |||
| MPLS label or a VNI, as described in <xref target="RFC8365"/> for other EVP | MPLS label or a VNI, as described in <xref target="RFC8365" format="default | |||
| N route | "/> for other EVPN route | |||
| types.</t> | types.</li> | |||
| <li>The Ethernet Segment Identifier <bcp14>MUST</bcp14> be a non-zero | ||||
| <t>The Ethernet Segment Identifier MUST be a non-zero 10-octet | 10-octet | |||
| identifier if the ESI is used as an Overlay Index (see the | identifier if the ESI is used as an Overlay Index (see the | |||
| definition of Overlay Index in <xref target="sect-3.2"/>). It MUST be all b | definition of "Overlay Index" in <xref target="sect-3.2" format="default"/> | |||
| ytes | ). It <bcp14>MUST</bcp14> be all bytes zero otherwise. The ESI format is describ | |||
| zero otherwise. The ESI format is described in <xref target="RFC7432"/>.</t | ed in <xref target="RFC7432" format="default"/>.</li> | |||
| > | <li>The IP prefix length can be set to a value between 0 and 32 (bits) | |||
| for IPv4 and between 0 and 128 for IPv6, and it specifies the number | ||||
| <t>The IP Prefix Length can be set to a value between 0 and 32 (bits) | of bits in the prefix. The value <bcp14>MUST NOT</bcp14> be greater than 12 | |||
| for IPv4 and between 0 and 128 for IPv6, and specifies the number | 8.</li> | |||
| of bits in the Prefix. The value MUST NOT be greater than 128.</t> | <li>The IP prefix is a 4- or 16-octet field (IPv4 or IPv6).</li> | |||
| <li>The GW IP Address field is a 4- or 16-octet field (IPv4 or | ||||
| <t>The IP Prefix is a 4 or 16-octet field (IPv4 or IPv6).</t> | IPv6) and will encode a valid IP address as an Overlay Index for | |||
| the IP prefixes. The GW IP field <bcp14>MUST</bcp14> be all bytes zero if i | ||||
| <t>The GW (Gateway) IP Address field is a 4 or 16-octet field (IPv4 or | t is | |||
| IPv6), and will encode a valid IP address as an Overlay Index for | not used as an Overlay Index. Refer to <xref target="sect-3.2" format="defa | |||
| the IP Prefixes. The GW IP field MUST be all bytes zero if it is | ult"/> for the | |||
| not used as an Overlay Index. Refer to <xref target="sect-3.2"/> for the | definition and use of the Overlay Index.</li> | |||
| definition and use of the Overlay Index.</t> | ||||
| <t>The MPLS Label field is encoded as 3 octets, where the high-order | ||||
| 20 bits contain the label value, as per <xref target="RFC7432"/>. When send | ||||
| ing, | ||||
| the label value SHOULD be zero if recursive resolution based on | ||||
| overlay index is used. If the received MPLS Label value is zero, | ||||
| the route MUST contain an Overlay Index and the ingress NVE/PE MUST | ||||
| do recursive resolution to find the egress NVE/PE. If the received | ||||
| Label is zero and the route does not contain an Overlay Index, it | ||||
| MUST be treat-as-withdraw <xref target="RFC7606"/>.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | <li>The MPLS Label field is encoded as 3 octets, where the high-order | |||
| The RD, Ethernet Tag ID, IP Prefix Length and IP Prefix are part of | 20 bits contain the label value, as per <xref target="RFC7432" format="defa | |||
| ult"/>. When sending, | ||||
| the label value <bcp14>SHOULD</bcp14> be zero if a recursive resolution bas | ||||
| ed on | ||||
| an Overlay Index is used. If the received MPLS label value is zero, | ||||
| the route <bcp14>MUST</bcp14> contain an Overlay Index, and the ingress NVE | ||||
| /PE <bcp14>MUST</bcp14> | ||||
| perform a recursive resolution to find the egress NVE/PE. If the received | ||||
| label is zero and the route does not contain an Overlay Index, it | ||||
| <bcp14>MUST</bcp14> be "treat as withdraw" <xref target="RFC7606" format="d | ||||
| efault"/>.</li> | ||||
| </ul> | ||||
| <t> | ||||
| The RD, Ethernet Tag ID, IP prefix length, and IP prefix are part of | ||||
| the route key used by BGP to compare routes. The rest of the fields | the route key used by BGP to compare routes. The rest of the fields | |||
| are not part of the route key.</t> | are not part of the route key.</t> | |||
| <t> | ||||
| <t> | An IP Prefix route <bcp14>MAY</bcp14> be sent along with an EVPN Router's MAC | |||
| An IP Prefix Route MAY be sent along with a Router's MAC Extended Community | Extended Community | |||
| (defined in <xref target="I-D.ietf-bess-evpn-inter-subnet-forwarding"/>) to | (defined in <xref target="RFC9135" format="default"/>) to | |||
| carry the MAC address that is used as the overlay index. Note that the MAC | carry the MAC address that is used as the Overlay Index. Note that the MAC | |||
| address may be that of an TS.</t> | address may be that of a TS.</t> | |||
| <t> | ||||
| <t> | As described in <xref target="sect-3.2" format="default"/>, certain data comb | |||
| As described in <xref target="sect-3.2"/>, certain data combinations in a rec | inations in a received | |||
| eived | route would imply a treat-as-withdraw handling of the route | |||
| routes would imply a "treat-as-withdraw" handling of the route | <xref target="RFC7606" format="default"/>.</t> | |||
| <xref target="RFC7606"/>.</t> | </section> | |||
| <section anchor="sect-3.2" numbered="true" toc="default"> | ||||
| </section> | <name>Overlay Indexes and Recursive Lookup Resolution</name> | |||
| <t> | ||||
| <section title="Overlay Indexes and Recursive Lookup Resolution" anchor=" | ||||
| sect-3.2"><t> | ||||
| RT-5 routes support recursive lookup resolution through the use of | RT-5 routes support recursive lookup resolution through the use of | |||
| Overlay Indexes as follows:</t> | Overlay Indexes as follows:</t> | |||
| <t><list style="symbols"> | <ul spacing="normal"> | |||
| <li>An Overlay Index can be an ESI or IP address in the address space | ||||
| <t>An Overlay Index can be an ESI, IP address in the address space | of the tenant or MAC address, and it is used by an NVE as the | |||
| of the tenant or MAC address and it is used by an NVE as the | next hop for a given IP prefix. An Overlay Index always needs a | |||
| next-hop for a given IP Prefix. An Overlay Index always needs a | ||||
| recursive route resolution on the NVE/PE that installs the RT-5 into | recursive route resolution on the NVE/PE that installs the RT-5 into | |||
| one of its IP-VRFs, so that the NVE knows to which egress NVE/PE it | one of its IP-VRFs so that the NVE knows to which egress NVE/PE it | |||
| needs to forward the packets. It is important to note that recursive | needs to forward the packets. It is important to note that recursive | |||
| resolution of the Overlay Index applies upon installation into an | resolution of the Overlay Index applies upon installation into an | |||
| IP-VRF, and not upon BGP propagation (for instance, on an ASBR). | IP-VRF and not upon BGP propagation (for instance, on an ASBR). | |||
| Also, as a result of the recursive resolution, the egress NVE/PE is | Also, as a result of the recursive resolution, the egress NVE/PE is | |||
| not necessarily the same NVE that originated the RT-5.</t> | not necessarily the same NVE that originated the RT-5.</li> | |||
| <t>The Overlay Index is indicated along with the RT-5 in the ESI | <li>The Overlay Index is indicated along with the RT-5 in the ESI | |||
| field, GW IP field or Router's MAC Extended Community, depending on | field, GW IP field, or EVPN Router's MAC Extended Community, depending | |||
| whether the IP Prefix next-hop is an ESI, IP address or MAC address | on | |||
| in the tenant space. The Overlay Index for a given IP Prefix is set | whether the IP prefix next hop is an ESI, an IP address, or a MAC addre | |||
| ss | ||||
| in the tenant space. The Overlay Index for a given IP prefix is set | ||||
| by local policy at the NVE that originates an RT-5 for that IP | by local policy at the NVE that originates an RT-5 for that IP | |||
| Prefix (typically managed by the Cloud Management System).</t> | prefix (typically managed by the cloud management system).</li> | |||
| <t>In order to enable the recursive lookup resolution at the ingress | <li> | |||
| <t>In order to enable the recursive lookup resolution at the ingress | ||||
| NVE, an NVE that is a possible egress NVE for a given Overlay Index | NVE, an NVE that is a possible egress NVE for a given Overlay Index | |||
| must originate a route advertising itself as the BGP next hop on the | must originate a route advertising itself as the BGP next hop on the | |||
| path to the system denoted by the Overlay Index. For instance: | path to the system denoted by the Overlay Index. For instance: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>If an NVE receives an RT-5 that specifies an Overlay Index, the | <li>If an NVE receives an RT-5 that specifies an Overlay Index, th | |||
| e | ||||
| NVE cannot use the RT-5 in its IP-VRF unless (or until) it can | NVE cannot use the RT-5 in its IP-VRF unless (or until) it can | |||
| recursively resolve the Overlay Index.</t> | recursively resolve the Overlay Index.</li> | |||
| <li>If the RT-5 specifies an ESI as the Overlay Index, a recursive | ||||
| <t>If the RT-5 specifies an ESI as the Overlay Index, recursive | ||||
| resolution can only be done if the NVE has received and installed an | resolution can only be done if the NVE has received and installed an | |||
| RT-1 (Auto-Discovery per-EVI) route specifying that ESI.</t> | RT-1 (auto-discovery per EVI) route specifying that ESI.</li> | |||
| <li>If the RT-5 specifies a GW IP address as the Overlay Index, | ||||
| <t>If the RT-5 specifies a GW IP address as the Overlay Index, | a recursive resolution can only be done if the NVE has received and | |||
| recursive resolution can only be done if the NVE has received and | installed an RT-2 (MAC/IP Advertisement route) specifying that IP addre | |||
| installed an RT-2 (MAC/IP route) specifying that IP address in the | ss in the | |||
| IP address field of its NLRI.</t> | IP Address field of its NLRI.</li> | |||
| <li>If the RT-5 specifies a MAC address as the Overlay Index, | ||||
| <t>If the RT-5 specifies a MAC address as the Overlay Index, | a recursive resolution can only be done if the NVE has received and | |||
| recursive resolution can only be done if the NVE has received and | installed an RT-2 (MAC/IP Advertisement route) specifying that MAC addr | |||
| installed an RT-2 (MAC/IP route) specifying that MAC address in the | ess in the | |||
| MAC address field of its NLRI.</t> | MAC Address field of its NLRI.</li> | |||
| </ul> | ||||
| </list> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Note that the RT-1 or RT-2 routes needed for the | <t>Note that the RT-1 or RT-2 routes needed for the | |||
| recursive resolution may arrive before or after the given RT-5 | recursive resolution may arrive before or after the given RT-5 | |||
| route. | route.</t> | |||
| </li> | ||||
| <list style="symbols"> | ||||
| <t>Irrespective of the recursive resolution, if there is no IGP or BGP | ||||
| route to the BGP next-hop of an RT-5, BGP MUST NOT install the RT-5 | ||||
| even if the Overlay Index can be resolved.</t> | ||||
| <t>The ESI and GW IP fields may both be zero at the same time. | <li>Irrespective of the recursive resolution, if there is no IGP or BG | |||
| However, they MUST NOT both be non-zero at the same time. A route | P | |||
| route to the BGP next hop of an RT-5, BGP <bcp14>MUST NOT</bcp14> install | ||||
| the RT-5 | ||||
| even if the Overlay Index can be resolved.</li> | ||||
| <li>The ESI and GW IP fields may both be zero at the same time. | ||||
| However, they <bcp14>MUST NOT</bcp14> both be non-zero at the same time. | ||||
| A route | ||||
| containing a non-zero GW IP and a non-zero ESI (at the same time) | containing a non-zero GW IP and a non-zero ESI (at the same time) | |||
| SHOULD be treat-as-withdraw <xref target="RFC7606"/>.</t> | <bcp14>SHOULD</bcp14> be treat as withdraw <xref target="RFC7606" format= | |||
| "default"/>.</li> | ||||
| <t>If either the ESI or GW IP are non-zero, then the non-zero one is | <li>If either the ESI or the GW IP are non-zero, then the non-zero one | |||
| the Overlay Index, regardless of whether the Router's MAC Extended | is | |||
| Community is present or the value of the Label. In case the GW IP is | the Overlay Index, regardless of whether the EVPN Router's MAC Extended | |||
| the Overlay Index (hence ESI is zero), the Router's MAC Extended | Community is present or the value of the label. In case the GW IP is | |||
| Community is ignored if present.</t> | the Overlay Index (hence, ESI is zero), the EVPN Router's MAC Extended | |||
| Community is ignored if present.</li> | ||||
| <t>A route where ESI, GW IP, MAC and Label are all zero at the same | <li>A route where ESI, GW IP, MAC, and Label are all zero at the same | |||
| time SHOULD be treat-as-withdraw.</t> | time <bcp14>SHOULD</bcp14> be treat as withdraw.</li> | |||
| </ul> | ||||
| </list> | <t> | |||
| </t> | ||||
| <t> | ||||
| The indirection provided by the Overlay Index and its recursive | The indirection provided by the Overlay Index and its recursive | |||
| lookup resolution is required to achieve fast convergence in case of | lookup resolution is required to achieve fast convergence in case of | |||
| a failure of the object represented by the Overlay Index (see the | a failure of the object represented by the Overlay Index (see the | |||
| example described in <xref target="sect-2.2"/>).</t> | example described in <xref target="sect-2.2" format="default"/>).</t> | |||
| <t> | ||||
| <t> | <xref target="fields_overlay_table"/> shows the different RT-5 field combinat | |||
| Table 1 shows the different RT-5 field combinations allowed by this | ions allowed by this | |||
| specification and what Overlay Index must be used by the receiving | specification and what Overlay Index must be used by the receiving | |||
| NVE/PE in each case. Those cases where there is no Overlay Index, are | NVE/PE in each case. Cases where there is no Overlay Index are | |||
| indicated as "None" in Table 1. If there is no Overlay Index the | indicated as "None" in <xref target="fields_overlay_table"/>. If there is no | |||
| Overlay Index, the | ||||
| receiving NVE/PE will not perform any recursive resolution, and the | receiving NVE/PE will not perform any recursive resolution, and the | |||
| actual next-hop is given by the RT-5's BGP next-hop.</t> | actual next hop is given by the RT-5's BGP next hop.</t> | |||
| <!-- [rfced] id2xml converted the following table to artwork. Please review --> | ||||
| <figure><artwork><![CDATA[ | ||||
| +----------+----------+----------+------------+----------------+ | ||||
| | ESI | GW IP | MAC* | Label | Overlay Index | | ||||
| |--------------------------------------------------------------| | ||||
| | Non-Zero | Zero | Zero | Don't Care | ESI | | ||||
| | Non-Zero | Zero | Non-Zero | Don't Care | ESI | | ||||
| | Zero | Non-Zero | Zero | Don't Care | GW IP | | ||||
| | Zero | Zero | Non-Zero | Zero | MAC | | ||||
| | Zero | Zero | Non-Zero | Non-Zero | MAC or None** | | ||||
| | Zero | Zero | Zero | Non-Zero | None*** | | ||||
| +----------+----------+----------+------------+----------------+ | ||||
| RT-5 fields and Indicated Overlay Index | ||||
| ]]></artwork></figure> | ||||
| <t>Table NOTES: | <table anchor="fields_overlay_table"> | |||
| <name>RT-5 Fields and Indicated Overlay Index</name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th>ESI</th> | ||||
| <th>GW IP</th> | ||||
| <th>MAC*</th> | ||||
| <th>Label</th> | ||||
| <th>Overlay Index</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>Non-Zero</td> | ||||
| <td>Zero</td> | ||||
| <td>Zero</td> | ||||
| <td>Don't Care</td> | ||||
| <td>ESI</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>Non-Zero</td> | ||||
| <td>Zero</td> | ||||
| <td>Non-Zero</td> | ||||
| <td>Don't Care</td> | ||||
| <td>ESI</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <list style="symbols"> | <td>Zero</td> | |||
| <td>Non-Zero</td> | ||||
| <td>Zero</td> | ||||
| <td>Don't Care</td> | ||||
| <td>GW IP</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>Zero</td> | ||||
| <td>Zero</td> | ||||
| <td>Non-Zero</td> | ||||
| <td>Zero</td> | ||||
| <td>MAC</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>Zero</td> | ||||
| <td>Zero</td> | ||||
| <td>Non-Zero</td> | ||||
| <td>Non-Zero</td> | ||||
| <td>MAC or None**</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td>Zero</td> | ||||
| <td>Zero</td> | ||||
| <td>Zero</td> | ||||
| <td>Non-Zero</td> | ||||
| <td>None***</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t> MAC with Zero value means no Router's MAC extended community is | <t>Table Notes: </t> | |||
| present along with the RT-5. Non-Zero indicates that the extended | <dl spacing="normal" indent="6"> | |||
| <dt>*</dt><dd> MAC with "Zero" value means no EVPN Router's MAC Extend | ||||
| ed Community is | ||||
| present along with the RT-5. "Non-Zero" indicates that the extended | ||||
| community is present and carries a valid MAC address. The encoding of | community is present and carries a valid MAC address. The encoding of | |||
| a MAC address MUST be the 6-octet MAC address specified by <xref | a MAC address <bcp14>MUST</bcp14> be the 6-octet MAC address specified b | |||
| target="IEEE-802.1Q"/> and <xref target="IEEE-802.1D-REV"/>. Examples | y <xref target="IEEE-802.1Q" format="default"/>. Examples | |||
| of invalid MAC addresses are broadcast or multicast MAC | of invalid MAC addresses are broadcast or multicast MAC | |||
| addresses. The route MUST be treat-as-withdraw in case of an invalid | addresses. The route <bcp14>MUST</bcp14> be treat as withdraw in case of | |||
| MAC address. The presence of the Router's MAC extended community | an invalid | |||
| MAC address. The presence of the EVPN Router's MAC Extended Community | ||||
| alone is not enough to indicate the use of the MAC address as the | alone is not enough to indicate the use of the MAC address as the | |||
| Overlay Index, since the extended community can be used for other | Overlay Index since the extended community can be used for other | |||
| purposes.</t> | purposes.</dd> | |||
| <t>In this case, the Overlay Index may be the RT-5's MAC address or | <dt>**</dt><dd>In this case, the Overlay Index may be the RT-5's MAC a | |||
| None, depending on the local policy of the receiving NVE/PE. Note | ddress or | |||
| that the advertising NVE/PE that sets the Overlay Index SHOULD | "None", depending on the local policy of the receiving NVE/PE. Note | |||
| that the advertising NVE/PE that sets the Overlay Index <bcp14>SHOULD</b | ||||
| cp14> | ||||
| advertise an RT-2 for the MAC Overlay Index if there are receiving | advertise an RT-2 for the MAC Overlay Index if there are receiving | |||
| NVE/PEs configured to use the MAC as the Overlay Index. This case in | NVE/PEs configured to use the MAC as the Overlay Index. This case in | |||
| Table 1 is used in the IP-VRF-to-IP-VRF implementations described in | <xref target="fields_overlay_table"/> is used in the IP-VRF-to-IP-VRF | |||
| 4.4.1 and 4.4.3. The support of a MAC Overlay Index in this model is | implementations described in Sections <xref target="sect-4.4.1" format=" | |||
| OPTIONAL.</t> | counter"/> and <xref target="sect-4.4.3" format="counter"/>. The support of a MA | |||
| C Overlay Index in this model is | ||||
| <t>The Overlay Index is None. This is a special case used for | <bcp14>OPTIONAL</bcp14>.</dd> | |||
| <dt>***</dt><dd>The Overlay Index is "None". This is a special case us | ||||
| ed for | ||||
| IP-VRF-to-IP-VRF where the NVE/PEs are connected by IP NVO tunnels as | IP-VRF-to-IP-VRF where the NVE/PEs are connected by IP NVO tunnels as | |||
| opposed to Ethernet NVO tunnels.</t> | opposed to Ethernet NVO tunnels.</dd> | |||
| </dl> | ||||
| </list> | <t> | |||
| </t> | If the combination of ESI, GW IP, MAC, and Label in the receiving RT-5 | |||
| is different than the combinations shown in <xref target="fields_overlay_tabl | ||||
| <t> | e"/>, the router will | |||
| If the combination of ESI, GW IP, MAC and Label in the receiving RT-5 | ||||
| is different than the combinations shown in Table 1, the router will | ||||
| process the route as per the rules described at the beginning of this | process the route as per the rules described at the beginning of this | |||
| Section (3.2).</t> | section (<xref target="sect-3.2" format="default"/>).</t> | |||
| <t> | ||||
| <t> | <xref target="use_overlay_table"/> shows the different inter-subnet use cases | |||
| Table 2 shows the different inter-subnet use-cases described in this | described in this | |||
| document and the corresponding coding of the Overlay Index in the | document and the corresponding coding of the Overlay Index in the | |||
| route type 5 (RT-5).</t> | route type 5 (RT-5).</t> | |||
| <!-- [rfced] id2xml converted the following table to artwork. Please review --> | <table anchor="use_overlay_table"> | |||
| <name>Use Cases and Overlay Indexes for Recursive Resolution</name> | ||||
| <figure><artwork><![CDATA[ | <thead> | |||
| +---------+---------------------+----------------------------+ | <tr> | |||
| | Section | Use-case | Overlay Index in the RT-5 | | <th>Section</th> | |||
| +-------------------------------+----------------------------+ | <th>Use Case</th> | |||
| | 4.1 | TS IP address | GW IP | | <th>Overlay Index in the RT-5</th> | |||
| | 4.2 | Floating IP address | GW IP | | </tr> | |||
| | 4.3 | "Bump in the wire" | ESI or MAC | | </thead> | |||
| | 4.4 | IP-VRF-to-IP-VRF | GW IP, MAC or None | | <tbody> | |||
| +---------+---------------------+----------------------------+ | <tr> | |||
| <td><xref target="sect-4.1" format="counter"/></td> | ||||
| Use-cases and Overlay Indexes for Recursive Resolution | <td>TS IP address</td> | |||
| ]]></artwork> | <td>GW IP</td> | |||
| </figure> | </tr> | |||
| <t> | <tr> | |||
| The above use-cases are representative of the different Overlay | <td><xref target="sect-4.2" format="counter"/></td> | |||
| Indexes supported by RT-5 (GW IP, ESI, MAC or None).</t> | <td>Floating IP address</td> | |||
| <td>GW IP</td> | ||||
| </section> | </tr> | |||
| <tr> | ||||
| <td><xref target="sect-4.3" format="counter"/></td> | ||||
| <td>"Bump-in-the-wire"</td> | ||||
| <td>ESI or MAC</td> | ||||
| </tr> | ||||
| <tr> | ||||
| <td><xref target="sect-4.4" format="counter"/></td> | ||||
| <td>IP-VRF-to-IP-VRF</td> | ||||
| <td>GW IP, MAC, or None</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | <t> | |||
| The above use cases are representative of the different Overlay | ||||
| Indexes supported by the RT-5 (GW IP, ESI, MAC, or None).</t> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="sect-4" numbered="true" toc="default"> | ||||
| <name>Overlay Index Use Cases</name> | ||||
| <t> This | ||||
| section describes some use cases for the Overlay Index types used with | ||||
| the IP Prefix route. | ||||
| <section title="Overlay Index Use-Cases" anchor="sect-4"><t> This | Although the examples use IPv4 prefixes and | |||
| Section describes some use-cases for the Overlay Index types used with | ||||
| the IP Prefix route. Although the examples use IPv4 Prefixes and | ||||
| subnets, the descriptions of the RT-5 are valid for the same cases | subnets, the descriptions of the RT-5 are valid for the same cases | |||
| with IPv6, only replacing the IP Prefixes, IPL and GW IP by the | with IPv6, except that IP Prefixes, IPL, and GW IP are replaced by the | |||
| corresponding IPv6 values.</t> | corresponding IPv6 values.</t> | |||
| <section anchor="sect-4.1" numbered="true" toc="default"> | ||||
| <section title="TS IP Address Overlay Index Use-Case" anchor="sect-4.1"> | <name>TS IP Address Overlay Index Use Case</name> | |||
| <t><xref target="fig-2"/> illustrates an example of inter-subnet forward | ||||
| <t>Figure 5 illustrates an example of inter-subnet forwarding for | ing for | |||
| subnets sitting behind Virtual Appliances (on TS2 and TS3).</t> | subnets sitting behind VAs (on TS2 and TS3).</t> | |||
| <figure anchor="fig-2"> | ||||
| <figure title="TS IP address use-case" anchor="fig-2"> | <name>TS IP Address Use Case</name> | |||
| <artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| IP4---+ NVE2 DGW1 | IP4---+ NVE2 DGW1 | |||
| | +-----------+ +---------+ +-------------+ | | +-----------+ +---------+ +-------------+ | |||
| SN2---TS2(VA)--| (BD-10) |-| |----| (BD-10) | | SN2---TS2(VA)--| (BD-10) |-| |----| (BD-10) | | |||
| | IP2/M2 +-----------+ | | | IRB1\ | | | M2/IP2 +-----------+ | | | IRB1\ | | |||
| -+---+ | | | (IP-VRF)|---+ | -+---+ | | | (IP-VRF)|---+ | |||
| | | | +-------------+ _|_ | | | | +-------------+ _|_ | |||
| SN1 | VXLAN/ | ( ) | SN1 | VXLAN/ | ( ) | |||
| | | GENEVE | DGW2 ( WAN ) | | | GENEVE | DGW2 ( WAN ) | |||
| -+---+ NVE3 | | +-------------+ (___) | -+---+ NVE3 | | +-------------+ (___) | |||
| | IP3/M3 +-----------+ | |----| (BD-10) | | | | M3/IP3 +-----------+ | |----| (BD-10) | | | |||
| SN3---TS3(VA)--| (BD-10) |-| | | IRB2\ | | | SN3---TS3(VA)--| (BD-10) |-| | | IRB2\ | | | |||
| | +-----------+ +---------+ | (IP-VRF)|---+ | | +-----------+ +---------+ | (IP-VRF)|---+ | |||
| IP5---+ +-------------+ | IP5---+ +-------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| An example of inter-subnet forwarding between subnet SN1, which uses | An example of inter-subnet forwarding between subnet SN1, which uses | |||
| a 24 bit IP prefix (written as SN1/24 in future), and a subnet | a 24-bit IP prefix (written as SN1/24 in the future), and a subnet | |||
| sitting in the WAN is described below. NVE2, NVE3, DGW1 and DGW2 are | sitting in the WAN is described below. NVE2, NVE3, DGW1, and DGW2 are | |||
| running BGP EVPN. TS2 and TS3 do not participate in dynamic routing | running BGP EVPN. TS2 and TS3 do not participate in dynamic routing | |||
| protocols, and they only have a static route to forward the traffic | protocols, and they only have a static route to forward the traffic | |||
| to the WAN. SN1/24 is dual-homed to NVE2 and NVE3.</t> | to the WAN. SN1/24 is dual-homed to NVE2 and NVE3.</t> | |||
| <t> | ||||
| <t> | ||||
| In this case, a GW IP is used as an Overlay Index. Although a | In this case, a GW IP is used as an Overlay Index. Although a | |||
| different Overlay Index type could have been used, this use-case | different Overlay Index type could have been used, this use case | |||
| assumes that the operator knows the VA's IP addresses beforehand, | assumes that the operator knows the VA's IP addresses beforehand, | |||
| whereas the VA's MAC address is unknown and the VA's ESI is zero. | whereas the VA's MAC address is unknown and the VA's ESI is zero. | |||
| Because of this, the GW IP is the suitable Overlay Index to be used | Because of this, the GW IP is the suitable Overlay Index to be used | |||
| with the RT-5s. The NVEs know the GW IP to be used for a given Prefix | with the RT-5s. The NVEs know the GW IP to be used for a given prefix | |||
| by policy. | by policy. | |||
| <list style="format (%d)"> | ||||
| <t>NVE2 advertises the following BGP routes on behalf of TS2: | ||||
| <list style="symbols"> | ||||
| <t>Route type 2 (MAC/IP route) containing: ML=48 (MAC Address Length), | ||||
| M=M2 (MAC Address), IPL=32 (IP Prefix Length), IP=IP2 and [RFC5512] BGP | ||||
| Encapsulation Extended Community with the corresponding Tunnel type. The | ||||
| MAC and IP addresses may be learned via ARP snooping.</t> | ||||
| <t>Route type 5 (IP Prefix route) containing: IPL=24, IP=SN1, ESI=0, GW | ||||
| IP address=IP2. The prefix and GW IP are learned by policy.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <ol spacing="normal" type="(%d)"> | ||||
| <li> | ||||
| <t>NVE2 advertises the following BGP routes on behalf of TS2: | ||||
| <t>Similarly, NVE3 advertises the following BGP routes on behalf of TS3: | </t> | |||
| <ul spacing="normal"> | ||||
| <list style="symbols"> | ||||
| <t>Route type 2 (MAC/IP route) containing: ML=48, M=M3, IPL=32, IP=IP3 | ||||
| (and BGP Encapsulation Extended Community).</t> | ||||
| <t>Route type 5 (IP Prefix route) containing: IPL=24, IP=SN1, | ||||
| ESI=0, GW IP address=IP3.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>DGW1 and DGW2 import both received routes based on the Route Targets: | <li>Route type 2 (MAC/IP Advertisement route) containing: ML = 48 | |||
| (MAC address length), | ||||
| M = M2 (MAC address), IPL = 32 (IP prefix length), IP = IP2, and BGP | ||||
| Encapsulation Extended Community <xref target="RFC9012"/> with the corresp | ||||
| onding tunnel type. The | ||||
| MAC and IP addresses may be learned via ARP snooping.</li> | ||||
| <li>Route type 5 (IP Prefix route) containing: IPL = 24, IP = SN1, | ||||
| ESI = 0, and GW | ||||
| IP address = IP2. The prefix and GW IP are learned by policy.</li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>Similarly, NVE3 advertises the following BGP routes on behalf of | ||||
| TS3: | ||||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <li>Route type 2 (MAC/IP Advertisement route) containing: ML = 48, | ||||
| M = M3, IPL = 32, IP = IP3 | ||||
| (and BGP Encapsulation Extended Community).</li> | ||||
| <li>Route type 5 (IP Prefix route) containing: IPL = 24, IP = SN1, | ||||
| ESI = 0, and GW IP address = IP3.</li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>DGW1 and DGW2 import both received routes based on the Route Targ | ||||
| ets: | ||||
| <t>Based on the BD-10 Route Target in DGW1 and DGW2, the MAC/IP route | </t> | |||
| is imported and M2 is added to the BD-10 along with its corresponding | <ul spacing="normal"> | |||
| <li>Based on the BD-10 Route Target in DGW1 and DGW2, the MAC/IP A | ||||
| dvertisement route | ||||
| is imported, and M2 is added to the BD-10 along with its corresponding | ||||
| tunnel information. For instance, if VXLAN is used, the VTEP will be | tunnel information. For instance, if VXLAN is used, the VTEP will be | |||
| derived from the MAC/IP route BGP next-hop and VNI from the MPLS Label1 | derived from the MAC/IP Advertisement route BGP next hop and VNI from the | |||
| field. IP2 - M2 is added to the ARP table. Similarly, M3 is added to | MPLS Label1 | |||
| BD-10 and IP3 - M3 to the ARP table.</t> | field. M2/IP2 is added to the ARP table. Similarly, M3 is added to | |||
| BD-10, and M3/IP3 is added to the ARP table.</li> | ||||
| <t>Based on the BD-10 Route Target in DGW1 and DGW2, the IP Prefix | <li>Based on the BD-10 Route Target in DGW1 and DGW2, the IP Prefi | |||
| route is also imported and SN1/24 is added to the IP-VRF with Overlay | x | |||
| route is also imported, and SN1/24 is added to the IP-VRF with Overlay | ||||
| Index IP2 pointing at the local BD-10. In this example, it is assumed | Index IP2 pointing at the local BD-10. In this example, it is assumed | |||
| that the RT-5 from NVE2 is preferred over the RT-5 from NVE3. If both | that the RT-5 from NVE2 is preferred over the RT-5 from NVE3. If both | |||
| routes were equally preferable and ECMP enabled, SN1/24 would also be | routes were equally preferable and ECMP enabled, SN1/24 would also be | |||
| added to the routing table with Overlay Index IP3.</t> | added to the routing table with Overlay Index IP3.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | <li> | |||
| <t> When DGW1 receives a packet from the WAN with destination IPx, where IPx | <t> When DGW1 receives a packet from the WAN with destination IPx, | |||
| belongs to SN1/24: | where IPx belongs to SN1/24: | |||
| <list style="symbols"> | ||||
| <t>A destination IP lookup is performed on the DGW1 IP-VRF routing | </t> | |||
| table and Overlay Index=IP2 is found. Since IP2 is an Overlay Index a | ||||
| recursive route resolution is required for IP2.</t> | ||||
| <t>IP2 is resolved to M2 in the ARP table, and M2 is resolved to the | <ul spacing="normal"> | |||
| <li>A destination IP lookup is performed on the DGW1 IP-VRF table, | ||||
| and Overlay Index = IP2 is found. Since IP2 is an Overlay Index, a | ||||
| recursive route resolution is required for IP2.</li> | ||||
| <li>IP2 is resolved to M2 in the ARP table, and M2 is resolved to | ||||
| the | ||||
| tunnel information given by the BD FIB (e.g., remote VTEP and VNI for | tunnel information given by the BD FIB (e.g., remote VTEP and VNI for | |||
| the VXLAN case).</t> | the VXLAN case).</li> | |||
| <li> | ||||
| <t>The IP packet destined to IPx is encapsulated with: | <t>The IP packet destined to IPx is encapsulated with: | |||
| <list style="symbols"> | ||||
| <t>Source inner MAC = IRB1 MAC.</t> | ||||
| <t>Destination inner MAC = M2.</t> | ||||
| <t>Tunnel information provided by the BD (VNI, VTEP IPs and MACs for | ||||
| the VXLAN case).</t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t>When the packet arrives at NVE2: | ||||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <li>Inner source MAC = IRB1 MAC.</li> | ||||
| <li>Inner destination MAC = M2.</li> | ||||
| <li>Tunnel information provided by the BD (VNI, VTEP IPs, and | ||||
| MACs for | ||||
| the VXLAN case).</li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>When the packet arrives at NVE2: | ||||
| <t>Based on the tunnel information (VNI for the VXLAN case), the BD-10 | </t> | |||
| context is identified for a MAC lookup.</t> | <ul spacing="normal"> | |||
| <li>Based on the tunnel information (VNI for the VXLAN case), the | ||||
| BD-10 | ||||
| context is identified for a MAC lookup.</li> | ||||
| <t>Encapsulation is stripped off and based on a MAC lookup | <li>Encapsulation is stripped off and, based on a MAC lookup | |||
| (assuming MAC forwarding on the egress NVE), the packet is | (assuming MAC forwarding on the egress NVE), the packet is | |||
| forwarded to TS2, where it will be properly routed.</t> | forwarded to TS2, where it will be properly routed.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | <li>Should TS2 move from NVE2 to NVE3, MAC Mobility procedures will be | |||
| applied | ||||
| <t>Should TS2 move from NVE2 to NVE3, MAC Mobility procedures will be applied | to the MAC route M2/IP2, as defined in <xref target="RFC7432"/>. Route type 5 | |||
| to the MAC route IP2/M2, as defined in [RFC7432]. Route type 5 prefixes are | prefixes are not subject to MAC Mobility procedures; hence, no changes in the | |||
| not subject to MAC mobility procedures, hence no changes in the DGW IP-VRF | DGW IP-VRF table will occur for TS2 mobility -- i.e., all the prefixes will stil | |||
| routing table will occur for TS2 mobility, i.e., all the prefixes will still | l | |||
| be pointing at IP2 as Overlay Index. There is an indirection for e.g., SN1/24, | be pointing at IP2 as the Overlay Index. There is an indirection for, e.g., SN1/ | |||
| 24, | ||||
| which still points at Overlay Index IP2 in the routing table, but IP2 will be | which still points at Overlay Index IP2 in the routing table, but IP2 will be | |||
| simply resolved to a different tunnel, based on the outcome of the MAC | simply resolved to a different tunnel based on the outcome of the MAC | |||
| mobility procedures for the MAC/IP route IP2/M2.</t> | Mobility procedures for the MAC/IP Advertisement route M2/IP2.</li> | |||
| </ol> | ||||
| </list> | <t> | |||
| </t> | ||||
| <t> | ||||
| Note that in the opposite direction, TS2 will send traffic based on | Note that in the opposite direction, TS2 will send traffic based on | |||
| its static-route next-hop information (IRB1 and/or IRB2), and regular | its static-route next-hop information (IRB1 and/or IRB2), and regular | |||
| EVPN procedures will be applied.</t> | EVPN procedures will be applied.</t> | |||
| </section> | ||||
| <section anchor="sect-4.2" numbered="true" toc="default"> | ||||
| <name>Floating IP Overlay Index Use Case</name> | ||||
| </section> | <t> | |||
| Sometimes TSs work in active/standby mode where an | ||||
| <section title="Floating IP Overlay Index Use-Case" anchor="sect-4.2"><t> | upstream floating IP owned by the active TS is used as the | |||
| Sometimes Tenant Systems (TS) work in active/standby mode where an | Overlay Index to get to some subnets behind the TS. This redundancy mode, | |||
| upstream floating IP - owned by the active TS - is used as the | already introduced in Sections <xref target="sect-2.1" format="counter"/> and | |||
| Overlay Index to get to some subnets behind. This redundancy mode, | <xref target="sect-2.2" format="counter"/>, is illustrated in <xref target="fig | |||
| already introduced in <xref target="sect-2.1"/> and 2.2, is illustrated in Fi | -3"/>.</t> | |||
| gure | <figure anchor="fig-3"> | |||
| 6.</t> | <name>Floating IP Overlay Index for Redundant TS</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| <figure title="Floating IP Overlay Index for redundant TS" anchor="fig-3"> | ||||
| <artwork><![CDATA[ | ||||
| NVE2 DGW1 | NVE2 DGW1 | |||
| +-----------+ +---------+ +-------------+ | +-----------+ +---------+ +-------------+ | |||
| +---TS2(VA)--| (BD-10) |-| |----| (BD-10) | | +---TS2(VA)--| (BD-10) |-| |----| (BD-10) | | |||
| | IP2/M2 +-----------+ | | | IRB1\ | | | M2/IP2 +-----------+ | | | IRB1\ | | |||
| | <-+ | | | (IP-VRF)|---+ | | <-+ | | | (IP-VRF)|---+ | |||
| | | | | +-------------+ _|_ | | | | | +-------------+ _|_ | |||
| SN1 vIP23 (floating) | VXLAN/ | ( ) | SN1 vIP23 (floating) | VXLAN/ | ( ) | |||
| | | | GENEVE | DGW2 ( WAN ) | | | | GENEVE | DGW2 ( WAN ) | |||
| | <-+ NVE3 | | +-------------+ (___) | | <-+ NVE3 | | +-------------+ (___) | |||
| | IP3/M3 +-----------+ | |----| (BD-10) | | | | M3/IP3 +-----------+ | |----| (BD-10) | | | |||
| +---TS3(VA)--| (BD-10) |-| | | IRB2\ | | | +---TS3(VA)--| (BD-10) |-| | | IRB2\ | | | |||
| +-----------+ +---------+ | (IP-VRF)|---+ | +-----------+ +---------+ | (IP-VRF)|---+ | |||
| +-------------+ | +-------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | <t> | |||
| In this use-case, a GW IP is used as an Overlay Index for the same | In this use case, a GW IP is used as an Overlay Index for the same | |||
| reasons as in 4.1. However, this GW IP is a floating IP that belongs | reasons as in <xref target="sect-4.1" format="default"/>. However, this GW IP | |||
| is a floating IP that belongs | ||||
| to the active TS. Assuming TS2 is the active TS and owns vIP23: | to the active TS. Assuming TS2 is the active TS and owns vIP23: | |||
| <list style="format (%d)"> | ||||
| <t>NVE2 advertises the following BGP routes for TS2: | ||||
| <list style="symbols"> | ||||
| <t>Route type 2 (MAC/IP route) containing: ML=48, M=M2, IPL=32, | ||||
| IP=vIP23 (and BGP Encapsulation Extended Community). The MAC and IP | ||||
| addresses may be learned via ARP snooping.</t> | ||||
| <t>Route type 5 (IP Prefix route) containing: IPL=24, IP=SN1, ESI=0, GW | ||||
| IP address=vIP23. The prefix and GW IP are learned by policy.</t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <ol spacing="normal" type="(%d)"> | ||||
| <li> | ||||
| <t>NVE2 advertises the following BGP routes for TS2: | ||||
| <t>NVE3 advertises the following BGP route for TS3 (it does not advertise an | </t> | |||
| RT-2 for vIP23/M3): | <ul spacing="normal"> | |||
| <li>Route type 2 (MAC/IP Advertisement route) containing: ML = 48, | ||||
| <list style="symbols"> | M = M2, IPL = 32, and | |||
| IP = vIP23 (as well as BGP Encapsulation Extended Community). The MAC and | ||||
| <t>Route type 5 (IP Prefix route) containing: IPL=24, IP=SN1, ESI=0, GW | IP | |||
| IP address=vIP23. The prefix and GW IP are learned by policy.</t> | addresses may be learned via ARP snooping.</li> | |||
| <li>Route type 5 (IP Prefix route) containing: IPL = 24, IP = SN1, | ||||
| </list> | ESI = 0, and GW | |||
| </t> | IP address = vIP23. The prefix and GW IP are learned by policy.</li> | |||
| <t>DGW1 and DGW2 import both received routes based on the Route Target: | </ul> | |||
| </li> | ||||
| <li> | ||||
| <t>NVE3 advertises the following BGP route for TS3 (it does not adve | ||||
| rtise an | ||||
| RT-2 for M3/vIP23): | ||||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <li>Route type 5 (IP Prefix route) containing: IPL = 24, IP = SN1, | ||||
| ESI = 0, and GW | ||||
| IP address = vIP23. The prefix and GW IP are learned by policy.</li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>DGW1 and DGW2 import both received routes based on the Route Targ | ||||
| et: | ||||
| <t>M2 is added to the BD-10 FIB along with its corresponding tunnel | </t> | |||
| <ul spacing="normal"> | ||||
| <li>M2 is added to the BD-10 FIB along with its corresponding tunn | ||||
| el | ||||
| information. For the VXLAN use case, the VTEP will be derived from the | information. For the VXLAN use case, the VTEP will be derived from the | |||
| MAC/IP route BGP next-hop and VNI from the VNI field. vIP23 - M2 is added | MAC/IP Advertisement route BGP next hop and VNI from the VNI field. M2/vIP2 | |||
| to the ARP table.</t> | 3 is added | |||
| to the ARP table.</li> | ||||
| <t>SN1/24 is added to the IP-VRF in DGW1 and DGW2 with Overlay index | <li>SN1/24 is added to the IP-VRF in DGW1 and DGW2 with Overlay In | |||
| vIP23 pointing at M2 in the local BD-10.</t> | dex | |||
| vIP23 pointing at M2 in the local BD-10.</li> | ||||
| </list> | </ul> | |||
| </t> | </li> | |||
| <li> | ||||
| <t>When DGW1 receives a packet from the WAN with destination IPx, where IPx | <t>When DGW1 receives a packet from the WAN with destination IPx, wh | |||
| ere IPx | ||||
| belongs to SN1/24: | belongs to SN1/24: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>A destination IP lookup is performed on the DGW1 IP-VRF routing table | <li>A destination IP lookup is performed on the DGW1 IP-VRF table, | |||
| and Overlay Index=vIP23 is found. Since vIP23 is an Overlay Index, a | and Overlay Index = vIP23 is found. Since vIP23 is an Overlay Index, a | |||
| recursive route resolution for vIP23 is required.</t> | recursive route resolution for vIP23 is required.</li> | |||
| <li>vIP23 is resolved to M2 in the ARP table, and M2 is resolved t | ||||
| <t>vIP23 is resolved to M2 in the ARP table, and M2 is resolved to the | o the | |||
| tunnel information given by the BD (remote VTEP and VNI for the VXLAN | tunnel information given by the BD (remote VTEP and VNI for the VXLAN | |||
| case).</t> | case).</li> | |||
| <li> | ||||
| <t>The IP packet destined to IPx is encapsulated with: | <t>The IP packet destined to IPx is encapsulated with: | |||
| <list style="symbols"> | ||||
| <t>Source inner MAC = IRB1 MAC.</t> | ||||
| <t>Destination inner MAC = M2.</t> | ||||
| <t>Tunnel information provided by the BD FIB (VNI, VTEP IPs and MACs | ||||
| for the VXLAN case).</t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t>When the packet arrives at NVE2: | ||||
| <list style="symbols"> | ||||
| <t>Based on the tunnel information (VNI for the VXLAN case), the BD-10 | </t> | |||
| context is identified for a MAC lookup.</t> | <ul spacing="normal"> | |||
| <li>Inner source MAC = IRB1 MAC.</li> | ||||
| <li>Inner destination MAC = M2.</li> | ||||
| <li>Tunnel information provided by the BD FIB (VNI, VTEP IPs, | ||||
| and MACs | ||||
| for the VXLAN case).</li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>When the packet arrives at NVE2: | ||||
| <t>Encapsulation is stripped off and based on a MAC lookup (assuming | </t> | |||
| <ul spacing="normal"> | ||||
| <li>Based on the tunnel information (VNI for the VXLAN case), the | ||||
| BD-10 | ||||
| context is identified for a MAC lookup.</li> | ||||
| <li>Encapsulation is stripped off and, based on a MAC lookup (assu | ||||
| ming | ||||
| MAC forwarding on the egress NVE), the packet is forwarded to TS2, | MAC forwarding on the egress NVE), the packet is forwarded to TS2, | |||
| where it will be properly routed.</t> | where it will be properly routed.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | <li>When the redundancy protocol running between TS2 and TS3 appoints | |||
| TS3 as | ||||
| <t>When the redundancy protocol running between TS2 and TS3 appoints TS3 as | ||||
| the new active TS for SN1, TS3 will now own the floating vIP23 and will signal | the new active TS for SN1, TS3 will now own the floating vIP23 and will signal | |||
| this new ownership, using a gratuitous ARP REPLY message (explained in <xref | this new ownership using a gratuitous ARP REPLY message (explained in <xref targ | |||
| target="RFC5227"/>) or similar. Upon receiving the new owner's notification, | et="RFC5227" format="default"/>) or similar. Upon receiving the new owner's noti | |||
| NVE3 will issue a route type 2 for M3-vIP23 and NVE2 will withdraw the RT-2 | fication, | |||
| for M2-vIP23. DGW1 and DGW2 will update their ARP tables with the new MAC | NVE3 will issue a route type 2 for M3/vIP23, and NVE2 will withdraw the RT-2 | |||
| resolving the floating IP. No changes are made in the IP-VRF routing | for M2/vIP23. DGW1 and DGW2 will update their ARP tables with the new MAC | |||
| table.</t> | resolving the floating IP. No changes are made in the IP-VRF table.</li> | |||
| </ol> | ||||
| </list> | </section> | |||
| </t> | <section anchor="sect-4.3" numbered="true" toc="default"> | |||
| <name>Bump-in-the-Wire Use Case</name> | ||||
| </section> | <t> | |||
| <xref target="fig-4"/> illustrates an example of inter-subnet forwarding for an | ||||
| <section title="Bump-in-the-Wire Use-Case" anchor="sect-4.3"><t> | IP | |||
| Figure 7 illustrates an example of inter-subnet forwarding for an IP | Prefix route that carries subnet SN1. In this use case, TS2 and TS3 | |||
| Prefix route that carries a subnet SN1. In this use-case, TS2 and TS3 | are Layer 2 VA devices without any IP addresses that can be included as | |||
| are layer 2 VA devices without any IP address that can be included as | ||||
| an Overlay Index in the GW IP field of the IP Prefix route. Their MAC | an Overlay Index in the GW IP field of the IP Prefix route. Their MAC | |||
| addresses are M2 and M3 respectively and are connected to BD-10. Note | addresses are M2 and M3, respectively, and are connected to BD-10. Note | |||
| that IRB1 and IRB2 (in DGW1 and DGW2 respectively) have IP addresses | that IRB1 and IRB2 (in DGW1 and DGW2, respectively) have IP addresses | |||
| in a subnet different than SN1.</t> | in a subnet different than SN1.</t> | |||
| <figure anchor="fig-4"> | ||||
| <figure title="Bump-in-the-wire use-case" anchor="fig-4"> | <name>Bump-in-the-Wire Use Case</name> | |||
| <artwork><![CDATA[ | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| NVE2 DGW1 | NVE2 DGW1 | |||
| M2 +-----------+ +---------+ +-------------+ | M2 +-----------+ +---------+ +-------------+ | |||
| +---TS2(VA)--| (BD-10) |-| |----| (BD-10) | | +---TS2(VA)--| (BD-10) |-| |----| (BD-10) | | |||
| | ESI23 +-----------+ | | | IRB1\ | | | ESI23 +-----------+ | | | IRB1\ | | |||
| | + | | | (IP-VRF)|---+ | | + | | | (IP-VRF)|---+ | |||
| | | | | +-------------+ _|_ | | | | | +-------------+ _|_ | |||
| SN1 | | VXLAN/ | ( ) | SN1 | | VXLAN/ | ( ) | |||
| | | | GENEVE | DGW2 ( WAN ) | | | | GENEVE | DGW2 ( WAN ) | |||
| | + NVE3 | | +-------------+ (___) | | + NVE3 | | +-------------+ (___) | |||
| | ESI23 +-----------+ | |----| (BD-10) | | | | ESI23 +-----------+ | |----| (BD-10) | | | |||
| +---TS3(VA)--| (BD-10) |-| | | IRB2\ | | | +---TS3(VA)--| (BD-10) |-| | | IRB2\ | | | |||
| M3 +-----------+ +---------+ | (IP-VRF)|---+ | M3 +-----------+ +---------+ | (IP-VRF)|---+ | |||
| +-------------+ | +-------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> | ||||
| Since neither TS2 nor TS3 can participate in any dynamic routing | ||||
| protocol and have no IP address assigned, there are two potential | ||||
| Overlay Index types that can be used when advertising SN1: | ||||
| <list style="format (%c)"> | ||||
| <t>an ESI, i.e., ESI23, that can be provisioned on the attachment | ||||
| ports of NVE2 and NVE3, as shown in Figure 7.</t> | ||||
| <t>or the VA's MAC address, that can be added to NVE2 and NVE3 by | ||||
| policy.</t> | ||||
| </list> | <t> | |||
| </t> | Since TS2 and TS3 cannot participate in any dynamic routing | |||
| protocol and neither has an IP address assigned, there are two potential | ||||
| Overlay Index types that can be used when advertising SN1: | ||||
| <t> | </t> | |||
| The advantage of using an ESI as Overlay Index as opposed to the VA's MAC | <ol spacing="normal" type="%c)"> | |||
| address, is that the forwarding to the egress NVE can be done purely based | <li>an ESI, i.e., ESI23, that can be provisioned on the attachment | |||
| on the state of the AC in the ES (notified by the Ethernet A-D per-EVI | ports of NVE2 and NVE3, as shown in <xref target="fig-4"/> or</li> | |||
| route) and all the EVPN multi-homing redundancy mechanisms can be | <li>the VA's MAC address, which can be added to NVE2 and NVE3 by | |||
| reused. For instance, the <xref target="RFC7432"/> mass-withdrawal mechanism | policy.</li> | |||
| for fast | </ol> | |||
| failure detection and propagation can be used. This Section assumes that | <t> | |||
| an ESI Overlay Index is used in this use-case but it does not prevent the | The advantage of using an ESI as the Overlay Index as opposed to the VA's MAC | |||
| address is that the forwarding to the egress NVE can be done purely based | ||||
| on the state of the AC in the Ethernet segment (notified by the Ethernet A-D | ||||
| per EVI | ||||
| route), and all the EVPN multihoming redundancy mechanisms can be | ||||
| reused. For instance, the mass withdrawal mechanism described in <xref target | ||||
| ="RFC7432" format="default"/> for fast | ||||
| failure detection and propagation can be used. It is assumed per this sectio | ||||
| n that | ||||
| an ESI Overlay Index is used in this use case, but this use case does not pre | ||||
| clude the | ||||
| use of the VA's MAC address as an Overlay Index. If a MAC is used as | use of the VA's MAC address as an Overlay Index. If a MAC is used as | |||
| Overlay Index, the control plane must follow the procedures described in | the Overlay Index, the control plane must follow the procedures described in | |||
| <xref target="sect-4.4.3"/>.</t> | <xref target="sect-4.4.3" format="default"/>.</t> | |||
| <t> | ||||
| <t> | ||||
| The model supports VA redundancy in a similar way to the one | The model supports VA redundancy in a similar way to the one | |||
| described in <xref target="sect-4.2"/> for the floating IP Overlay Index use- | described in <xref target="sect-4.2" format="default"/> for the floating IP O | |||
| case, | verlay Index use case, | |||
| except that it uses the EVPN Ethernet A-D per-EVI route instead of | except that it uses the EVPN Ethernet A-D per EVI route instead of | |||
| the MAC advertisement route to advertise the location of the Overlay | the MAC advertisement route to advertise the location of the Overlay | |||
| Index. The procedure is explained below: | Index. The procedure is explained below: | |||
| <list style="format (%d)"> | </t> | |||
| <ol spacing="normal" type="(%d)"> | ||||
| <t> Assuming TS2 is the active TS in ESI23, NVE2 advertises the | <li> | |||
| <t> Assuming TS2 is the active TS in ESI23, NVE2 advertises the | ||||
| following BGP routes: | following BGP routes: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>Route type 1 (Ethernet A-D route for BD-10) containing: ESI=ESI23 and | <li>Route type 1 (Ethernet A-D route for BD-10) containing: ESI = | |||
| ESI23 and | ||||
| the corresponding tunnel information (VNI field), as well as the BGP | the corresponding tunnel information (VNI field), as well as the BGP | |||
| Encapsulation Extended Community as per [RFC8365].</t> | Encapsulation Extended Community as per <xref target="RFC8365"/>.</li> | |||
| <li>Route type 5 (IP Prefix route) containing: IPL = 24, IP = SN1, | ||||
| <t>Route type 5 (IP Prefix route) containing: IPL=24, IP=SN1, ESI=ESI23, | ESI = ESI23, and GW IP address = 0. The EVPN Router's MAC Extended | |||
| GW IP address=0. The Router's MAC Extended Community defined in | Community defined in | |||
| [EVPN-INTERSUBNET] is added and carries the MAC address (M2) associated | <xref target="RFC9135"/> is added and carries the MAC address (M2) | |||
| to the TS behind which SN1 sits. M2 may be learned by policy, however the | associated with the TS behind which SN1 sits. M2 may be learned by policy; | |||
| MAC in the Extended Community is preferred if sent with the route.</t> | however, the | |||
| MAC in the Extended Community is preferred if sent with the route.</li> | ||||
| </list> | </ul> | |||
| </t> | </li> | |||
| <li> | ||||
| <t>NVE3 advertises the following BGP route for TS3 (no AD per-EVI route is | <t>NVE3 advertises the following BGP route for TS3 (no AD per EVI ro | |||
| ute is | ||||
| advertised): | advertised): | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>Route type 5 (IP Prefix route) containing: IPL=24, IP=SN1, ESI=23, | <li>Route type 5 (IP Prefix route) containing: IPL = 24, IP = SN1, | |||
| GW IP address=0. The Router's MAC Extended Community is added and | ESI = 23, and GW IP address = 0. The EVPN Router's MAC Extended Com | |||
| carries the MAC address (M3) associated to the TS behind which SN1 | munity is added and | |||
| sits. M3 may be learned by policy, however the MAC in the Extended | carries the MAC address (M3) associated with the TS behind which SN1 | |||
| Community is preferred if sent with the route.</t> | sits. M3 may be learned by policy; however, the MAC in the Extended | |||
| Community is preferred if sent with the route.</li> | ||||
| </list> | </ul> | |||
| </t> | </li> | |||
| <li> | ||||
| <t>DGW1 and DGW2 import the received routes based on the Route Target: | <t>DGW1 and DGW2 import the received routes based on the Route Targe | |||
| t: | ||||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>The tunnel information to get to ESI23 is installed in DGW1 and | <li>The tunnel information to get to ESI23 is installed in DGW1 an d | |||
| DGW2. For the VXLAN use case, the VTEP will be derived from the | DGW2. For the VXLAN use case, the VTEP will be derived from the | |||
| Ethernet A-D route BGP next-hop and VNI from the VNI/VSID field (see | Ethernet A-D route BGP next hop and VNI from the VNI/VSID field (see | |||
| [RFC8365]).</t> | <xref target="RFC8365"/>).</li> | |||
| <li>The RT-5 coming from the NVE that advertised the RT-1 is | ||||
| <t>The RT-5 coming from the NVE that advertised the RT-1 is selected | selected, and SN1/24 is added to the IP-VRF in DGW1 and DGW2 with O | |||
| and SN1/24 is added to the IP-VRF in DGW1 and DGW2 with Overlay Index | verlay Index | |||
| ESI23 and MAC = M2.</t> | ESI23 and MAC = M2.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | <li> | |||
| <t>When DGW1 receives a packet from the WAN with destination IPx, wh | ||||
| <t>When DGW1 receives a packet from the WAN with destination IPx, where IPx | ere IPx | |||
| belongs to SN1/24: | belongs to SN1/24: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>A destination IP lookup is performed on the DGW1 IP-VRF routing | <li>A destination IP lookup is performed on the DGW1 IP-VRF table, | |||
| table and Overlay Index=ESI23 is found. Since ESI23 is an Overlay | and Overlay Index = ESI23 is found. Since ESI23 is an Overlay | |||
| Index, a recursive route resolution is required to find the egress NVE | Index, a recursive route resolution is required to find the egress NVE | |||
| where ESI23 resides.</t> | where ESI23 resides.</li> | |||
| <li> | ||||
| <t>The IP packet destined to IPx is encapsulated with: | <t>The IP packet destined to IPx is encapsulated with: | |||
| <list style="symbols"> | ||||
| <t>Source inner MAC = IRB1 MAC.</t> | ||||
| <t>Destination inner MAC = M2 (this MAC will be obtained from the | ||||
| Router's MAC Extended Community received along with the RT-5 for | ||||
| SN1). Note that the Router's MAC Extended Community is used in this | ||||
| case to carry the TS' MAC address, as opposed to the NVE/PE's MAC | ||||
| address.</t> | ||||
| <t>Tunnel information for the NVO tunnel is provided by the Ethernet | ||||
| A-D route per-EVI for ESI23 (VNI and VTEP IP for the VXLAN | ||||
| case).</t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t>When the packet arrives at NVE2: | ||||
| <list style="symbols"> | ||||
| <t>Based on the tunnel demultiplexer information (VNI for the VXLAN | </t> | |||
| case), the BD-10 context is identified for a MAC lookup (assuming | <ul spacing="normal"> | |||
| MAC-based disposition model [RFC7432]) or the VNI may directly identify | <li>Inner source MAC = IRB1 MAC.</li> | |||
| the egress interface (for a MPLS-based disposition model, which in this | <li>Inner destination MAC = M2 (this MAC will be obtained from | |||
| context is a VNI-based disposition model).</t> | the | |||
| EVPN Router's MAC Extended Community received along with the RT-5 for | ||||
| SN1). Note that the EVPN Router's MAC Extended Community is used in th | ||||
| is | ||||
| case to carry the TS's MAC address, as opposed to the MAC | ||||
| address of the NVE/PE.</li> | ||||
| <li>Tunnel information for the NVO tunnel is provided by the E | ||||
| thernet | ||||
| A-D route per EVI for ESI23 (VNI and VTEP IP for the VXLAN | ||||
| case).</li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>When the packet arrives at NVE2: | ||||
| <t>Encapsulation is stripped off and based on a MAC lookup (assuming MAC | </t> | |||
| <ul spacing="normal"> | ||||
| <li>Based on the tunnel demultiplexer information (VNI for the VXL | ||||
| AN | ||||
| case), the BD-10 context is identified for a MAC lookup (assuming a MAC-bas | ||||
| ed disposition model <xref target="RFC7432"/>), or the VNI may directly identify | ||||
| the egress interface (for an MPLS-based disposition model, which in this | ||||
| context is a VNI-based disposition model).</li> | ||||
| <li>Encapsulation is stripped off and, based on a MAC lookup (assu | ||||
| ming MAC | ||||
| forwarding on the egress NVE) or a VNI lookup (in case of VNI | forwarding on the egress NVE) or a VNI lookup (in case of VNI | |||
| forwarding), the packet is forwarded to TS2, where it will be forwarded | forwarding), the packet is forwarded to TS2, where it will be forwarded | |||
| to SN1.</t> | to SN1.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | ||||
| <t>If the redundancy protocol running between TS2 and TS3 follows an | <li>If the redundancy protocol running between TS2 and TS3 follows an | |||
| active/standby model and there is a failure, appointing TS3 as the new active | active/standby model and there is a failure, TS3 is appointed as the new active | |||
| TS for SN1, TS3 will now own the connectivity to SN1 and will signal this new | TS for SN1. TS3 will now own the connectivity to SN1 and will signal this new | |||
| ownership. Upon receiving the new owner's notification, NVE3's AC will become | ownership. Upon receiving the new owner's notification, NVE3's AC will become | |||
| active and issue a route type 1 for ESI23, whereas NVE2 will withdraw its | active and issue a route type 1 for ESI23, whereas NVE2 will withdraw its | |||
| Ethernet A-D route for ESI23. DGW1 and DGW2 will update their tunnel | Ethernet A-D route for ESI23. DGW1 and DGW2 will update their tunnel | |||
| information to resolve ESI23. The destination inner MAC will be changed to | information to resolve ESI23. The inner destination MAC will be changed to | |||
| M3.</t> | M3.</li> | |||
| </ol> | ||||
| </list> | </section> | |||
| </t> | <section anchor="sect-4.4" numbered="true" toc="default"> | |||
| <name>IP-VRF-to-IP-VRF Model</name> | ||||
| </section> | <t> | |||
| This use case is similar to the scenario described in <xref target="RFC9135" | ||||
| <section title="IP-VRF-to-IP-VRF Model" anchor="sect-4.4"><t> | sectionFormat="of" section="9.1"/>; however, the new | |||
| This use-case is similar to the scenario described in "IRB forwarding on NVEs | requirement here is the advertisement of IP prefixes as opposed to | |||
| for Tenant Systems" in <xref target="I-D.ietf-bess-evpn-inter-subnet-forwarding | ||||
| "/>, however the new | ||||
| requirement here is the advertisement of IP Prefixes as opposed to | ||||
| only host routes.</t> | only host routes.</t> | |||
| <t> | ||||
| <t> | In the examples described in Sections <xref target="sect-4.1" format="counter | |||
| In the examples described in Sections 4.1, 4.2 and 4.3, the BD | "/>, <xref target="sect-4.2" format="counter"/>, and <xref target="sect-4.3" for | |||
| mat="counter"/>, the BD | ||||
| instance can connect IRB interfaces and any other Tenant Systems | instance can connect IRB interfaces and any other Tenant Systems | |||
| connected to it. EVPN provides connectivity for:</t> | connected to it. EVPN provides connectivity for:</t> | |||
| <ol spacing="normal" type="1"> | ||||
| <t><list style="numbers"> | <li anchor="step1">Traffic destined to the IRB or TS IP interfaces, as | |||
| <t>Traffic destined to the IRB or TS IP interfaces as well as</t> | well as</li> | |||
| <li anchor="step2">Traffic destined to IP subnets sitting behind the T | ||||
| <t>Traffic destined to IP subnets sitting behind the TS, e.g., SN1 | S, e.g., SN1 | |||
| or SN2.</t> | or SN2.</li> | |||
| </ol> | ||||
| </list> | <t> | |||
| </t> | In order to provide connectivity for <xref target="step1" format="none">(1)</ | |||
| xref>, MAC/IP Advertisement routes (RT-2) are | ||||
| <t> | ||||
| In order to provide connectivity for (1), MAC/IP routes (RT-2) are | ||||
| needed so that IRB or TS MACs and IPs can be distributed. | needed so that IRB or TS MACs and IPs can be distributed. | |||
| Connectivity type (2) is accomplished by the exchange of IP Prefix | Connectivity type <xref target="step2" format="none">(2)</xref> is accomplish ed by the exchange of IP Prefix | |||
| routes (RT-5) for IPs and subnets sitting behind certain Overlay | routes (RT-5) for IPs and subnets sitting behind certain Overlay | |||
| Indexes, e.g., GW IP or ESI or TS MAC.</t> | Indexes, e.g., GW IP, ESI, or TS MAC.</t> | |||
| <t> | ||||
| <t> | ||||
| In some cases, IP Prefix routes may be advertised for subnets and IPs | In some cases, IP Prefix routes may be advertised for subnets and IPs | |||
| sitting behind an IRB. This use-case is referred to as the | sitting behind an IRB. This use case is referred to as the | |||
| "IP-VRF-to-IP-VRF" model.</t> | "IP-VRF-to-IP-VRF" model.</t> | |||
| <t> | ||||
| <t> | <xref target="RFC9135" format="default"/> defines an asymmetric IRB model and | |||
| <xref target="I-D.ietf-bess-evpn-inter-subnet-forwarding"/> defines an asymme | a symmetric | |||
| tric IRB model and a symmetric | IRB model based on the required lookups at the ingress and egress | |||
| IRB model, based on the required lookups at the ingress and egress | NVE. The asymmetric model requires an IP lookup and a MAC lookup at | |||
| NVE: the asymmetric model requires an IP lookup and a MAC lookup at | ||||
| the ingress NVE, whereas only a MAC lookup is needed at the egress | the ingress NVE, whereas only a MAC lookup is needed at the egress | |||
| NVE; the symmetric model requires IP and MAC lookups at both, ingress | NVE; the symmetric model requires IP and MAC lookups at both the ingress | |||
| and egress NVE. From that perspective, the IP-VRF-to-IP-VRF use-case | and egress NVE. From that perspective, the IP-VRF-to-IP-VRF use case | |||
| described in this Section is a symmetric IRB model.</t> | described in this section is a symmetric IRB model.</t> | |||
| <t> | ||||
| <t> | Note that in an IP-VRF-to-IP-VRF scenario, out of the many subnets that a | |||
| Note that, in an IP-VRF-to-IP-VRF scenario, out of the many subnets that a | ||||
| tenant may have, it may be the case that only a few are attached to a given | tenant may have, it may be the case that only a few are attached to a given | |||
| NVE/PE's IP-VRF. In order to provide inter-subnet connectivity among the | IP-VRF of the NVE/PE. In order to provide inter-subnet connectivity among the | |||
| set of NVE/PEs where the tenant is connected, a new SBD is created on all | set of NVE/PEs where the tenant is connected, a new SBD is created on all | |||
| of them if recursive resolution is needed. This SBD is instantiated as a | of them if a recursive resolution is needed. This SBD is instantiated as a | |||
| regular BD (with no ACs) in each NVE/PE and has an IRB interface that | regular BD (with no ACs) in each NVE/PE and has an IRB interface that | |||
| connects the SBD to the IP-VRF. The IRB interface's IP or MAC address is | connects the SBD to the IP-VRF. The IRB interface's IP or MAC address is | |||
| used as the overlay index for recursive resolution.</t> | used as the Overlay Index for a recursive resolution.</t> | |||
| <t> | ||||
| <t> | ||||
| Depending on the existence and characteristics of the SBD and IRB | Depending on the existence and characteristics of the SBD and IRB | |||
| interfaces for the IP-VRFs, there are three different IP-VRF-to-IP-VRF | interfaces for the IP-VRFs, there are three different IP-VRF-to-IP-VRF | |||
| scenarios identified and described in this document: | scenarios identified and described in this document: | |||
| <list style="hanging" hangIndent="3"> | </t> | |||
| <ol> | ||||
| <t hangText="Interface-less model:">no SBD and no overlay indexes | <li>Interface-less model: no SBD and no Overlay Indexes required.</li> | |||
| required.</t> | <li>Interface-ful with an SBD IRB model: requires SBD as well as GW IP addresses | |||
| as Overlay Indexes.</li> | ||||
| <t hangText="Interface-ful with SBD IRB model:"> it requires SBD, as | <li>Interface-ful with an unnumbered SBD IRB model: requires SBD as well as MAC | |||
| well as GW IP addresses as overlay indexes.</t> | addresses as Overlay Indexes.</li> | |||
| </ol> | ||||
| <t hangText="Interface-ful with unnumbered SBD IRB model:"> it | <t> | |||
| requires SBD, as well as MAC addresses as overlay indexes.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| Inter-subnet IP multicast is outside the scope of this document.</t> | Inter-subnet IP multicast is outside the scope of this document.</t> | |||
| <section anchor="sect-4.4.1" numbered="true" toc="default"> | ||||
| <name>Interface-less IP-VRF-to-IP-VRF Model</name> | ||||
| <section title="Interface-less IP-VRF-to-IP-VRF Model" | <t><xref target="fig-5"/> depicts the Interface-less IP-VRF-to-IP-VRF | |||
| anchor="sect-4.4.1"> | model.</t> | |||
| <figure anchor="fig-5"> | ||||
| <t>Figure 8 will be used for the description of this model.</t> | <name>Interface-less IP-VRF-to-IP-VRF Model</name> | |||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| <figure title="Interface-less IP-VRF-to-IP-VRF model" anchor="fig-5"> | ||||
| <artwork><![CDATA[ | ||||
| NVE1(M1) | NVE1(M1) | |||
| +------------+ | +------------+ | |||
| IP1+----| (BD-1) | DGW1(M3) | IP1+----| (BD-1) | DGW1(M3) | |||
| | \ | +---------+ +--------+ | | \ | +---------+ +--------+ | |||
| | (IP-VRF)|----| |-|(IP-VRF)|----+ | | (IP-VRF)|----| |-|(IP-VRF)|----+ | |||
| | / | | | +--------+ | | | / | | | +--------+ | | |||
| +---| (BD-2) | | | _+_ | +---| (BD-2) | | | _+_ | |||
| | +------------+ | | ( ) | | +------------+ | | ( ) | |||
| SN1| | VXLAN/ | ( WAN )--H1 | SN1| | VXLAN/ | ( WAN )--H1 | |||
| | NVE2(M2) | GENEVE/| (___) | | NVE2(M2) | GENEVE/| (___) | |||
| | +------------+ | MPLS | + | | +------------+ | MPLS | + | |||
| +---| (BD-2) | | | DGW2(M4) | | +---| (BD-2) | | | DGW2(M4) | | |||
| | \ | | | +--------+ | | | \ | | | +--------+ | | |||
| | (IP-VRF)|----| |-|(IP-VRF)|----+ | | (IP-VRF)|----| |-|(IP-VRF)|----+ | |||
| | / | +---------+ +--------+ | | / | +---------+ +--------+ | |||
| SN2+----| (BD-3) | | SN2+----| (BD-3) | | |||
| +------------+ | +------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>In this case: | ||||
| <t>In this case: | ||||
| <list style="format (%c)"> | ||||
| <t>The NVEs and DGWs must provide connectivity between hosts in SN1, | </t> | |||
| SN2, IP1 and hosts sitting at the other end of the WAN, for example, | <ol spacing="normal" type="%c)"> | |||
| <li>The NVEs and DGWs must provide connectivity between hosts in SN1 | ||||
| , | ||||
| SN2, and IP1 and hosts sitting at the other end of the WAN -- for example | ||||
| , | ||||
| H1. It is assumed that the DGWs import/export IP and/or VPN-IP routes | H1. It is assumed that the DGWs import/export IP and/or VPN-IP routes | |||
| from/to the WAN.</t> | to/from the WAN.</li> | |||
| <li>The IP-VRF instances in the NVE/DGWs are directly connected thro | ||||
| <t>The IP-VRF instances in the NVE/DGWs are directly connected through | ugh | |||
| NVO tunnels, and no IRBs and/or BD instances are instantiated to | NVO tunnels, and no IRBs and/or BD instances are instantiated to | |||
| connect the IP-VRFs.</t> | connect the IP-VRFs.</li> | |||
| <li>The solution must provide Layer 3 connectivity among the IP-VRFs | ||||
| <t>The solution must provide layer 3 connectivity among the IP-VRFs | for Ethernet NVO tunnels -- for instance, VXLAN or GENEVE.</li> | |||
| for Ethernet NVO tunnels, for instance, VXLAN or GENEVE.</t> | <li>The solution may provide Layer 3 connectivity among the IP-VRFs | |||
| for | ||||
| <t>The solution may provide layer 3 connectivity among the IP-VRFs for | IP NVO tunnels -- for example, GENEVE (with IP payload).</li> | |||
| IP NVO tunnels, for example, GENEVE (with IP payload).</t> | </ol> | |||
| <t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| In order to meet the above requirements, the EVPN route type 5 will be used | In order to meet the above requirements, the EVPN route type 5 will be used | |||
| to advertise the IP Prefixes, along with the Router's MAC Extended | to advertise the IP prefixes, along with the EVPN Router's MAC Extended | |||
| Community as defined in <xref | Community as defined in <xref target="RFC9135" format="default"/> if the adve | |||
| target="I-D.ietf-bess-evpn-inter-subnet-forwarding"/> if the advertising | rtising | |||
| NVE/DGW uses Ethernet NVO tunnels. Each NVE/DGW will advertise an RT-5 for | NVE/DGW uses Ethernet NVO tunnels. Each NVE/DGW will advertise an RT-5 for | |||
| each of its prefixes with the following fields: | each of its prefixes with the following fields: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>RD as per <xref target="RFC7432"/>.</t> | <li>RD as per <xref target="RFC7432" format="default"/>.</li> | |||
| <li>Ethernet Tag ID = 0.</li> | ||||
| <t>Ethernet Tag ID=0.</t> | <li>IP prefix length and IP address, as explained in the previous | |||
| sections.</li> | ||||
| <t>IP Prefix Length and IP address, as explained in the previous | <li>GW IP address = 0.</li> | |||
| Sections.</t> | <li>ESI = 0.</li> | |||
| <li>MPLS label or VNI corresponding to the IP-VRF.</li> | ||||
| <t>GW IP address=0.</t> | </ul> | |||
| <t> | ||||
| <t>ESI=0</t> | ||||
| <t>MPLS label or VNI corresponding to the IP-VRF.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| Each RT-5 will be sent with a Route Target identifying the tenant | Each RT-5 will be sent with a Route Target identifying the tenant | |||
| (IP-VRF) and may be sent with two BGP extended communities: | (IP-VRF) and may be sent with two BGP extended communities: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>The first one is the BGP Encapsulation Extended Community, as per | <li>The first one is the BGP Encapsulation Extended Community, as pe | |||
| <xref target="RFC5512"/>, identifying the tunnel type.</t> | r | |||
| <xref target="RFC9012" format="default"/>, identifying the tunnel type. | ||||
| <t>The second one is the Router's MAC Extended Community as per | </li> | |||
| <xref target="I-D.ietf-bess-evpn-inter-subnet-forwarding"/> | <li>The second one is the EVPN Router's MAC Extended Community, as p | |||
| containing the MAC address associated to the NVE advertising the | er | |||
| route. This MAC address identifies the NVE/DGW and MAY be reused for | <xref target="RFC9135" format="default"/>, containing the MAC address a | |||
| all the IP-VRFs in the NVE. The Router's MAC Extended Community must | ssociated with the NVE advertising the | |||
| be sent if the route is associated to an Ethernet NVO tunnel, for | route. This MAC address identifies the NVE/DGW and <bcp14>MAY</bcp14> b | |||
| instance, VXLAN. If the route is associated to an IP NVO tunnel, for | e reused for | |||
| instance GENEVE with IP payload, the Router's MAC Extended Community | all the IP-VRFs in the NVE. The EVPN Router's MAC Extended Community mu | |||
| should not be sent.</t> | st | |||
| be sent if the route is associated with an Ethernet NVO tunnel -- for | ||||
| </list> | instance, VXLAN. If the route is associated with an IP NVO tunnel -- fo | |||
| </t> | r | |||
| instance, GENEVE with an IP payload -- the EVPN Router's MAC Extended C | ||||
| <t> | ommunity | |||
| should not be sent.</li> | ||||
| </ul> | ||||
| <t> | ||||
| The following example illustrates the procedure to advertise and | The following example illustrates the procedure to advertise and | |||
| forward packets to SN1/24 (IPv4 prefix advertised from NVE1): | forward packets to SN1/24 (IPv4 prefix advertised from NVE1): | |||
| <list style="format (%d)"> | </t> | |||
| <ol spacing="normal" type="(%d)"> | ||||
| <t>NVE1 advertises the following BGP route: | <li> | |||
| <t>NVE1 advertises the following BGP route: | ||||
| <list style="symbols"> | ||||
| <t>Route type 5 (IP Prefix route) containing: | ||||
| <list style="symbols"> | ||||
| <t>IPL=24, IP=SN1, Label=10.</t> | ||||
| <t>GW IP= set to 0.</t> | ||||
| <t><xref target="RFC5512"/> BGP Encapsulation Extended | ||||
| Community.</t> | ||||
| <t>Router's MAC Extended Community that contains M1.</t> | ||||
| <t>Route Target identifying the tenant (IP-VRF).</t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t>DGW1 imports the received routes from NVE1: | ||||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>Route type 5 (IP Prefix route) containing: | ||||
| <t>DGW1 installs SN1/24 in the IP-VRF identified by the RT-5 | </t> | |||
| Route Target.</t> | <ul spacing="normal"> | |||
| <li>IPL = 24, IP = SN1, Label = 10.</li> | ||||
| <li>GW IP = set to 0.</li> | ||||
| <li> BGP Encapsulation Extended | ||||
| Community <xref target="RFC9012" format="default"/>.</li> | ||||
| <li>EVPN Router's MAC Extended Community that contains M1.</ | ||||
| li> | ||||
| <li>Route Target identifying the tenant (IP-VRF).</li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>DGW1 imports the received routes from NVE1: | ||||
| <t>Since GW IP=ESI=0, the Label is a non-zero value and the | </t> | |||
| local policy indicates this interface-less model, DGW1 will use | <ul spacing="normal"> | |||
| the Label and next-hop of the RT-5, as well as the MAC address | <li>DGW1 installs SN1/24 in the IP-VRF identified by the RT-5 | |||
| conveyed in the Router's MAC Extended Community (as inner | Route Target.</li> | |||
| <li>Since GW IP = ESI = 0, the label is a non-zero value, and th | ||||
| e | ||||
| local policy indicates this interface-less model, DGW1, will use | ||||
| the label and next hop of the RT-5, as well as the MAC address | ||||
| conveyed in the EVPN Router's MAC Extended Community (as the inner | ||||
| destination MAC address) to set up the forwarding state and | destination MAC address) to set up the forwarding state and | |||
| later encapsulate the routed IP packets.</t> | later encapsulate the routed IP packets.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | <li> | |||
| <t>When DGW1 receives a packet from the WAN with destination IPx, | ||||
| <t>When DGW1 receives a packet from the WAN with destination IPx, | ||||
| where IPx belongs to SN1/24: | where IPx belongs to SN1/24: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>A destination IP lookup is performed on the DGW1 IP-VRF | <li>A destination IP lookup is performed on the DGW1 IP-VRF | |||
| routing table. The lookup yields SN1/24.</t> | table. The lookup yields SN1/24.</li> | |||
| <li>Since the RT-5 for SN1/24 had a GW IP = ESI = 0, a non-zero | ||||
| <t>Since the RT-5 for SN1/24 had a GW IP=ESI=0, a non-zero | label, and a next hop, and since the model is interface-less, DGW1 | |||
| Label and next-hop and the model is interface-less, DGW1 will | will | |||
| not need a recursive lookup to resolve the route.</t> | not need a recursive lookup to resolve the route.</li> | |||
| <li>The IP packet destined to IPx is encapsulated with: inner so | ||||
| <t>The IP packet destined to IPx is encapsulated with: Source | urce MAC = DGW1 MAC, inner destination MAC = M1, outer source | |||
| inner MAC = DGW1 MAC, Destination inner MAC = M1, Source outer | IP (tunnel source IP) = DGW1 IP, and outer destination IP (tunnel | |||
| IP (tunnel source IP) = DGW1 IP, Destination outer IP (tunnel | destination IP) = NVE1 IP. The source and inner destination MAC | |||
| destination IP) = NVE1 IP. The Source and Destination inner MAC | addresses are not needed if IP NVO tunnels are used.</li> | |||
| addresses are not needed if IP NVO tunnels are used.</t> | </ul> | |||
| </li> | ||||
| </list> | <li> | |||
| </t> | <t>When the packet arrives at NVE1: | |||
| <t>When the packet arrives at NVE1: | ||||
| <list style="symbols"> | ||||
| <t>NVE1 will identify the IP-VRF for an IP lookup based on the | ||||
| Label (the Destination inner MAC is not needed to identify the | ||||
| IP-VRF).</t> | ||||
| <t>An IP lookup is performed in the routing context, where SN1 | </t> | |||
| turns out to be a local subnet associated to BD-2. A subsequent | <ul spacing="normal"> | |||
| <li>NVE1 will identify the IP-VRF for an IP lookup based on the | ||||
| label (the inner destination MAC is not needed to identify the | ||||
| IP-VRF).</li> | ||||
| <li>An IP lookup is performed in the routing context, where SN1 | ||||
| turns out to be a local subnet associated with BD-2. A subsequent | ||||
| lookup in the ARP table and the BD FIB will provide the | lookup in the ARP table and the BD FIB will provide the | |||
| forwarding information for the packet in BD-2.</t> | forwarding information for the packet in BD-2.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | </ol> | |||
| <t> | ||||
| </list> | The model described above is called an "interface-less" model since the | |||
| </t> | IP-VRFs are connected directly through tunnels, and they don't require | |||
| those tunnels to be terminated in SBDs instead, as in Sections <xref target=" | ||||
| <t> | sect-4.4.2" format="counter"/> or <xref target="sect-4.4.3" format="counter"/>.< | |||
| The model described above is called Interface-less model since the | /t> | |||
| IP-VRFs are connected directly through tunnels and they don't require | </section> | |||
| those tunnels to be terminated in SBDs instead, as in Sections 4.4.2 | <section anchor="sect-4.4.2" numbered="true" toc="default"> | |||
| or 4.4.3.</t> | <name>Interface-ful IP-VRF-to-IP-VRF with SBD IRB</name> | |||
| <t><xref target="fig-6"/> depicts the Interface-ful IP-VRF-to-IP-VRF w | ||||
| </section> | ith SBD IRB model.</t> | |||
| <figure anchor="fig-6"> | ||||
| <section title="Interface-ful IP-VRF-to-IP-VRF with SBD IRB" | <name>Interface-ful with SBD IRB Model</name> | |||
| anchor="sect-4.4.2"> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| <t>Figure 9 will be used for the description of this model.</t> | ||||
| <figure title="Interface-ful with SBD IRB model" anchor="fig-6"> | ||||
| <artwork><![CDATA[ | ||||
| NVE1 | NVE1 | |||
| +------------+ DGW1 | +------------+ DGW1 | |||
| IP10+---+(BD-1) | +---------------+ +------------+ | IP10+---+(BD-1) | +---------------+ +------------+ | |||
| | \ | | | | | | | \ | | | | | | |||
| |(IP-VRF)-(SBD)| |(SBD)-(IP-VRF)|-----+ | |(IP-VRF)-(SBD)| |(SBD)-(IP-VRF)|-----+ | |||
| | / IRB(IP1/M1) IRB(IP3/M3) | | | | / IRB(M1/IP1) IRB(M3/IP3) | | | |||
| +---+(BD-2) | | | +------------+ _+_ | +---+(BD-2) | | | +------------+ _+_ | |||
| | +------------+ | | ( ) | | +------------+ | | ( ) | |||
| SN1| | VXLAN/ | ( WAN )--H1 | SN1| | VXLAN/ | ( WAN )--H1 | |||
| | NVE2 | GENEVE/ | (___) | | NVE2 | GENEVE/ | (___) | |||
| | +------------+ | MPLS | DGW2 + | | +------------+ | MPLS | DGW2 + | |||
| +---+(BD-2) | | | +------------+ | | +---+(BD-2) | | | +------------+ | | |||
| | \ | | | | | | | | \ | | | | | | | |||
| |(IP-VRF)-(SBD)| |(SBD)-(IP-VRF)|-----+ | |(IP-VRF)-(SBD)| |(SBD)-(IP-VRF)|-----+ | |||
| | / IRB(IP2/M2) IRB(IP4/M4) | | | / IRB(M2/IP2) IRB(M4/IP4) | | |||
| SN2+----+(BD-3) | +---------------+ +------------+ | SN2+----+(BD-3) | +---------------+ +------------+ | |||
| +------------+ | +------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>In this model: | ||||
| <t>In this model: | ||||
| <list style="format (%c)"> | ||||
| <t>As in Section 4.4.1, the NVEs and DGWs must provide connectivity | ||||
| between hosts in SN1, SN2, IP10 and hosts sitting at the other end | ||||
| of the WAN.</t> | ||||
| <t>However, the NVE/DGWs are now connected through Ethernet NVO | </t> | |||
| <ol spacing="normal" type="%c)"> | ||||
| <li>As in <xref target="sect-4.4.1"/>, the NVEs and DGWs must provid | ||||
| e connectivity | ||||
| between hosts in SN1, SN2, and IP10 and in hosts sitting at the other e | ||||
| nd | ||||
| of the WAN.</li> | ||||
| <li>However, the NVE/DGWs are now connected through Ethernet NVO | ||||
| tunnels terminated in the SBD instance. The IP-VRFs use IRB | tunnels terminated in the SBD instance. The IP-VRFs use IRB | |||
| interfaces for their connectivity to the SBD.</t> | interfaces for their connectivity to the SBD.</li> | |||
| <li>Each SBD IRB has an IP and a MAC address, where the IP address | ||||
| <t>Each SBD IRB has an IP and a MAC address, where the IP address | must be reachable from other NVEs or DGWs.</li> | |||
| must be reachable from other NVEs or DGWs.</t> | <li>The SBD is attached to all the NVE/DGWs in the tenant domain BDs | |||
| .</li> | ||||
| <t>The SBD is attached to all the NVE/DGWs in the tenant domain BDs.</t | <li>The solution must provide Layer 3 connectivity for Ethernet NVO | |||
| > | tunnels -- for instance, VXLAN or GENEVE (with Ethernet payload).</li> | |||
| </ol> | ||||
| <t>The solution must provide layer 3 connectivity for Ethernet NVO | <t> | |||
| tunnels, for instance, VXLAN or GENEVE (with Ethernet payload).</t> | EVPN type 5 routes will be used to advertise the IP prefixes, whereas | |||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| EVPN type 5 routes will be used to advertise the IP Prefixes, whereas | ||||
| EVPN RT-2 routes will advertise the MAC/IP addresses of each SBD IRB | EVPN RT-2 routes will advertise the MAC/IP addresses of each SBD IRB | |||
| interface. Each NVE/DGW will advertise an RT-5 for each of its | interface. Each NVE/DGW will advertise an RT-5 for each of its | |||
| prefixes with the following fields: | prefixes with the following fields: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>RD as per <xref target="RFC7432"/>.</t> | <li>RD as per <xref target="RFC7432" format="default"/>.</li> | |||
| <li>Ethernet Tag ID = 0.</li> | ||||
| <t>Ethernet Tag ID=0.</t> | <li>IP prefix length and IP address, as explained in the previous | |||
| sections.</li> | ||||
| <t>IP Prefix Length and IP address, as explained in the previous | <li>GW IP address = IRB-IP of the SBD (this is the Overlay Index tha | |||
| Sections.</t> | t | |||
| will be used for the recursive route resolution).</li> | ||||
| <t>GW IP address=IRB-IP of the SBD (this is the Overlay Index that | <li>ESI = 0.</li> | |||
| will be used for the recursive route resolution).</t> | <li>Label value should be zero since the RT-5 route requires a | |||
| <t>ESI=0</t> | ||||
| <t>Label value should be zero since the RT-5 route requires a | ||||
| recursive lookup resolution to an RT-2 route. It is ignored on | recursive lookup resolution to an RT-2 route. It is ignored on | |||
| reception, and, when forwarding packets, the MPLS label or VNI from | reception, and the MPLS label or VNI from | |||
| the RT-2's MPLS Label1 field is used.</t> | the RT-2's MPLS Label1 field is used when forwarding packets.</li> | |||
| </ul> | ||||
| </list> | <t> | |||
| </t> | ||||
| <t> | ||||
| Each RT-5 will be sent with a Route Target identifying the tenant | Each RT-5 will be sent with a Route Target identifying the tenant | |||
| (IP-VRF). The Router's MAC Extended Community should not be sent in | (IP-VRF). The EVPN Router's MAC Extended Community should not be sent in | |||
| this case.</t> | this case.</t> | |||
| <t> | ||||
| <t> | ||||
| The following example illustrates the procedure to advertise and | The following example illustrates the procedure to advertise and | |||
| forward packets to SN1/24 (IPv4 prefix advertised from NVE1): | forward packets to SN1/24 (IPv4 prefix advertised from NVE1): | |||
| <list style="format (%d)"> | </t> | |||
| <ol spacing="normal" type="(%d)"> | ||||
| <t>NVE1 advertises the following BGP routes: | <li> | |||
| <t>NVE1 advertises the following BGP routes: | ||||
| <list style="symbols"> | ||||
| <t>Route type 5 (IP Prefix route) containing: | ||||
| <list style="symbols"> | ||||
| <t>IPL=24, IP=SN1, Label= SHOULD be set to 0.</t> | ||||
| <t>GW IP=IP1 (SBD IRB's IP)</t> | ||||
| <t>Route Target identifying the tenant (IP-VRF).</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Route type 2 (MAC/IP route for the SBD IRB) containing: | ||||
| <list style="symbols"> | ||||
| <t>ML=48, M=M1, IPL=32, IP=IP1, Label=10.</t> | ||||
| <t>A <xref target="RFC5512"/> BGP Encapsulation Extended Community.</t> | ||||
| <t>Route Target identifying the SBD. This Route Target may be the | ||||
| same as the one used with the RT-5.</t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | </t> | |||
| </t> | <ul spacing="normal"> | |||
| <li> | ||||
| <t>Route type 5 (IP Prefix route) containing: | ||||
| <t>DGW1 imports the received routes from NVE1: | </t> | |||
| <ul spacing="normal"> | ||||
| <li>IPL = 24, IP = SN1, Label = <bcp14>SHOULD</bcp14> be set | ||||
| to 0.</li> | ||||
| <li>GW IP = IP1 (SBD IRB's IP).</li> | ||||
| <li>Route Target identifying the tenant (IP-VRF).</li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>Route type 2 (MAC/IP Advertisement route for the SBD IRB) c | ||||
| ontaining: | ||||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <li>ML = 48, M = M1, IPL = 32, IP = IP1, Label = 10.</li> | ||||
| <li>A BGP Encapsulation Extended Community <xref target="RFC | ||||
| 9012" format="default"/>.</li> | ||||
| <li>Route Target identifying the SBD. This Route Target may | ||||
| be the | ||||
| same as the one used with the RT-5.</li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>DGW1 imports the received routes from NVE1: | ||||
| <t>DGW1 installs SN1/24 in the IP-VRF identified by the RT-5 Route | </t> | |||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>DGW1 installs SN1/24 in the IP-VRF identified by the RT-5 R | ||||
| oute | ||||
| Target. | Target. | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>Since GW IP is different from zero, the GW IP (IP1) will be | <li>Since GW IP is different from zero, the GW IP (IP1) will | |||
| be | ||||
| used as the Overlay Index for the recursive route resolution to | used as the Overlay Index for the recursive route resolution to | |||
| the RT-2 carrying IP1.</t> | the RT-2 carrying IP1.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | </ul> | |||
| </li> | ||||
| </list> | <li> | |||
| </t> | <t>When DGW1 receives a packet from the WAN with destination IPx, | |||
| <t>When DGW1 receives a packet from the WAN with destination IPx, | ||||
| where IPx belongs to SN1/24: | where IPx belongs to SN1/24: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>A destination IP lookup is performed on the DGW1 IP-VRF | <li>A destination IP lookup is performed on the DGW1 IP-VRF | |||
| routing table. The lookup yields SN1/24, which is associated to | table. The lookup yields SN1/24, which is associated with | |||
| the Overlay Index IP1. The forwarding information is derived from | the Overlay Index IP1. The forwarding information is derived from | |||
| the RT-2 received for IP1.</t> | the RT-2 received for IP1.</li> | |||
| <li>The IP packet destined to IPx is encapsulated with: inner so | ||||
| <t>The IP packet destined to IPx is encapsulated with: Source | urce MAC = M3, inner destination MAC = M1, outer source IP | |||
| inner MAC = M3, Destination inner MAC = M1, Source outer IP | (source VTEP) = DGW1 IP, and outer destination IP (destination VTEP) | |||
| (source VTEP) = DGW1 IP, Destination outer IP (destination VTEP) | = NVE1 IP.</li> | |||
| = IP1.</t> | </ul> | |||
| </li> | ||||
| </list> | <li> | |||
| </t> | <t>When the packet arrives at NVE1: | |||
| <t>When the packet arrives at NVE1: | ||||
| <list style="symbols"> | ||||
| <t>NVE1 will identify the IP-VRF for an IP lookup based on the | ||||
| Label and the inner MAC DA.</t> | ||||
| <t>An IP lookup is performed in the routing context, where SN1 | </t> | |||
| turns out to be a local subnet associated to BD-2. A subsequent | <ul spacing="normal"> | |||
| <li>NVE1 will identify the IP-VRF for an IP lookup based on the | ||||
| label and the inner MAC DA.</li> | ||||
| <li>An IP lookup is performed in the routing context, where SN1 | ||||
| turns out to be a local subnet associated with BD-2. A subsequent | ||||
| lookup in the ARP table and the BD FIB will provide the | lookup in the ARP table and the BD FIB will provide the | |||
| forwarding information for the packet in BD-2.</t> | forwarding information for the packet in BD-2.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | </ol> | |||
| <t> | ||||
| </list> | The model described above is called an "interface-ful with SBD IRB" model bec | |||
| </t> | ause the tunnels connecting the DGWs and NVEs need to be | |||
| <t> | ||||
| The model described above is called 'Interface-ful with SBD IRB | ||||
| model' because the tunnels connecting the DGWs and NVEs need to be | ||||
| terminated into the SBD. The SBD is connected to the IP-VRFs via SBD | terminated into the SBD. The SBD is connected to the IP-VRFs via SBD | |||
| IRB interfaces, and that allows the recursive resolution of RT-5s to | IRB interfaces, and that allows the recursive resolution of RT-5s to | |||
| GW IP addresses.</t> | GW IP addresses.</t> | |||
| </section> | ||||
| </section> | <section anchor="sect-4.4.3" numbered="true" toc="default"> | |||
| <name>Interface-ful IP-VRF-to-IP-VRF with Unnumbered SBD IRB</name> | ||||
| <section title="Interface-ful IP-VRF-to-IP-VRF with Unnumbered SBD IRB" a | <t> | |||
| nchor="sect-4.4.3"><t> | <xref target="fig-7"/> depicts the Interface-ful IP-VRF-to-IP-VRF with unnumbere | |||
| Figure 10 will be used for the description of this model. Note that | d SBD IRB model. Note that this model is similar to the one described in <xref t | |||
| this model is similar to the one described in <xref target="sect-4.4.2"/>, on | arget="sect-4.4.2" format="default"/>, only | |||
| ly | ||||
| without IP addresses on the SBD IRB interfaces.</t> | without IP addresses on the SBD IRB interfaces.</t> | |||
| <figure anchor="fig-7"> | ||||
| <figure title="Interface-ful with unnumbered SBD IRB model" anchor="fig-7 | <name>Interface-ful with Unnumbered SBD IRB Model</name> | |||
| "> | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| <artwork><![CDATA[ | ||||
| NVE1 | NVE1 | |||
| +------------+ DGW1 | +------------+ DGW1 | |||
| IP1+----+(BD-1) | +---------------+ +------------+ | IP1+----+(BD-1) | +---------------+ +------------+ | |||
| | \ | | | | | | | \ | | | | | | |||
| |(IP-VRF)-(SBD)| (SBD)-(IP-VRF) |-----+ | |(IP-VRF)-(SBD)| (SBD)-(IP-VRF) |-----+ | |||
| | / IRB(M1)| | IRB(M3) | | | | / IRB(M1)| | IRB(M3) | | | |||
| +---+(BD-2) | | | +------------+ _+_ | +---+(BD-2) | | | +------------+ _+_ | |||
| | +------------+ | | ( ) | | +------------+ | | ( ) | |||
| SN1| | VXLAN/ | ( WAN )--H1 | SN1| | VXLAN/ | ( WAN )--H1 | |||
| | NVE2 | GENEVE/ | (___) | | NVE2 | GENEVE/ | (___) | |||
| | +------------+ | MPLS | DGW2 + | | +------------+ | MPLS | DGW2 + | |||
| +---+(BD-2) | | | +------------+ | | +---+(BD-2) | | | +------------+ | | |||
| | \ | | | | | | | | \ | | | | | | | |||
| |(IP-VRF)-(SBD)| (SBD)-(IP-VRF) |-----+ | |(IP-VRF)-(SBD)| (SBD)-(IP-VRF) |-----+ | |||
| | / IRB(M2)| | IRB(M4) | | | / IRB(M2)| | IRB(M4) | | |||
| SN2+----+(BD-3) | +---------------+ +------------+ | SN2+----+(BD-3) | +---------------+ +------------+ | |||
| +------------+ | +------------+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>In this model: | ||||
| <t>In this model: | ||||
| <list style="format (%c)"> | ||||
| <t>As in Section 4.4.1 and 4.4.2, the NVEs and DGWs must provide | ||||
| connectivity between hosts in SN1, SN2, IP1 and hosts sitting at the | ||||
| other end of the WAN.</t> | ||||
| <t>As in Section 4.4.2, the NVE/DGWs are connected through Ethernet | </t> | |||
| <ol spacing="normal" type="%c)"> | ||||
| <li>As in Sections <xref target="sect-4.4.1" format="counter"/> and | ||||
| <xref target="sect-4.4.2" format="counter"/>, the NVEs and DGWs must provide | ||||
| connectivity between hosts in SN1, SN2, and IP1 and in hosts sitting at t | ||||
| he | ||||
| other end of the WAN.</li> | ||||
| <li>As in <xref target="sect-4.4.2"/>, the NVE/DGWs are connected th | ||||
| rough Ethernet | ||||
| NVO tunnels terminated in the SBD instance. The IP-VRFs use IRB | NVO tunnels terminated in the SBD instance. The IP-VRFs use IRB | |||
| interfaces for their connectivity to the SBD.</t> | interfaces for their connectivity to the SBD.</li> | |||
| <li>However, each SBD IRB has a MAC address only and no IP address | ||||
| <t>However, each SBD IRB has a MAC address only, and no IP address | (which is why the model refers to an "unnumbered" SBD IRB). In this | |||
| (that is why the model refers to an 'unnumbered' SBD IRB). In this | ||||
| model, there is no need to have IP reachability to the SBD IRB | model, there is no need to have IP reachability to the SBD IRB | |||
| interfaces themselves and there is a requirement to limit the number | interfaces themselves, and there is a requirement to limit the number | |||
| of IP addresses used.</t> | of IP addresses used.</li> | |||
| <li>As in <xref target="sect-4.4.2"/>, the SBD is composed of all th | ||||
| <t>As in Section 4.4.2, the SBD is composed of all the NVE/DGW BDs of | e NVE/DGW BDs of | |||
| the tenant that need inter-subnet-forwarding.</t> | the tenant that need inter-subnet forwarding.</li> | |||
| <li>As in <xref target="sect-4.4.2"/>, the solution must provide Lay | ||||
| <t>As in Section 4.4.2, the solution must provide layer 3 connectivity | er 3 connectivity | |||
| for Ethernet NVO tunnels, for instance, VXLAN or GENEVE (with Ethernet | for Ethernet NVO tunnels -- for instance, VXLAN or GENEVE (with Ethernet | |||
| payload).</t> | payload).</li> | |||
| </ol> | ||||
| </list> | <t> | |||
| </t> | ||||
| <t> | ||||
| This model will also make use of the RT-5 recursive resolution. EVPN | This model will also make use of the RT-5 recursive resolution. EVPN | |||
| type 5 routes will advertise the IP Prefixes along with the Router's | type 5 routes will advertise the IP prefixes along with the EVPN Router's | |||
| MAC Extended Community used for the recursive lookup, whereas EVPN | MAC Extended Community used for the recursive lookup, whereas EVPN | |||
| RT-2 routes will advertise the MAC addresses of each SBD IRB | RT-2 routes will advertise the MAC addresses of each SBD IRB | |||
| interface (this time without an IP).</t> | interface (this time without an IP).</t> | |||
| <t> | ||||
| <t> | ||||
| Each NVE/DGW will advertise an RT-5 for each of its prefixes with the | Each NVE/DGW will advertise an RT-5 for each of its prefixes with the | |||
| same fields as described in 4.4.2 except for: | same fields as described in <xref target="sect-4.4.2"/>, except: | |||
| <list style="symbols"> | ||||
| <t>GW IP address= set to 0.</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | </t> | |||
| <ul spacing="normal"> | ||||
| <li>GW IP address = set to 0.</li> | ||||
| </ul> | ||||
| <t> | ||||
| Each RT-5 will be sent with a Route Target identifying the tenant | Each RT-5 will be sent with a Route Target identifying the tenant | |||
| (IP-VRF) and the Router's MAC Extended Community containing the MAC | (IP-VRF) and the EVPN Router's MAC Extended Community containing the MAC | |||
| address associated to SBD IRB interface. This MAC address may be | address associated with the SBD IRB interface. This MAC address may be | |||
| reused for all the IP-VRFs in the NVE.</t> | reused for all the IP-VRFs in the NVE.</t> | |||
| <t> | ||||
| The example is similar to the one in <xref target="sect-4.4.2"/>: | ||||
| <t> | </t> | |||
| The example is similar to the one in Section 4.4.2: | <ol spacing="normal" type="(%d)"> | |||
| <li> | ||||
| <list style="format (%d)"> | <t>NVE1 advertises the following BGP routes: | |||
| <t>NVE1 advertises the following BGP routes: | ||||
| <list style="symbols"> | ||||
| <t>Route type 5 (IP Prefix route) containing the same values as | ||||
| in the example in <xref target="sect-4.4.2"/>, except for: | ||||
| <list style="symbols"> | ||||
| <t>GW IP= SHOULD be set to 0.</t> | ||||
| <t>Router's MAC Extended Community containing M1 (this will be used | ||||
| for the recursive lookup to a RT-2).</t> | ||||
| </list> | ||||
| </t> | ||||
| <t>Route type 2 (MAC route for the SBD IRB) with the same values | ||||
| as in <xref target="sect-4.4.2"/> except for: | ||||
| <list style="symbols"> | ||||
| <t>ML=48, M=M1, IPL=0, Label=10.</t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | </t> | |||
| </t> | <ul spacing="normal"> | |||
| <li> | ||||
| <t>Route type 5 (IP Prefix route) containing the same values a | ||||
| s | ||||
| in the example in <xref target="sect-4.4.2" format="default"/>, except | ||||
| : | ||||
| <t>DGW1 imports the received routes from NVE1: | </t> | |||
| <ul spacing="normal"> | ||||
| <li>GW IP = <bcp14>SHOULD</bcp14> be set to 0.</li> | ||||
| <li>EVPN Router's MAC Extended Community containing M1 (this | ||||
| will be used | ||||
| for the recursive lookup to an RT-2).</li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>Route type 2 (MAC route for the SBD IRB) with the same valu | ||||
| es | ||||
| as in <xref target="sect-4.4.2" format="default"/>, except: | ||||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <li>ML = 48, M = M1, IPL = 0, Label = 10.</li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li> | ||||
| <t>DGW1 imports the received routes from NVE1: | ||||
| <t>DGW1 installs SN1/24 in the IP-VRF identified by the RT-5 | </t> | |||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>DGW1 installs SN1/24 in the IP-VRF identified by the RT-5 | ||||
| Route Target. | Route Target. | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>The MAC contained in the Router's MAC Extended Community sent | <li>The MAC contained in the EVPN Router's MAC Extended Comm | |||
| unity sent | ||||
| along with the RT-5 (M1) will be used as the Overlay Index for the | along with the RT-5 (M1) will be used as the Overlay Index for the | |||
| recursive route resolution to the RT-2 carrying M1.</t> | recursive route resolution to the RT-2 carrying M1.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | </ul> | |||
| </li> | ||||
| </list> | <li> | |||
| </t> | <t>When DGW1 receives a packet from the WAN with destination IPx, | |||
| <t>When DGW1 receives a packet from the WAN with destination IPx, | ||||
| where IPx belongs to SN1/24: | where IPx belongs to SN1/24: | |||
| <list style="symbols"> | </t> | |||
| <ul spacing="normal"> | ||||
| <t>A destination IP lookup is performed on the DGW1 IP-VRF | <li>A destination IP lookup is performed on the DGW1 IP-VRF | |||
| routing table. The lookup yields SN1/24, which is associated to | table. The lookup yields SN1/24, which is associated with | |||
| the Overlay Index M1. The forwarding information is derived from | the Overlay Index M1. The forwarding information is derived from | |||
| the RT-2 received for M1.</t> | the RT-2 received for M1.</li> | |||
| <li>The IP packet destined to IPx is encapsulated with: inner so | ||||
| <t>The IP packet destined to IPx is encapsulated with: Source | urce MAC = M3, inner destination MAC = M1, outer source IP | |||
| inner MAC = M3, Destination inner MAC = M1, Source outer IP | (source VTEP) = DGW1 IP, and outer destination IP (destination VTEP | |||
| (source VTEP) = DGW1 IP, Destination outer IP (destination VTEP) | ) | |||
| = NVE1 IP.</t> | = NVE1 IP.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | <li> | |||
| <t>When the packet arrives at NVE1: | ||||
| <t>When the packet arrives at NVE1: | ||||
| <list style="symbols"> | ||||
| <t>NVE1 will identify the IP-VRF for an IP lookup based on the | ||||
| Label and the inner MAC DA.</t> | ||||
| <t>An IP lookup is performed in the routing context, where SN1 | </t> | |||
| turns out to be a local subnet associated to BD-2. A subsequent | <ul spacing="normal"> | |||
| <li>NVE1 will identify the IP-VRF for an IP lookup based on the | ||||
| label and the inner MAC DA.</li> | ||||
| <li>An IP lookup is performed in the routing context, where SN1 | ||||
| turns out to be a local subnet associated with BD-2. A subsequent | ||||
| lookup in the ARP table and the BD FIB will provide the | lookup in the ARP table and the BD FIB will provide the | |||
| forwarding information for the packet in BD-2.</t> | forwarding information for the packet in BD-2.</li> | |||
| </ul> | ||||
| </list> | </li> | |||
| </t> | </ol> | |||
| <t> | ||||
| </list> | The model described above is called an "interface-ful with unnumbered SBD | |||
| </t> | IRB" model (as in <xref target="sect-4.4.2" format="default"/>) but without t | |||
| he SBD IRB having an IP address.</t> | ||||
| <t> | </section> | |||
| The model described above is called Interface-ful with unnumbered SBD | </section> | |||
| IRB model (as in <xref target="sect-4.4.2"/>), only this time the SBD IRB doe | </section> | |||
| s not | <section anchor="sect-5" numbered="true" toc="default"> | |||
| have an IP address.</t> | <name>Security Considerations</name> | |||
| <t> | ||||
| </section> | This document provides a set of procedures to achieve inter-subnet | |||
| forwarding across NVEs or PEs attached to a group of BDs that belong | ||||
| </section> | ||||
| </section> | ||||
| <section title="Security Considerations" anchor="sect-5"><t> | ||||
| This document provides a set of procedures to achieve Inter-Subnet | ||||
| Forwarding across NVEs or PEs attached to a group of BDs that belong | ||||
| to the same tenant (or VPN). The security considerations discussed in | to the same tenant (or VPN). The security considerations discussed in | |||
| <xref target="RFC7432"/> apply to the Intra-Subnet Forwarding or communicatio n | <xref target="RFC7432" format="default"/> apply to the intra-subnet forwardin g or communication | |||
| within each of those BDs. In addition, the security considerations in | within each of those BDs. In addition, the security considerations in | |||
| <xref target="RFC4364"/> should also be understood, since this document and | <xref target="RFC4364" format="default"/> should also be understood, since th | |||
| <xref target="RFC4364"/> may be used in similar applications.</t> | is document and | |||
| <xref target="RFC4364" format="default"/> may be used in similar applications | ||||
| <t> | .</t> | |||
| Contrary to <xref target="RFC4364"/>, this document does not describe PE/CE r | <t> | |||
| oute | Contrary to <xref target="RFC4364" format="default"/>, this document does not | |||
| distribution techniques, but rather considers the CEs as TSes or VAs | describe PE/CE route | |||
| distribution techniques but rather considers the CEs as TSs or VAs | ||||
| that do not run dynamic routing protocols. This can be considered a | that do not run dynamic routing protocols. This can be considered a | |||
| security advantage, since dynamic routing protocols can be blocked on | security advantage, since dynamic routing protocols can be blocked on | |||
| the NVE/PE ACs, not allowing the tenant to interact with the | the NVE/PE ACs, not allowing the tenant to interact with the | |||
| infrastructure's dynamic routing protocols.</t> | infrastructure's dynamic routing protocols.</t> | |||
| <t> | ||||
| <t> | In this document, the RT-5 may use a regular BGP next hop for its | |||
| In this document, the RT-5 may use a regular BGP Next Hop for its | ||||
| resolution or an Overlay Index that requires a recursive resolution | resolution or an Overlay Index that requires a recursive resolution | |||
| to a different EVPN route (an RT-2 or an RT-1). In the latter case, | to a different EVPN route (an RT-2 or an RT-1). In the latter case, | |||
| it is worth noting that any action that ends up filtering or | it is worth noting that any action that ends up filtering or | |||
| modifying the RT-2/RT-1 routes used to convey the Overlay Indexes, | modifying the RT-2 or RT-1 routes used to convey the Overlay Indexes | |||
| will modify the resolution of the RT-5 and therefore the forwarding | will modify the resolution of the RT-5 and therefore the forwarding | |||
| of packets to the remote subnet.</t> | of packets to the remote subnet.</t> | |||
| </section> | ||||
| <section anchor="sect-6" numbered="true" toc="default"> | ||||
| <name>IANA Considerations</name> | ||||
| <t> | ||||
| IANA has registered value 5 in the "EVPN Route Types" registry <xref target=" | ||||
| EVPNRouteTypes" format="default"/> | ||||
| defined by <xref target="RFC7432" format="default"/> as follows:</t> | ||||
| </section> | <table> | |||
| <thead> | ||||
| <section title="IANA Considerations" anchor="sect-6"><t> | <tr> | |||
| This document requests value 5 in the <xref target="EVPNRouteTypes"/> registr | <th>Value</th> | |||
| y | <th>Description</th> | |||
| defined by <xref target="RFC7432"/>:</t> | <th>Reference</th> | |||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>5</td> | ||||
| <td>IP Prefix</td> | ||||
| <td>RFC 9136</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <figure><artwork><![CDATA[ | </section> | |||
| Value Description Reference | </middle> | |||
| 5 IP Prefix route [this document] | <back> | |||
| ]]></artwork> | <references> | |||
| </figure> | <name>References</name> | |||
| </section> | <references> | |||
| <name>Normative References</name> | ||||
| </middle> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| ence.RFC.7432.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.9012.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8365.xml"/> | ||||
| <back> | <reference anchor='RFC9135' target='https://www.rfc-editor.org/info/rfc9135'> | |||
| <references title="Normative References"> | <front> | |||
| &RFC7432; | <title>Integrated Routing and Bridging in Ethernet VPN (EVPN)</title> | |||
| &RFC5512; | <author initials='A' surname='Sajassi' fullname='Ali Sajassi'> | |||
| &RFC2119; | <organization /> | |||
| &RFC8174; | </author> | |||
| &RFC8365; | ||||
| &I-D.ietf-bess-evpn-inter-subnet-forwarding; | ||||
| <reference anchor="EVPNRouteTypes" target="https://www.iana.org/assignmen | ||||
| ts/evpn"><front> | ||||
| <title>EVPN Route Type registry</title> | ||||
| <author> | ||||
| <organization>IANA</organization> | ||||
| </author> | ||||
| <date/> | <author initials='S' surname='Salam' fullname='Samer Salam'> | |||
| </front> | <organization /> | |||
| </author> | ||||
| </reference> | <author initials='S' surname='Thoria' fullname='Samir Thoria'> | |||
| </references> | <organization /> | |||
| <references title="Informative References"> | </author> | |||
| &RFC4364; | ||||
| &RFC7606; | ||||
| <reference anchor="IEEE-802.1D-REV"><front> | ||||
| <title>IEEE Standard for Local and metropolitan area networks - Media Acc | ||||
| ess Control (MAC) Bridges</title> | ||||
| <author> | ||||
| </author> | ||||
| <date month="June" year="2004"/> | <author initials='J' surname='Drake' fullname='John Drake'> | |||
| </front> | <organization /> | |||
| </author> | ||||
| <seriesInfo name="IEEE" value="Std. 802.1D"/> | <author initials='J' surname='Rabadan' fullname='Jorge Rabadan'> | |||
| </reference> | <organization /> | |||
| </author> | ||||
| <date month='October' year='2021' /> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="9135"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC9135"/> | ||||
| </reference> | ||||
| <reference anchor="IEEE-802.1Q"><front> | <reference anchor="EVPNRouteTypes" target="https://www.iana.org/assignme | |||
| <title>"IEEE Standard for Local and metropolitan area networks - | nts/evpn"> | |||
| Media Access Control (MAC) Bridges and Virtual Bridged Local Area | <front> | |||
| Networks"</title> | <title>EVPN Route Types</title> | |||
| <author> | <author> | |||
| <organization>IANA</organization> | ||||
| </author> | ||||
| <date/> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4364.xml"/> | ||||
| <xi:include | ||||
| href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC. | ||||
| 7606.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.5798.xml"/> | ||||
| <reference anchor="IEEE-802.1Q" target="https://standards.ieee.org/stand | ||||
| ard/802_1Q-2018.html"> | ||||
| <front> | ||||
| <title>IEEE Standard for Local and Metropolitan Area Networks -- Bri | ||||
| dges and Bridged Networks</title> | ||||
| <seriesInfo name="IEEE Std" value="802.1Q"/> | ||||
| <seriesInfo name="DOI" value="10.1109/IEEESTD.2018.8403927"/> | ||||
| <author><organization>IEEE</organization> | ||||
| </author> | </author> | |||
| <date month="November" year="2014"/> | <date month="July" year="2018"/> | |||
| </front> | </front> | |||
| <seriesInfo name="IEEE" value="Std 802.1Q(tm)"/> | </reference> | |||
| </reference> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| &RFC7365; | ence.RFC.7365.xml"/> | |||
| &RFC5227; | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| &RFC7348; | ence.RFC.5227.xml"/> | |||
| &I-D.ietf-nvo3-geneve; | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| </references> | ence.RFC.7348.xml"/> | |||
| <section title="Acknowledgments" anchor="sect-8"><t> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| The authors would like to thank Mukul Katiyar and Jeffrey Zhang for | ence.RFC.8926.xml"/> | |||
| their valuable feedback and contributions. The following people also | ||||
| helped improving this document with their feedback: Tony Przygienda | ||||
| and Thomas Morin. Special THANK YOU to Eric Rosen for his detailed | ||||
| review, it really helped improve the readability and clarify the | ||||
| concepts. Thank you to Alvaro Retana for his thorough review.</t> | ||||
| </section> | ||||
| <section title="Contributors" anchor="sect-9"><t> | </references> | |||
| </references> | ||||
| <section anchor="sect-8" numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t> | ||||
| The authors would like to thank <contact fullname="Mukul Katiyar"/>, <contact | ||||
| fullname="Jeffrey Zhang"/>, and <contact fullname="Alex Nichol"/> for | ||||
| their valuable feedback and contributions. <contact fullname="Tony Przygienda | ||||
| "/> | ||||
| and <contact fullname="Thomas Morin"/> also helped improve this document with | ||||
| their feedback. Special thanks to <contact fullname="Eric Rosen"/> for his deta | ||||
| iled | ||||
| review, which really helped improve the readability and clarify the | ||||
| concepts. We also thank <contact fullname="Alvaro Retana"/> for his thorough | ||||
| review.</t> | ||||
| </section> | ||||
| <section anchor="sect-9" numbered="false" toc="default"> | ||||
| <name>Contributors</name> | ||||
| <t> | ||||
| In addition to the authors listed on the front page, the following | In addition to the authors listed on the front page, the following | |||
| co-authors have also contributed to this document:</t> | coauthors have also contributed to this document:</t> | |||
| <figure><artwork><![CDATA[ | ||||
| Senthil Sathappan | ||||
| Florin Balus | ||||
| Aldrin Isaac | ||||
| Senad Palislamovic | ||||
| Samir Thoria | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| </section> | ||||
| <section title="Authors' Addresses" anchor="sect-10"/> | ||||
| </back> | <ul empty="true" spacing="compact"> | |||
| <li><t><contact fullname="Senthil Sathappan"/></t></li> | ||||
| <li><t><contact fullname="Florin Balus"/></t></li> | ||||
| <li><t> <contact fullname="Aldrin Isaac"/></t></li> | ||||
| <li><t> <contact fullname="Senad Palislamovic"/></t></li> | ||||
| <li><t> <contact fullname="Samir Thoria"/></t></li> | ||||
| </ul> | ||||
| </section> | ||||
| </rfc> | </back> | |||
| </rfc> | ||||
| End of changes. 251 change blocks. | ||||
| 1601 lines changed or deleted | 1663 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/ | ||||