| rfc9573v3.txt | rfc9573.txt | |||
|---|---|---|---|---|
| skipping to change at line 12 ¶ | skipping to change at line 12 ¶ | |||
| Internet Engineering Task Force (IETF) Z. Zhang | Internet Engineering Task Force (IETF) Z. Zhang | |||
| Request for Comments: 9573 Juniper Networks | Request for Comments: 9573 Juniper Networks | |||
| Updates: 6514, 7432, 7582 E. Rosen | Updates: 6514, 7432, 7582 E. Rosen | |||
| Category: Standards Track Individual | Category: Standards Track Individual | |||
| ISSN: 2070-1721 W. Lin | ISSN: 2070-1721 W. Lin | |||
| Juniper Networks | Juniper Networks | |||
| Z. Li | Z. Li | |||
| Huawei Technologies | Huawei Technologies | |||
| IJ. Wijnands | IJ. Wijnands | |||
| Individual | Individual | |||
| April 2024 | May 2024 | |||
| MVPN/EVPN Tunnel Aggregation with Common Labels | MVPN/EVPN Tunnel Aggregation with Common Labels | |||
| Abstract | Abstract | |||
| The Multicast VPN (MVPN) specifications allow a single Point-to- | The Multicast VPN (MVPN) specifications allow a single Point-to- | |||
| Multipoint (P2MP) tunnel to carry traffic of multiple IP VPNs | Multipoint (P2MP) tunnel to carry traffic of multiple IP VPNs | |||
| (referred to as VPNs in this document). The EVPN specifications | (referred to as VPNs in this document). The EVPN specifications | |||
| allow a single P2MP tunnel to carry traffic of multiple Broadcast | allow a single P2MP tunnel to carry traffic of multiple Broadcast | |||
| Domains (BDs). These features require the ingress router of the P2MP | Domains (BDs). These features require the ingress router of the P2MP | |||
| skipping to change at line 296 ¶ | skipping to change at line 296 ¶ | |||
| One method of achieving this is to reserve a portion of the default | One method of achieving this is to reserve a portion of the default | |||
| label space for assignment by a central entity. We refer to this | label space for assignment by a central entity. We refer to this | |||
| reserved portion as the DCB of labels. This is analogous to the | reserved portion as the DCB of labels. This is analogous to the | |||
| concept of using identical SRGBs on all nodes, as described in | concept of using identical SRGBs on all nodes, as described in | |||
| [RFC8402]. A PE that is attached (via L3VPN Virtual Routing and | [RFC8402]. A PE that is attached (via L3VPN Virtual Routing and | |||
| Forwarding (VRF) interfaces or EVPN Attachment Circuits) would know | Forwarding (VRF) interfaces or EVPN Attachment Circuits) would know | |||
| by provisioning which label from the DCB corresponds to which of its | by provisioning which label from the DCB corresponds to which of its | |||
| locally attached VPNs, BDs, or ESs. | locally attached VPNs, BDs, or ESs. | |||
| For example, all PEs could reserve a DCB [1000~2000], and they are | For example, all PEs could reserve a DCB [1000~2000], and they would | |||
| all provisioned that label 1000 maps to VPN 0, 1001 to VPN 1, and so | all be provisioned so that label 1000 maps to VPN 0, label 1001 maps | |||
| forth. Now, only 1000 labels instead of 1,000,000 labels are needed | to VPN 1, and so forth. Now, only 1000 labels instead of 1,000,000 | |||
| for 1000 VPNs. | labels are needed for 1000 VPNs. | |||
| In this document, "domain" is defined loosely; it simply includes all | In this document, "domain" is defined loosely; it simply includes all | |||
| the routers that share the same DCB, and it only needs to include all | the routers that share the same DCB, and it only needs to include all | |||
| PEs of an MVPN/EVPN. | PEs of an MVPN/EVPN. | |||
| The "domain" could also include all routers in the provider network, | The "domain" could also include all routers in the provider network, | |||
| making it not much different from a common SRGB across all the | making it not much different from a common SRGB across all the | |||
| routers. However, that is not necessary, as the labels used by PEs | routers. However, that is not necessary, as the labels used by PEs | |||
| for the purposes defined in this document will only rise to the top | for the purposes defined in this document will only rise to the top | |||
| of the label stack when traffic arrives at the PEs. Therefore, it is | of the label stack when traffic arrives at the PEs. Therefore, it is | |||
| better to not include internal P routers in the "domain". That way, | better to not include internal P routers in the "domain". That way, | |||
| they do not have to set aside the same DCB used for the purposes | they do not have to set aside the same DCB used for the purposes | |||
| defined in this document. | defined in this document. | |||
| In some deployments, it may be impractical to allocate a DCB that is | In some deployments, it may be impractical to allocate a DCB that is | |||
| large enough to contain labels for all the VPNs/BDs/ESs. In this | large enough to contain labels for all the VPNs/BDs/ESs. In this | |||
| case, it may be necessary to allocate those labels from one label | case, it may be necessary to allocate those labels from one or a few | |||
| space or the few separate context-specific label spaces that are | context-specific label spaces that are independent of each PE. For | |||
| independent of each PE. For example, if it is too difficult to have | example, if it is too difficult to have a DCB of 10,000 labels across | |||
| a DCB of 10,000 labels across all PEs for all the VPNs/BDs/ESs that | all PEs for all the VPNs/BDs/ESs that need to be supported, a | |||
| need to be supported, a separate context-specific label space can be | separate context-specific label space can be dedicated to those | |||
| dedicated to those 10,000 labels. Each separate context-specific | 10,000 labels. Each separate context-specific label space is | |||
| label space is identified in the forwarding plane by a label from the | identified in the forwarding plane by a label from the DCB (which | |||
| DCB (which does not need to be large). Each PE is provisioned with | does not need to be large). Each PE is provisioned with the label- | |||
| the label-space-identifying DCB label and the common VPN/BD/ES labels | space-identifying DCB label and the common VPN/BD/ES labels allocated | |||
| allocated from that context-specific label space. When sending | from that context-specific label space. When sending traffic, an | |||
| traffic, an ingress PE imposes all necessary service labels (for the | ingress PE imposes all necessary service labels (for the VPN/BD/ES) | |||
| VPN/BD/ES) first, then imposes the label-space-identifying DCB label. | first, then imposes the label-space-identifying DCB label. From the | |||
| From the label-space-identifying DCB label, an egress PE can | label-space-identifying DCB label, an egress PE can determine the | |||
| determine the label space where the inner VPN/BD/ES label is looked | label space where the inner VPN/BD/ES label is looked up. | |||
| up. | ||||
| The MVPN/EVPN signaling defined in [RFC6514] and [RFC7432] assumes | The MVPN/EVPN signaling defined in [RFC6514] and [RFC7432] assumes | |||
| that certain MPLS labels are allocated from a context-specific label | that certain MPLS labels are allocated from a context-specific label | |||
| space for a particular ingress PE. In this document, we augment the | space for a particular ingress PE. In this document, we augment the | |||
| signaling procedures so that it is possible to signal that a | signaling procedures so that it is possible to signal that a | |||
| particular label is from the DCB, rather than from a context-specific | particular label is from the DCB, rather than from a context-specific | |||
| label space for an ingress PE. We also augment the signaling so that | label space for an ingress PE. We also augment the signaling so that | |||
| it is possible to indicate that a particular label is from an | it is possible to indicate that a particular label is from an | |||
| identified context-specific label space that is not for an ingress | identified context-specific label space that is not for an ingress | |||
| PE. | PE. | |||
| skipping to change at line 357 ¶ | skipping to change at line 356 ¶ | |||
| from allocating VNIs and is especially feasible with controllers. | from allocating VNIs and is especially feasible with controllers. | |||
| 3.1. MP2MP Tunnels | 3.1. MP2MP Tunnels | |||
| Multipoint-to-Multipoint (MP2MP) tunnels present the same problem | Multipoint-to-Multipoint (MP2MP) tunnels present the same problem | |||
| (Section 2) that can be solved the same way (Section 3), with the | (Section 2) that can be solved the same way (Section 3), with the | |||
| following additional requirement. | following additional requirement. | |||
| Per [RFC7582] ("Multicast Virtual Private Network (MVPN): Using | Per [RFC7582] ("Multicast Virtual Private Network (MVPN): Using | |||
| Bidirectional P-Tunnels"), when MP2MP tunnels are used for an MVPN, | Bidirectional P-Tunnels"), when MP2MP tunnels are used for an MVPN, | |||
| the root of the MP2MP tunnel may need to allocate and advertise "PE | the root of the MP2MP tunnel is required to allocate and advertise | |||
| Distinguisher Labels" (Section 4 of [RFC6513]). These labels are | "PE Distinguisher Labels" (Section 4 of [RFC6513]). These labels are | |||
| assigned from the label space used by the root node for its upstream- | assigned from the label space used by the root node for its upstream- | |||
| assigned labels. | assigned labels. | |||
| It is REQUIRED by this document that the PE Distinguisher Labels | It is REQUIRED by this document that the PE Distinguisher Labels | |||
| allocated by a particular node come from the same label space that | allocated by a particular node come from the same label space that | |||
| the node uses to allocate its VPN-identifying labels. | the node uses to allocate its VPN-identifying labels. | |||
| 3.2. Segmented Tunnels | 3.2. Segmented Tunnels | |||
| There are some additional issues to be considered when an MVPN or | There are some additional issues to be considered when an MVPN or | |||
| skipping to change at line 761 ¶ | skipping to change at line 760 ¶ | |||
| [RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., | [RFC8660] Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S., | |||
| Decraene, B., Litkowski, S., and R. Shakir, "Segment | Decraene, B., Litkowski, S., and R. Shakir, "Segment | |||
| Routing with the MPLS Data Plane", RFC 8660, | Routing with the MPLS Data Plane", RFC 8660, | |||
| DOI 10.17487/RFC8660, December 2019, | DOI 10.17487/RFC8660, December 2019, | |||
| <https://www.rfc-editor.org/info/rfc8660>. | <https://www.rfc-editor.org/info/rfc8660>. | |||
| [RFC9572] Zhang, Z., Lin, W., Rabadan, J., Patel, K., and A. | [RFC9572] Zhang, Z., Lin, W., Rabadan, J., Patel, K., and A. | |||
| Sajassi, "Updates to EVPN Broadcast, Unknown Unicast, or | Sajassi, "Updates to EVPN Broadcast, Unknown Unicast, or | |||
| Multicast (BUM) Procedures", RFC 9572, | Multicast (BUM) Procedures", RFC 9572, | |||
| DOI 10.17487/RFC9572, April 2024, | DOI 10.17487/RFC9572, May 2024, | |||
| <https://www.rfc-editor.org/info/rfc9572>. | <https://www.rfc-editor.org/info/rfc9572>. | |||
| Acknowledgements | Acknowledgements | |||
| The authors thank Stephane Litkowski, Ali Sajassi, and Jingrong Xie | The authors thank Stephane Litkowski, Ali Sajassi, and Jingrong Xie | |||
| for their reviews of, comments on, and suggestions for this document. | for their reviews of, comments on, and suggestions for this document. | |||
| Contributors | Contributors | |||
| The following individual also contributed to this document: | The following individual also contributed to this document: | |||
| End of changes. 5 change blocks. | ||||
| 23 lines changed or deleted | 22 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||