rfc-9573

MVPN/EVPN Tunnel Aggregation with Common Labels

Z. Zhang, E. Rosen, W. Lin, Z. Li, IJ. Wijnands
date2024-05 streamIETF areartg wgbess statusPROPOSED STANDARD pages14 canonicalhttps://www.rfc-editor.org/rfc/rfc9573 doi10.17487/RFC9573 errataview
The Multicast VPN (MVPN) specifications allow a single Point-to-Multipoint (P2MP) tunnel to carry traffic of multiple IP VPNs (referred to as VPNs in this document). The EVPN specifications allow a single P2MP tunnel to carry traffic of multiple Broadcast Domains (BDs). These features require the ingress router of the P2MP tunnel to allocate an upstream-assigned MPLS label for each VPN or for each BD. A packet sent on a P2MP tunnel then carries the label that is mapped to its VPN or BD (in some cases, a distinct upstream-assigned label is needed for each flow.) Since each ingress router allocates labels independently, with no coordination among the ingress routers, the egress routers may need to keep track of a large number of labels. The number of labels may need to be as large as, or larger than, the product of the number of ingress routers times the number of VPNs or BDs. However, the number of labels can be greatly reduced if the association between a label and a VPN or BD is made by provisioning, so that all ingress routers assign the same label to a particular VPN or BD. New procedures are needed in order to take advantage of such provisioned labels. These new procedures also apply to Multipoint-to-Multipoint (MP2MP) tunnels. This document updates RFCs 6514, 7432, and 7582 by specifying the necessary procedures.

updates

Extracted elements (27)

design-rationale §3

A Domain-wide Common Block (DCB) of labels, reserved on all PEs and assigned by a central entity, reduces the label count for N VPNs/BDs/ESs from O(PEs × N) to O(N). This is analogous to using identical SRGBs across all nodes in Segment Routing [RFC8402].

mpls, routing

design-rationale §3.2.3

As an alternative to per-PMSI label allocation at segmentation points, segmentation points could perform (C-S,C-G) lookups in VRFs, allowing S-PMSIs for the same VPN/BD to share a common VPN/BD-identifying label. However, this trades a label-count scaling problem for a (C-S/*,C-G) route-count scaling problem in VRFs.

mpls, routing

design-rationale §3.2.2

For per-AS/region PMSI routes where different ASBRs/RBRs for the same source AS/region advertise the same route, using a common label requires coordination; the simpler approach is for each ASBR/RBR to allocate from its own assigned label block, avoiding the coordination requirement.

mpls, routing

design-rationale §3.2.1

For segmented selective tunnels, a single per-VPN/BD DCB label cannot be used at segmentation points because different flows on the same aggregate tunnel in one region may fan out to different tunnels in the next region. Per-PMSI labels allocated from PE-specific disjoint blocks within a context-specific label space are required instead.

mpls, routing

design-rationale §3

The 'domain' for DCB purposes need not include internal P routers, because DCB labels only appear at the top of the stack when traffic arrives at PE routers. Excluding P routers means they do not need to reserve the same label block.

mpls, routing

design-rationale §2

The ESI label scaling problem exists even without P2MP tunnel aggregation: if 1001 PEs each attach to 1000 ESs, each PE must understand up to 1,000,000 ESI labels allocated independently by other PEs from their own label spaces.

mpls, routing

design-rationale §3

When a single DCB large enough for all VPNs/BDs/ESs is impractical, a few context-specific label spaces (identified by small DCB labels) can hold the full VPN/BD/ES label set. Ingress PEs impose the context-identifying DCB label after the VPN/BD/ES label, allowing egress PEs to determine the correct forwarding table.

mpls, routing

design-rationale §2

With independent per-PE upstream-assigned label allocation, each egress PE must track up to PEs × VPNs/BDs labels (e.g., 1,000,000 labels for 1001 PEs each hosting 1000 VPNs). This scaling problem motivates the use of provisioned common labels so all ingress PEs assign the same label to a given VPN/BD/ES.

mpls, routing

interoperability-note §4.2

The three label allocation methods (DCB, common context-specific label spaces, per-PE disjoint blocks) can be used in any combination depending on deployment. The MAY in Section 4.2 means use of these procedures is optional, but when used, all PEs and segmentation points must consistently support them.

mpls, routing

normative-requirement §4.2 MUST NOT

An x-PMSI/IMET route MUST NOT carry both the DCB-flag and the Context-Specific Label Space ID EC. A received route with both present MUST be treated as withdrawn.

mpls, routing

normative-requirement §4.2 MUST

If a PE originates two x-PMSI/IMET routes sharing the same tunnel, they MUST all carry the DCB-flag, or all carry the Context-Specific Label Space ID EC, or none carry the DCB-flag, or none carry the Context-Specific Label Space ID EC. Inconsistent mixing causes receiving PEs to treat the routes as withdrawn.

mpls, routing

normative-requirement §4.2 MUST

If a VPN/BD/ES/PMSI label is assigned from one of the context-specific label spaces (not the DCB), a Context-Specific Label Space ID EC MUST be attached to the route, with ID-Type 0 and ID-Value set to the DCB label that identifies that context-specific label space.

mpls, routing

normative-requirement §4.2 MUST

If neither the DCB-flag nor the Context-Specific Label Space ID EC is present on an x-PMSI/IMET route, the label in the PTA or ESI Label EC MUST be treated as an upstream-assigned label from the source PE's label space, and the procedures of RFC 6514 and RFC 7432 MUST be followed.

mpls, routing

normative-requirement §3.1 REQUIRED

It is REQUIRED that PE Distinguisher Labels allocated by a particular node for MP2MP tunnels come from the same label space as the node's VPN-identifying labels.

mpls, routing

normative-requirement §4.2 MUST

The ES label and the BD label MUST be assigned from the same label space. If PE Distinguisher Labels are used [RFC7582], they MUST also be allocated from the same label space as the VPN-identifying labels.

mpls, routing

normative-requirement §4.2 MUST

The receiving PE MUST place an entry for the label in the PTA or ESI Label EC in the default MPLS forwarding table (if the DCB-flag is present) or in the context-specific label table (if the Context-Specific Label Space ID EC is present).

mpls, routing

normative-requirement §4.2 MUST

When a PE originates or re-advertises an x-PMSI/IMET route, the route MUST carry the DCB-flag if and only if the label in its PTA is assigned from the DCB.

mpls, routing

normative-requirement §4.2 MUST

When a PE receives an x-PMSI/IMET route with the Context-Specific Label Space ID EC, it MUST install an entry in its default MPLS forwarding table mapping the label in the EC to the corresponding context-specific label table for subsequent inner-label lookups.

mpls, routing

normative-requirement §4.2 MUST

When the procedures in this document are used, all PE routers and segmentation points MUST support these procedures. Ensuring uniform support is outside the scope of this document.

mpls, routing

protocol-element §4.1

The DCB-flag is Bit 47 in the 'Additional PMSI Tunnel Attribute Flags' BGP Extended Community [RFC7902]. A route 'carries the DCB-flag' when its PTA Flags field has the Extension bit set AND the Additional PMSI Tunnel Attribute Flags EC has the DCB-flag bit set.

mpls, routing

protocol-element §3.3

Three label allocation methods are defined: (1) central entity allocates per-VPN/BD/ES labels directly from the DCB; (2) central entity allocates from a few common context-specific label spaces identified by DCB labels; (3) per-PE disjoint blocks within context-specific label spaces for segmented S-PMSIs. Multiple methods may be combined.

mpls, routing

protocol-element §4.2

When using context-specific label spaces, an ingress PE imposes labels in order: first the VPN/BD label and/or ESI label (from the context-specific space), then the DCB label identifying that context-specific label space, then the transport tunnel encapsulation.

mpls, routing

registry §6

IANA assigned Bit 47 (named 'DCB') in the 'Additional PMSI Tunnel Attribute Flags' BGP Extended Community registry [RFC7902].

registry, mpls

registry §6

IANA assigned sub-type 0x08 for 'Context-Specific Label Space ID Extended Community' in the 'Transitive Opaque Extended Community Sub-Types' registry.

registry, mpls

registry §6

IANA created the 'Context-Specific Label Space ID Type' registry within the BGP Extended Communities group, with First Come First Served registration policy. Initial assignments: Type 0 = MPLS Label (RFC 9573), Types 1-254 = Unassigned, Type 255 = Reserved.

registry, mpls

security-consideration §5

The three label allocation methods are equivalent to using common SRGBs from the regular per-platform label space (Option 1), from a third-party label space [RFC5331] (Option 2), or from disjoint blocks in a third-party label space (Option 3). RFC 6514, 7432, 8402, and 5331 identify no security concerns related to label allocation methods, and this document introduces no new security concerns.

security, mpls

wire-format §4.1

The Context-Specific Label Space ID Extended Community is a Transitive Opaque EC (type 0x03 or 0x43, sub-type 0x08) with a 2-octet ID-Type field and a 4-octet ID-Value field. When ID-Type is 0 (MPLS Label), the most significant 20 bits of ID-Value carry the label value.

mpls, routing