| < draft-ietf-bier-evpn-00.txt | draft-ietf-bier-evpn-01.txt > | |||
|---|---|---|---|---|
| BIER Z. Zhang | BIER Z. Zhang | |||
| Internet-Draft A. Przygienda | Internet-Draft A. Przygienda | |||
| Intended status: Standards Track Juniper Networks | Intended status: Standards Track Juniper Networks | |||
| Expires: February 16, 2018 A. Sajassi | Expires: October 29, 2018 A. Sajassi | |||
| Cisco Systems | Cisco Systems | |||
| J. Rabadan | J. Rabadan | |||
| Nokia | Nokia | |||
| August 15, 2017 | April 27, 2018 | |||
| EVPN BUM Using BIER | EVPN BUM Using BIER | |||
| draft-ietf-bier-evpn-00 | draft-ietf-bier-evpn-01 | |||
| Abstract | Abstract | |||
| This document specifies protocols and procedures for forwarding | This document specifies protocols and procedures for forwarding | |||
| broadcast, unknown unicast and multicast (BUM) traffic of Ethernet | broadcast, unknown unicast and multicast (BUM) traffic of Ethernet | |||
| VPNs (EVPN) using Bit Index Explicit Replication (BIER). | VPNs (EVPN) using Bit Index Explicit Replication (BIER). | |||
| Requirements Language | Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| skipping to change at page 1, line 35 ¶ | skipping to change at page 1, line 35 ¶ | |||
| document are to be interpreted as described in RFC2119. | document are to be interpreted as described in RFC2119. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on February 16, 2018. | This Internet-Draft will expire on October 29, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Terminologies . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Terminologies . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Use of the PMSI Tunnel Attribute . . . . . . . . . . . . . . 4 | 2. Use of the PMSI Tunnel Attribute . . . . . . . . . . . . . . 4 | |||
| 2.1. Explicit Tracking . . . . . . . . . . . . . . . . . . . . 5 | 2.1. Explicit Tracking . . . . . . . . . . . . . . . . . . . . 5 | |||
| 2.1.1. Using IMET/SMET routes . . . . . . . . . . . . . . . 5 | 2.1.1. Using IMET/SMET routes . . . . . . . . . . . . . . . 5 | |||
| 2.1.2. Using S-PMSI/Leaf A-D Routes . . . . . . . . . . . . 6 | 2.1.2. Using S-PMSI/Leaf A-D Routes . . . . . . . . . . . . 6 | |||
| 2.2. MPLS Label in PTA . . . . . . . . . . . . . . . . . . . . 6 | 2.2. MPLS Label in PTA . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3. Multihoming Split Horizon . . . . . . . . . . . . . . . . . . 7 | 3. Multihoming Split Horizon . . . . . . . . . . . . . . . . . . 7 | |||
| 4. Data Plane . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4. Data Plane . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.1. Encapsulation and Transmission . . . . . . . . . . . . . 8 | 4.1. Encapsulation and Transmission . . . . . . . . . . . . . 8 | |||
| 4.2. Disposition . . . . . . . . . . . . . . . . . . . . . . . 9 | 4.1.1. At a BFIR that is an Ingress PE . . . . . . . . . . . 8 | |||
| 4.2.1. At a BFER that is an Egress PE . . . . . . . . . . . 9 | 4.1.2. At a BFIR that is a P-tunnel Segmentation Point . . . 10 | |||
| 4.2.2. At a BFER that is a P-tunnel Segmentation Boundary . 10 | 4.2. Disposition . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 4.2.1. At a BFER that is an Egress PE . . . . . . . . . . . 10 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 4.2.2. At a BFER that is a P-tunnel Segmentation Point . . . 11 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 11 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 12 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
| 1. Introduction | 1. Introduction | |||
| [RFC7432] and [I-D.ietf-bess-evpn-overlay] specify the protocols and | [RFC7432] and [RFC8365] specify the protocols and procedures for | |||
| procedures for Ethernet VPNs (EVPNs). For broadcast, unknown unicast | Ethernet VPNs (EVPNs). For broadcast, unknown unicast and multicast | |||
| and multicast (BUM) traffic, provider/underlay tunnels (referred to | (BUM) traffic, provider/underlay tunnels (referred to as P-tunnels) | |||
| as P-tunnels) are used to carry the BUM traffic. Several kinds of | are used to carry the BUM traffic. Several kinds of tunnel | |||
| tunnel technologies can be used, as specified in [RFC7432]. | technologies can be used, as specified in [RFC7432]. | |||
| Bit Index Explicit Replication (BIER) ([I-D.ietf-bier-architecture]) | Bit Index Explicit Replication (BIER) ([RFC8279]) is an architecture | |||
| is an architecture that provides optimal multicast forwarding through | that provides optimal multicast forwarding through a "multicast | |||
| a "multicast domain", without requiring intermediate routers to | domain", without requiring intermediate routers to maintain any per- | |||
| maintain any per-flow state or to engage in an explicit tree-building | flow state or to engage in an explicit tree-building protocol. The | |||
| protocol. The purpose of this document is to specify the protocols | purpose of this document is to specify the protocols and procedures | |||
| and procedures to transport EVPN BUM traffic using BIER. | to transport EVPN BUM traffic using BIER. | |||
| The EVPN BUM procedures specified in [RFC7432] and extended in | The EVPN BUM procedures specified in [RFC7432] and extended in | |||
| [I-D.ietf-bess-evpn-bum-procedure-updates], | [I-D.ietf-bess-evpn-bum-procedure-updates], | |||
| [I-D.ietf-bess-evpn-igmp-mld-proxy], and | [I-D.ietf-bess-evpn-igmp-mld-proxy], and | |||
| [I-D.zzhang-bess-mvpn-evpn-cmcast-enhancements] are much aligned with | [I-D.zzhang-bess-mvpn-evpn-cmcast-enhancements] are much aligned with | |||
| MVPN procedures. As such, this document is also very much aligned | MVPN procedures. As such, this document is also very much aligned | |||
| with [I-D.ietf-bier-mvpn]. For terseness, some background, terms and | with [I-D.ietf-bier-mvpn]. For terseness, some background, terms and | |||
| concepts are not repeated here. Additionally, some text is borrowed | concepts are not repeated here. Additionally, some text is borrowed | |||
| verbatim from [I-D.ietf-bier-mvpn]. | verbatim from [I-D.ietf-bier-mvpn]. | |||
| skipping to change at page 4, line 22 ¶ | skipping to change at page 4, line 24 ¶ | |||
| [RFC7432] specifies that Inclusive Multicast Ethernet Tag (IMET) | [RFC7432] specifies that Inclusive Multicast Ethernet Tag (IMET) | |||
| routes carry a PMSI Tunnel Attribute (PTA) to identify the particular | routes carry a PMSI Tunnel Attribute (PTA) to identify the particular | |||
| P-tunnel to which one or more BUM flows are being assigned, the same | P-tunnel to which one or more BUM flows are being assigned, the same | |||
| as specified in [RFC6514] for MVPN. [I-D.ietf-bier-mvpn] specifies | as specified in [RFC6514] for MVPN. [I-D.ietf-bier-mvpn] specifies | |||
| the encoding of PTA for use of BIER with MVPN. Much of that | the encoding of PTA for use of BIER with MVPN. Much of that | |||
| specification is reused for use of BIER with EVPN and much of the | specification is reused for use of BIER with EVPN and much of the | |||
| text below is borrowed verbatim from [I-D.ietf-bier-mvpn]. | text below is borrowed verbatim from [I-D.ietf-bier-mvpn]. | |||
| The PMSI Tunnel Attribute (PTA) contains the following fields: | The PMSI Tunnel Attribute (PTA) contains the following fields: | |||
| o "Tunnel Type". The same codepoint that [I-D.ietf-bier-mvpn] | o "Tunnel Type". The same codepoint 0x0B that IANA has assigned for | |||
| requests IANA to assign for the new tunnel type "BIER" is used for | [I-D.ietf-bier-mvpn] for the new tunnel type "BIER" is used for | |||
| EVPN as well. | EVPN as well. | |||
| o "Tunnel Identifier". When the "tunnel type" field is "BIER", this | o "Tunnel Identifier". When the "tunnel type" field is "BIER", this | |||
| field contains two subfields. The text below is exactly as in | field contains two subfields. The text below is exactly as in | |||
| [I-D.ietf-bier-mvpn]. | [I-D.ietf-bier-mvpn]. | |||
| 1 The first subfield is a single octet, containing the sub- | 1 The first subfield is a single octet, containing the sub- | |||
| domain-id of the sub-domain to which the BFIR will assign the | domain-id of the sub-domain to which the BFIR will assign the | |||
| packets that it transmits on the PMSI identified by the NLRI of | packets that it transmits on the PMSI identified by the NLRI of | |||
| the IMET, S-PMSI A-D, or per-region I-PMSI A-D route that | the IMET, S-PMSI A-D, or per-region I-PMSI A-D route that | |||
| contains this PTA. How that sub-domain is chosen is outside | contains this PTA. How that sub-domain is chosen is outside | |||
| the scope of this document. | the scope of this document. | |||
| 2 The second subfield is the BFR-Prefix (see | 2 The second subfield is a two-octet field containing the BFR-id, | |||
| [I-D.ietf-bier-architecture]) of the originator of the route | in the sub-domain identified in the first subfield, of the | |||
| that is carrying this PTA. This will either be a /32 IPv4 | router that is constructing the PTA. | |||
| address or a /128 IPv6 address. Whether the address is IPv4 or | ||||
| IPv6 can be inferred from the total length of the PMSI Tunnel | 3 The third subfield is the BFR-Prefix (see [RFC8279]) of the | |||
| attribute. | originator of the route that is carrying this PTA. This will | |||
| either be a /32 IPv4 address or a /128 IPv6 address. Whether | ||||
| the address is IPv4 or IPv6 can be inferred from the total | ||||
| length of the PMSI Tunnel attribute. | ||||
| The BFR-prefix need not be the same IP address that is carried | ||||
| in any other field of the x-PMSI A-D route, even if the BFIR is | ||||
| the originating router of the x-PMSI A-D route. | ||||
| o "MPLS label". For EVPN-MPLS [RFC7432], this field contains an | o "MPLS label". For EVPN-MPLS [RFC7432], this field contains an | |||
| upstream-assigned MPLS label. It is assigned by the BFIR. | upstream-assigned MPLS label. It is assigned by the BFIR. | |||
| Constraints on the way in which the originating router selects | Constraints on the way in which the originating router selects | |||
| this label are discussed in Section 2.2. For EVPN-VXLAN/NVGRE | this label are discussed in Section 2.2. For EVPN-VXLAN/NVGRE | |||
| [I-D.ietf-bess-evpn-overlay], this field is a 24-bit VNI/VSID of | [RFC8365], this field is a 24-bit VNI/VSID of global significance. | |||
| global significance. | ||||
| o "Flags". When the tunnel type is BIER, two of the flags in the | o "Flags". When the tunnel type is BIER, two of the flags in the | |||
| PTA Flags field are meaningful. Details about the use of these | PTA Flags field are meaningful. Details about the use of these | |||
| flags can be found in Section 2.1. | flags can be found in Section 2.1. | |||
| * "Leaf Info Required per Flow (LIR-pF)" | * "Leaf Info Required per Flow (LIR-pF)" | |||
| [I-D.ietf-bess-mvpn-expl-track] | [I-D.ietf-bess-mvpn-expl-track] | |||
| * "Leaf Info Required Bit (LIR)" | * "Leaf Info Required Bit (LIR)" | |||
| skipping to change at page 5, line 27 ¶ | skipping to change at page 5, line 33 ¶ | |||
| routers that receive the route must be in the same BIER domain as the | routers that receive the route must be in the same BIER domain as the | |||
| originator of the route. If the originator is in more than one BIER | originator of the route. If the originator is in more than one BIER | |||
| domain, the route must be distributed only within the BIER domain in | domain, the route must be distributed only within the BIER domain in | |||
| which the BFR-Prefix in the PTA uniquely identifies the originator. | which the BFR-Prefix in the PTA uniquely identifies the originator. | |||
| As with all MVPN routes, distribution of these routes is controlled | As with all MVPN routes, distribution of these routes is controlled | |||
| by the provisioning of Route Targets. | by the provisioning of Route Targets. | |||
| 2.1. Explicit Tracking | 2.1. Explicit Tracking | |||
| When using BIER to transport an EVPN BUM data packet through a BIER | When using BIER to transport an EVPN BUM data packet through a BIER | |||
| domain, an ingress PE functions as a BFIR (see | domain, an ingress PE functions as a BFIR (see [RFC8279]). The BFIR | |||
| [I-D.ietf-bier-architecture]). The BFIR must determine the set of | must determine the set of BFERs to which the packet needs to be | |||
| BFERs to which the packet needs to be delivered. This can be done in | delivered. This can be done in either of two ways in the following | |||
| either of two ways in the following two sections. | two sections. | |||
| 2.1.1. Using IMET/SMET routes | 2.1.1. Using IMET/SMET routes | |||
| Both IMET and SMET (Selective Multicast Ethernet Tag | Both IMET and SMET (Selective Multicast Ethernet Tag | |||
| [I-D.ietf-bess-evpn-igmp-mld-proxy]) routes provide explicit tracking | [I-D.ietf-bess-evpn-igmp-mld-proxy]) routes provide explicit tracking | |||
| functionality. | functionality. | |||
| For an inclusive PMSI, the set of BFERs to deliver traffic to | For an inclusive PMSI, the set of BFERs to deliver traffic to | |||
| includes the originators of all IMET routes for a broadcast domain. | includes the originators of all IMET routes for a broadcast domain. | |||
| For a selective PMSI, the set of BFERs to deliver traffic to includes | For a selective PMSI, the set of BFERs to deliver traffic to includes | |||
| the originators of corresponding SMET routes. | the originators of corresponding SMET routes. | |||
| The SMET routes do not carry a PTA. When an ingress PE sends traffic | The SMET routes do not carry a PTA. When an ingress PE sends traffic | |||
| on a selective tunnel using BIER, it uses the upstream assigned label | on a selective tunnel using BIER, it uses the upstream assigned label | |||
| that is advertised in its IMET route. | that is advertised in its IMET route. | |||
| Only when selectively forwarding is for all flows without tunnel | Only when selectively forwarding is for all flows without tunnel | |||
| segmentation, SMET routes are used without S-PMSI A-D routes. | segmentation, SMET routes are used without the need for S-PMSI A-D | |||
| Otherwise, the procedures in the following section apply. | routes. Otherwise, the procedures in the following section apply. | |||
| 2.1.2. Using S-PMSI/Leaf A-D Routes | 2.1.2. Using S-PMSI/Leaf A-D Routes | |||
| There are two cases where S-PMSI/Leaf A-D routes are used as | There are two cases where S-PMSI/Leaf A-D routes are used as | |||
| discussed in the following two sections. | discussed in the following two sections. | |||
| 2.1.2.1. Selective Forwarding Only for Some Flows | 2.1.2.1. Selective Forwarding Only for Some Flows | |||
| With the SMET procedure, a PE advertises an SMET route for each | With the SMET procedure, a PE advertises an SMET route for each | |||
| (C-S,C-G) or (C-*,C-G) state that it learns on its ACs, and each SMET | (C-S,C-G) or (C-*,C-G) state that it learns on its ACs, and each SMET | |||
| route is tracked by every PE in the same broadcast domain. It may be | route is tracked by every PE in the same broadcast domain. It may be | |||
| desired that SMET routes are not used to reduce the burden of | desired that SMET routes are not used to reduce the burden of | |||
| explicit tracking. | explicit tracking. | |||
| In this case, most multicast traffic will follow the I-PMSI | In this case, most multicast traffic will follow the I-PMSI | |||
| (advertised via IMET route) and only some flows follow S-PMSIs. To | (advertised via IMET route) and only some flows follow S-PMSIs. To | |||
| achieve that, S-PMSI/Leaf A-D routes can be used, as specified in | achieve that, S-PMSI/Leaf A-D routes can be used, as specified in | |||
| [I-D.ietf-bess-evpn-bum-procedure-updates]. The LIR bit may be set | [I-D.ietf-bess-evpn-bum-procedure-updates]. | |||
| in the S-PMSI A-D routes, and the PEs that need to receive | ||||
| corresponding traffic will respond with a Leaf A-D route. The | ||||
| ingress PE identifies the set of BFERs to deliver traffic to | ||||
| according to the set of corresponding Leaf A-D routes received. | ||||
| The S-PMSI A-D route carries the same PTA as in the IMET route, | The rules specified in Section 2.2.1 and Section 2.2.2 of | |||
| except that similar to MVPN, the LIR-pF flag may be set for an | [I-D.ietf-bier-mvpn] apply. | |||
| ingress PE to request individual (C-S,C-G) or (C-*,C-G) Leaf A-D | ||||
| routes. | ||||
| 2.1.2.2. Tunnel Segmentation | 2.1.2.2. Tunnel Segmentation | |||
| Another case where S-PMSI/Leaf A-D routes are necessary is tunnel | Another case where S-PMSI/Leaf A-D routes are necessary is tunnel | |||
| segmentation, which is also specified in | segmentation, which is also specified in | |||
| [I-D.ietf-bess-evpn-bum-procedure-updates], and further clarified in | [I-D.ietf-bess-evpn-bum-procedure-updates], and further clarified in | |||
| [I-D.zzhang-bess-mvpn-evpn-cmcast-enhancements] for segmentation with | [I-D.zzhang-bess-mvpn-evpn-cmcast-enhancements] for segmentation with | |||
| SMET routes. This is only applicable to EVPN-MPLS. | SMET routes. This is only applicable to EVPN-MPLS. | |||
| Similar to MVPN, the LIR-pF flag cannot be used with segmentation, | The rules specified in Section 2.2.1 of [I-D.ietf-bier-mvpn] apply. | |||
| and the S-PMSI A-D routes' PTA MUST carry an upstream assigned label | Section 2.2.2 of [I-D.ietf-bier-mvpn] do not apply, because similar | |||
| to allow tunnel segmentation points to do label switching. The | to MVPN, the LIR-pF flag cannot be used with segmentation. | |||
| S-PMSI A-D routes could be proactively (re-)advertised by the ingress | ||||
| PEs or segmentation points, or could be triggered by the unsolicited | ||||
| Leaf A-D routes received from downstream. | ||||
| 2.2. MPLS Label in PTA | 2.1.2.3. Applicability of Additional MVPN Sepcifications | |||
| Similar to the MVPN case in [I-D.ietf-bier-mvpn], the label | As with the MVPN case, Section "3. Use of the PMSI Tunnel Attribute | |||
| allocation for the upstream assigned label in the PTA MUST follow the | in Leaf A-D routes" of [I-D.ietf-bier-mvpn] apply. | |||
| following rules (text borrowed verbatim from [I-D.ietf-bier-mvpn]). | ||||
| Suppose an ingress PE originates two x-PMSI A-D routes, where we use | Notice that, [I-D.ietf-bier-mvpn] refers to procedures specified in | |||
| the term "x-PMSI" to mean "I-PMSI or S-PMSI or IMET". Suppose both | [RFC6625] and [I-D.ietf-bess-mvpn-expl-track]. Those two documents | |||
| routes carry a PTA, and the PTA of each route specifies"BIER". | were specified for MVPN but are actually applicable to IP multicast | |||
| payload in EVPN as well. | ||||
| o If the two routes do not carry the same set of Route Targets | 2.2. MPLS Label in PTA | |||
| (RTs), then their respective PTAs MUST contain different MPLS | ||||
| label values. | ||||
| o If segmented P-tunnels are being used, then the respective PTAs of | Rules in section 2.1 of [I-D.ietf-bier-mvpn] apply, EXCEPT the | |||
| the two routes MUST contain different MPLS label values, as long | following three bullets (they do NOT apply to EVPN) in that section: | |||
| as the NLRIs are not identical. In this case, the MPLS label can | ||||
| be used by the BFER to identify the particular C-flow to which a | ||||
| data packet belongs, and this greatly simplifies the process of | ||||
| forwarding a received packet to its next P-tunnel segment. This | ||||
| is explained further below. | ||||
| When segmented P-tunnels are being used, an ABR or ASBR may receive, | o If the two routes do not have the same Address Family Identifier | |||
| from a BIER domain, an x-PMSI A-D route whose PTA specifies "BIER". | (AFI) value, then their respective PTAs MUST contain different | |||
| This means that BIER is being used for one segment of a segmented | MPLS label values. This ensures that when an egress PE receives a | |||
| P-tunnel. The ABR/ASBR may in turn need to originate an x-PMSI A-D | data packet with the given label, the egress PE can infer from the | |||
| route whose PTA identifies the next segment of the P-tunnel. The | label whether the payload is an IPv4 packet or an IPv6 packet. | |||
| next segment may also be "BIER". Suppose an ABR/ASBR receives x-PMSI | ||||
| A-D routes R1 and R2, and as a result originates x-PMSI A-D routes R3 | ||||
| and R4 respectively, where the PTAs of each of the four routes | ||||
| specify BIER. Then the PTAs of R3 and R4 MUST NOT specify the same | ||||
| MPLS label. | ||||
| The ABR/ASBR MUST then program its dataplane such that a packet | o If the BFIR is an ingress PE supporting MVPN extranet ([RFC7900]) | |||
| arriving with the upstream-assigned label specified in route R1 is | functionality, and if the two routes originate from different VRFs | |||
| transmitted with the upstream-assigned label specified in route R3, | on this ingress PE, then the respective PTAs of the two routes | |||
| and a packet arriving with the upstream-assigned label specified in | MUST contain different MPLS label values. | |||
| route R2 is transmitted with the label specified in route R4. Of | ||||
| course, the data plane must also be programmed to encapsulate the | o If the BFIR is an ingress PE supporting the "Extranet Separation" | |||
| transmitted packets with an appropriate BIER header, whose BitString | feature of MVPN extranet (see Section 7.3 of [RFC7900]), and if | |||
| is determined by the multicast flow overlay. | one of the routes carries the "Extranet Separation" extended | |||
| community but the other does not, then the respective PTAs of the | ||||
| two routes MUST contain different MPLS label values. | ||||
| 3. Multihoming Split Horizon | 3. Multihoming Split Horizon | |||
| For EVPN-MPLS, [RFC7432] specifies the use of ESI labels to identify | For EVPN-MPLS, [RFC7432] specifies the use of ESI labels to identify | |||
| the ES from which a BUM packet originates. A PE receiving that | the ES from which a BUM packet originates. A PE receiving that | |||
| packet from the core side will not forward it to the same ES. The | packet from the core side will not forward it to the same ES. The | |||
| procedure works for both Ingress Replication (IR) and RSVP-TE/mLDP | procedure works for both Ingress Replication (IR) and RSVP-TE/mLDP | |||
| P2MP tunnels, using downstream- and upstream-assigned ESI labels | P2MP tunnels, using downstream- and upstream-assigned ESI labels | |||
| respectively. For EVPN-VXLAN/NVGRE, [I-D.ietf-bess-evpn-overlay] | respectively. For EVPN-VXLAN/NVGRE, [RFC8365] specifies local-bias | |||
| specifies local-bias procedures, where a PE receiving a BUM packet | procedures, with which a PE receiving a BUM packet from the core side | |||
| from the core side knows from encapsulation the ingress PE so it does | knows from encapsulation the ingress PE so it does not forward the | |||
| not forward the packet to any multihoming ESes that the ingress PE is | packet to any multihoming ESes that the ingress PE is on, because the | |||
| on, because the ingress PE already forwarded the packet to those | ingress PE already forwarded the packet to those ESes, regardless of | |||
| ESes, regardless of whether the ingress PE is a DF for those ESes. | whether the ingress PE is a DF for those ESes. | |||
| With BIER, the local-bias procedure still applies for EVPN-VXLAN/ | With BIER, the local-bias procedure still applies for EVPN-VXLAN/ | |||
| NVGRE as the BFIR-id in the BIER header identifies the ingress PE. | NVGRE as the BFIR-id in the BIER header identifies the ingress PE. | |||
| For EVPN-MPLS, ESI label procedures also still apply though two | For EVPN-MPLS, ESI label procedures also still apply though two | |||
| upstream assigned labels will be used (one for identifying the | upstream assigned labels will be used (one for identifying the | |||
| broadcast domain and one for identifying the ES) - the same as in the | broadcast domain and one for identifying the ES) - the same as in the | |||
| case of using a single P2MP tunnel for multiple broadcast domains. | case of using a single P2MP tunnel for multiple broadcast domains. | |||
| The BFIR-id in the BIER header identifies the ingress PE that | The BFIR-id in the BIER header identifies the ingress PE that | |||
| assigned those two labels. | assigned those two labels. | |||
| Details for split-horizon in case of segmentation will be provided in | ||||
| future revisions. | ||||
| 4. Data Plane | 4. Data Plane | |||
| Similar to MVPN, the EVPN application plays the role of the | Similar to MVPN, the EVPN application plays the role of the | |||
| "multicast flow overlay" as described in | "multicast flow overlay" as described in [RFC8279]. | |||
| [I-D.ietf-bier-architecture]. | ||||
| 4.1. Encapsulation and Transmission | 4.1. Encapsulation and Transmission | |||
| To transmit a BUM data packet, an ingress PE first pushes the ESI | A BFIR could be either an ingress PE or a P-tunnel segmentation | |||
| label per [RFC7432] if the following conditions are all met: | point. The procedures are slightly different as described below. | |||
| 4.1.1. At a BFIR that is an Ingress PE | ||||
| To transmit a BUM data packet, an ingress PE first determines the | ||||
| route matched for transmission and routes for tracking leaves | ||||
| according to the following rules. | ||||
| 1. If selective forwarding is not used, or it is not an IP Multicast | ||||
| packet after the ethernet header, the IMET route originated for | ||||
| the BD by the ingress PE is the route matched for transmission. | ||||
| Leaf tracking routes are all other received IMET routes for the | ||||
| BD. | ||||
| 2. Otherwise, if selective forwarding is used for all IP Multicast | ||||
| traffic based on SMET routes, the IMET route originated for the | ||||
| BD by the ingress PE is the route matched for transmisssion. | ||||
| Received SMET routes for the BD that best match the source and | ||||
| destination IP adddress are leaf tracking routes. | ||||
| 3. Otherwise, route matched for transmission is the S-PMSI A-D route | ||||
| originated by the ingress PE for the BD, that best matches the | ||||
| packet's source and destination IP address and has a PTA | ||||
| specifying a valid tunnel type that is not "no tunnel info". | ||||
| Leaf tracking routes are determined as following: | ||||
| 1) If the match for transmission route carries a PTA that has | ||||
| the LIR flag set but does not have the LIR-pF flag set, the | ||||
| routes matched for tracking are Leaf A-D routes whose "route | ||||
| key" field is identical to the NLRI of the S-PMSI A-D route. | ||||
| 2) If the match for transmission route carries a PTA that has | ||||
| the LIR-pF flag, the leaf tracking routes are Leaf A-D routes | ||||
| whose "route key" field is derived from the NLRI of the | ||||
| S-PMSI A-D route according to the procedures described in | ||||
| Section 5.2 of [I-D.ietf-bess-mvpn-expl-track]. | ||||
| Note that in both cases, SMET routes may be used in lieu of Leaf | ||||
| A-D routes, as a PE may omit the Leaf A-D route in response to an | ||||
| S-PMSI A-D route with LIR or LIR-pF bit set, if an SMET route | ||||
| with the corresponding Tag, Source and Group fields is already | ||||
| originated [I-D.ietf-bess-evpn-bum-procedure-updates]. In | ||||
| particular, in the second case above, even though the SMET route | ||||
| does not have a PTA attached, it is still considered as a Leaf | ||||
| A-D route in response to a wildcard S-PMSI A-D route with the | ||||
| LIR-pF bit set. | ||||
| 4. Otherwise, route matched for transmission and leaf tracking | ||||
| routes are determined as in rule 1. | ||||
| If no route is matched for transmission, the packet is not forwarded | ||||
| onto a p-tunnel. If the tunnel that the ingress determines to use | ||||
| based on the route matched for transmission (and considering | ||||
| interworking with PEs that do not support certain tunnel types per | ||||
| procedures in [I-D.ietf-bess-evpn-igmp-mld-proxy]) requires leaf | ||||
| tracking (e.g. Ingress Replication, RSVP-TE P2MP tunnel, or BIER) | ||||
| but there are no leaf tracking routes, the packet will not be | ||||
| forwarded onto a p-tunnel either. | ||||
| The following text assumes that BIER is the determined tunnel type. | ||||
| The ingress PE pushes an upstream assigned ESI label per [RFC7432] if | ||||
| the following conditions are all met: | ||||
| o The packet is received on a multihomed ES. | o The packet is received on a multihomed ES. | |||
| o It's EVPN-MPLS. | o It's EVPN-MPLS. | |||
| o ESI label procedure is used for split-horizon. | o ESI label procedure is used for split-horizon. | |||
| It then finds the S-PMSI A-D route, or the SMET/IMET route that | The (upstream-assigned) MPLS label from the PTA of the route matched | |||
| matches that packet. Any S-PMSI A-D route with a PTA specifying "no | for transmission is then pushed onto the packet's label stack in case | |||
| tunnel information" is ignored. If one ore more SMET routes are | of EVPN-MPLS. In case of EVPN-VXLAN/NVGRE, a VXLAN/NVGRE header is | |||
| matched, the IMET route originated by the ingress PE for the | prepended to the packet with the VNI/VSID set to the value in the | |||
| broadcast domain is then located to obtain the PTA. | PTA's label field and no IP/UDP header is used. | |||
| If the found S-PMSI A-D or the IMET route has a PTA specifying | ||||
| "BIER", and the ingress PE determines that BIER should be used (e.g., | ||||
| per procedures in [I-D.ietf-bess-evpn-igmp-mld-proxy] about | ||||
| interworking with PEs that do not support certain tunnel types), the | ||||
| (upstream-assigned) MPLS label from that PTA is pushed on the | ||||
| packet's label stack in case of EVPN-MPLS. In case of EVPN-VXLAN/ | ||||
| NVGRE, a VXLAN/NVGRE header is prepended to the packet with the VNI/ | ||||
| VSID set to the value in the PTA's label field and no IP/UDP header | ||||
| is used. | ||||
| Then the packet is encapsulated in a BIER header and forwarded, | Then the packet is encapsulated in a BIER header and forwarded, | |||
| according to the procedures of [I-D.ietf-bier-architecture] and | according to the procedures of [RFC8279] and [RFC8296]. See | |||
| [I-D.ietf-bier-mpls-encapsulation]. See especially Section 4, | especially Section 4, "Imposing and Processing the BIER | |||
| "Imposing and Processing the BIER Encapsulation", of | Encapsulation", of [RFC8296]. The "Proto" field in the BIER header | |||
| [I-D.ietf-bier-mpls-encapsulation]. The "Proto" field in the BIER | is set to 2 in case of EVPN-MPLS or a value to be assigned in case of | |||
| header is set to 2 in case of EVPN-MPLS or a value to be assigned in | EVPN-VXLAN/NVGRE (Section 5). | |||
| case of EVPN-VXLAN/NVGRE (Section 5). | ||||
| In order to create the proper BIER header for a given packet, the | In order to create the proper BIER header for a given packet, the | |||
| BFIR must know all the BFERs that need to receive that packet. If | BFIR must know all the BFERs that need to receive that packet. This | |||
| SMET routes are matched, it determines all the BFERs from all the | is determined from the set of leaf tracking routes. | |||
| matching SMET routes in the broadcast domain. | ||||
| If an S-PMSI route is matched, it determines all the BFERs by finding | 4.1.2. At a BFIR that is a P-tunnel Segmentation Point | |||
| all the Leaf A-D routes that correspond to the S-PMSI A-D route that | ||||
| is the packet's match for transmission. There are two different | ||||
| cases to consider: | ||||
| 1 The S-PMSI A-D route that is the match for transmission carries a | In this case, the encapsulation for upstream segment of the p-tunnel | |||
| PTA that has the LIR flag set but does not have the LIR-pF flag | includes (among other things) a label that identifies the x-PMSI or | |||
| set. In this case, the corresponding Leaf A-D routes are those | IMET A-D route that is the match for reception on the upstream | |||
| whose "route key" field is identical to the NLRI of the S-PMSI A-D | segment. The segmentation point re-advertised the route into one or | |||
| route. | more downstream regions. Each instance of the re-advertised route | |||
| for a downstream region has a PTA that specify tunnel information | ||||
| that is the same as or different from that of the route for a | ||||
| different region. For any particular downstream region, the route | ||||
| matched for transmission is the re-advertised route, and the leaf | ||||
| tracking routes are determined as following if needed for the tunnel | ||||
| type: | ||||
| 2 The S-PMSI A-D route that is the match for transmission carries a | o If the route matched for transmission is an x-PMSI route, it must | |||
| PTA that has the LIR-pF flag. In this case, the corresponding | have the LIR flag set in its PTA and the leaf tracking routes are | |||
| Leaf A-D routes are those whose "route key" field is derived from | all the matching Leaf A-D and SMET routes received in the | |||
| the NLRI of the S-PMSI A-D route according to the procedures | downstream region. | |||
| described in Section 5.2 of [EXPLICIT_TRACKING]. | ||||
| o If the route matched for transmission is an IMET route, the leaf | ||||
| tracking routes are all the IMET routes for the same BD received | ||||
| in the downtream region. | ||||
| If the downtream region uses BIER, the packet is forwarded as | ||||
| following: the upstream segmentation's encapsulation is removed and | ||||
| the above mentioned label is swapped to the upstream-assigned label | ||||
| in the PTA of the route matched for transmission, and then a BIER | ||||
| header is imposed as in Section 4.1.1. | ||||
| 4.2. Disposition | 4.2. Disposition | |||
| The same procedures in section 3.2 of [I-D.ietf-bier-mvpn] are | The same procedures in section 4.2 of [I-D.ietf-bier-mvpn] are | |||
| followed for EVPN-MPLS (text could be copied here). For EVPN-VXLAN/ | followed for EVPN-MPLS, except some EVPN specifics discussed in the | |||
| NVGRE, the only difference is that the payload is VXLAN/NVGRE and the | following two sub-sections in this document. | |||
| VNI/VSID field in the VXLAN/NVGRE header is used to determine the | ||||
| corresponding mac VRF or broadcast domain. | For EVPN-VXLAN/NVGRE, the only difference is that the payload is | |||
| VXLAN/NVGRE and the VNI/VSID field in the VXLAN/NVGRE header is used | ||||
| to determine the corresponding mac VRF or broadcast domain. | ||||
| 4.2.1. At a BFER that is an Egress PE | 4.2.1. At a BFER that is an Egress PE | |||
| Once the corresponding mac VRF or broadcast domain is determined from | Once the corresponding mac VRF or broadcast domain is determined from | |||
| the upstream assigned label or VNI/VSID, EVPN forwarding procedures | the upstream assigned label or VNI/VSID, EVPN forwarding procedures | |||
| per [RFC7432] or [I-D.ietf-bess-evpn-overlay] are followed. In case | per [RFC7432] or [RFC8365] are followed. In case of EVPN-MPLS, if | |||
| of EVPN-MPLS, if there is an inner label in the label stack following | there is an inner label in the label stack following the BIER header, | |||
| the BIER header, that inner label is considered as the upstream | that inner label is considered as the upstream assigned ESI label for | |||
| assigned ESI label for split horizon purpose. | split horizon purpose. | |||
| 4.2.2. At a BFER that is a P-tunnel Segmentation Boundary | 4.2.2. At a BFER that is a P-tunnel Segmentation Point | |||
| This is only applicable to EVPN-MPLS. The same procedures in | This is only applicable to EVPN-MPLS. The same procedures in | |||
| Section 3.2.2 of [I-D.ietf-bier-mvpn] are followed, subject to | Section 4.2.2 of [I-D.ietf-bier-mvpn] are followed, subject to | |||
| multihoming considerations described in Section 3 of this document. | multihoming procedures specified in | |||
| [I-D.ietf-bess-evpn-bum-procedure-updates]. | ||||
| 5. IANA Considerations | 5. IANA Considerations | |||
| This document requests two assignments in "BIER Next Protocol | This document requests two assignments in "BIER Next Protocol | |||
| Identifiers" registry, with the following two recommended values: | Identifiers" registry, with the following two recommended values: | |||
| o 7: Payload is VXLAN encapsulated (no IP/UDP header) | o 7: Payload is VXLAN encapsulated (no IP/UDP header) | |||
| o 8: Payload is NVGRE encapsulated (no IP header) | o 8: Payload is NVGRE encapsulated (no IP header) | |||
| skipping to change at page 10, line 35 ¶ | skipping to change at page 11, line 36 ¶ | |||
| The authors thank Eric Rosen for his review and suggestions. | The authors thank Eric Rosen for his review and suggestions. | |||
| Additionally, much of the text is borrowed verbatim from | Additionally, much of the text is borrowed verbatim from | |||
| [I-D.ietf-bier-mvpn]. | [I-D.ietf-bier-mvpn]. | |||
| 8. References | 8. References | |||
| 8.1. Normative References | 8.1. Normative References | |||
| [I-D.ietf-bess-evpn-bum-procedure-updates] | [I-D.ietf-bess-evpn-bum-procedure-updates] | |||
| Zhang, Z., Lin, W., Rabadan, J., and K. Patel, "Updates on | Zhang, Z., Lin, W., Rabadan, J., Patel, K., and A. | |||
| EVPN BUM Procedures", draft-ietf-bess-evpn-bum-procedure- | Sajassi, "Updates on EVPN BUM Procedures", draft-ietf- | |||
| updates-01 (work in progress), December 2016. | bess-evpn-bum-procedure-updates-03 (work in progress), | |||
| April 2018. | ||||
| [I-D.ietf-bess-evpn-igmp-mld-proxy] | [I-D.ietf-bess-evpn-igmp-mld-proxy] | |||
| Sajassi, A., Thoria, S., Patel, K., Yeung, D., Drake, J., | Sajassi, A., Thoria, S., Patel, K., Yeung, D., Drake, J., | |||
| and W. Lin, "IGMP and MLD Proxy for EVPN", draft-ietf- | and W. Lin, "IGMP and MLD Proxy for EVPN", draft-ietf- | |||
| bess-evpn-igmp-mld-proxy-00 (work in progress), March | bess-evpn-igmp-mld-proxy-01 (work in progress), March | |||
| 2017. | 2018. | |||
| [I-D.ietf-bess-mvpn-expl-track] | [I-D.ietf-bess-mvpn-expl-track] | |||
| Dolganow, A., Kotalwar, J., Rosen, E., and Z. Zhang, | Dolganow, A., Kotalwar, J., Rosen, E., and Z. Zhang, | |||
| "Explicit Tracking with Wild Card Routes in Multicast | "Explicit Tracking with Wild Card Routes in Multicast | |||
| VPN", draft-ietf-bess-mvpn-expl-track-02 (work in | VPN", draft-ietf-bess-mvpn-expl-track-09 (work in | |||
| progress), June 2017. | progress), April 2018. | |||
| [I-D.ietf-bier-architecture] | ||||
| Wijnands, I., Rosen, E., Dolganow, A., Przygienda, T., and | ||||
| S. Aldrin, "Multicast using Bit Index Explicit | ||||
| Replication", draft-ietf-bier-architecture-07 (work in | ||||
| progress), June 2017. | ||||
| [I-D.ietf-bier-mpls-encapsulation] | ||||
| Wijnands, I., Rosen, E., Dolganow, A., Tantsura, J., | ||||
| Aldrin, S., and I. Meilik, "Encapsulation for Bit Index | ||||
| Explicit Replication in MPLS and non-MPLS Networks", | ||||
| draft-ietf-bier-mpls-encapsulation-07 (work in progress), | ||||
| June 2017. | ||||
| [I-D.ietf-bier-mvpn] | [I-D.ietf-bier-mvpn] | |||
| Rosen, E., Sivakumar, M., Aldrin, S., Dolganow, A., and T. | Rosen, E., Sivakumar, M., Aldrin, S., Dolganow, A., and T. | |||
| Przygienda, "Multicast VPN Using BIER", draft-ietf-bier- | Przygienda, "Multicast VPN Using BIER", draft-ietf-bier- | |||
| mvpn-07 (work in progress), July 2017. | mvpn-11 (work in progress), March 2018. | |||
| [I-D.zzhang-bess-mvpn-evpn-cmcast-enhancements] | ||||
| Zhang, Z., Kebler, R., Lin, W., and E. Rosen, "MVPN/EVPN | ||||
| C-Multicast Routes Enhancements", draft-zzhang-bess-mvpn- | ||||
| evpn-cmcast-enhancements-00 (work in progress), July 2016. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC6625] Rosen, E., Ed., Rekhter, Y., Ed., Hendrickx, W., and R. | ||||
| Qiu, "Wildcards in Multicast VPN Auto-Discovery Routes", | ||||
| RFC 6625, DOI 10.17487/RFC6625, May 2012, | ||||
| <https://www.rfc-editor.org/info/rfc6625>. | ||||
| [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., | [RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A., | |||
| Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based | Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based | |||
| Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February | Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February | |||
| 2015, <http://www.rfc-editor.org/info/rfc7432>. | 2015, <https://www.rfc-editor.org/info/rfc7432>. | |||
| [RFC8279] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., | ||||
| Przygienda, T., and S. Aldrin, "Multicast Using Bit Index | ||||
| Explicit Replication (BIER)", RFC 8279, | ||||
| DOI 10.17487/RFC8279, November 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8279>. | ||||
| [RFC8296] Wijnands, IJ., Ed., Rosen, E., Ed., Dolganow, A., | ||||
| Tantsura, J., Aldrin, S., and I. Meilik, "Encapsulation | ||||
| for Bit Index Explicit Replication (BIER) in MPLS and Non- | ||||
| MPLS Networks", RFC 8296, DOI 10.17487/RFC8296, January | ||||
| 2018, <https://www.rfc-editor.org/info/rfc8296>. | ||||
| 8.2. Informative References | 8.2. Informative References | |||
| [I-D.ietf-bess-evpn-overlay] | [I-D.zzhang-bess-mvpn-evpn-cmcast-enhancements] | |||
| Sajassi, A., Drake, J., Bitar, N., Shekhar, R., Uttaro, | Zhang, Z., Kebler, R., Lin, W., and E. Rosen, "MVPN/EVPN | |||
| J., and W. Henderickx, "A Network Virtualization Overlay | C-Multicast Routes Enhancements", draft-zzhang-bess-mvpn- | |||
| Solution using EVPN", draft-ietf-bess-evpn-overlay-08 | evpn-cmcast-enhancements-00 (work in progress), July 2016. | |||
| (work in progress), March 2017. | ||||
| [RFC8365] Sajassi, A., Ed., Drake, J., Ed., Bitar, N., Shekhar, R., | ||||
| Uttaro, J., and W. Henderickx, "A Network Virtualization | ||||
| Overlay Solution Using Ethernet VPN (EVPN)", RFC 8365, | ||||
| DOI 10.17487/RFC8365, March 2018, | ||||
| <https://www.rfc-editor.org/info/rfc8365>. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Zhaohui Zhang | Zhaohui Zhang | |||
| Juniper Networks | Juniper Networks | |||
| EMail: zzhang@juniper.net | EMail: zzhang@juniper.net | |||
| Antoni Przygienda | Antoni Przygienda | |||
| Juniper Networks | Juniper Networks | |||
| EMail: prz@juniper.net | EMail: prz@juniper.net | |||
| Ali Sajassi | Ali Sajassi | |||
| Cisco Systems | Cisco Systems | |||
| EMail: sajassi@cisco.com | EMail: sajassi@cisco.com | |||
| End of changes. 48 change blocks. | ||||
| 191 lines changed or deleted | 246 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/ | ||||