RFC 9871: BGP Color-Aware Routing (CAR)
- D. Rao, Ed.,
- S. Agrawal, Ed.
Abstract
This document describes a BGP-based routing solution to establish end-to-end intent-aware paths across a multi-domain transport network. The transport network can span multiple service provider and customer network domains. The BGP intent-aware paths can be used to steer traffic flows for service routes that need a specific intent. This solution is called BGP Color-Aware Routing (BGP CAR).¶
This document describes the routing framework and BGP extensions to enable intent-aware routing using the BGP CAR solution. The solution defines two new BGP SAFIs (BGP CAR SAFI and BGP VPN CAR SAFI) for IPv4 and IPv6. It also defines an extensible Network Layer Reachability Information (NLRI) model for both SAFIs that allows multiple NLRI types to be defined for different use cases. Each type of NLRI contains key and TLV-based non-key fields for efficient encoding of different per-prefix information. This specification defines two NLRI types: Color-Aware Route NLRI and IP Prefix NLRI. It defines non-key TLV types for the MPLS label stack, SR-MPLS label index, and Segment Routing over IPv6 (SRv6) Segment Identifiers (SIDs). This solution also defines a new Local Color Mapping (LCM) Extended Community.¶
Status of This Memo
This document is not an Internet Standards Track specification; it is published for examination, experimental implementation, and evaluation.¶
This document defines an Experimental Protocol for the Internet community. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
BGP Color-Aware Routing (CAR) is a BGP-based routing solution to establish end-to-end intent-aware paths across a multi-domain service provider transport network. BGP CAR distributes distinct routes to a destination network endpoint, such as a Provider Edge (PE) router, for different intents or colors. Color is a non-zero 32-bit integer value associated with a network intent (such as low cost, low delay, avoid some resources, 5G network slice, etc.) as defined in Section 2.1 of [RFC9256].¶
BGP CAR fulfills the transport and VPN problem statement and the requirements described in [INTENT-AWARE].¶
For this purpose, this document specifies two new BGP SAFIs, called BGP CAR SAFI (83) and VPN CAR SAFI (84), that carry infrastructure routes to set up the transport paths. Both CAR SAFI and VPN CAR SAFI apply to IPv4 Unicast and IPv6 Unicast AFIs (AFI 1 and AFI 2). The use of these SAFIs with other AFIs are outside the scope of this document.¶
BGP CAR SAFI can be enabled on transport devices in a provider network
(underlay) to set up color-aware transport
This document also defines two BGP CAR route types for this purpose.¶
The BGP CAR Type-1 NLRI (E, C) enables the generation and distribution of multiple color-aware routes to the same destination IP prefix for different colors. This case arises from situations where a transport node such as a PE has a common IP address (such as a loopback) to advertise for multiple intents. The operator intends to use the common IP address as both the BGP next hop for service routes and as the transport endpoint for the data plane path. Multiple routes are needed for this same address or prefix to set up a unique path for each intent. One example is setting up multiple Label Switched Paths (LSPs) for MPLS or Segment Routing over MPLS (SR-MPLS) to an egress PE, one per intent.¶
The BGP CAR Type-2 NLRI (IP Prefix or E) enables the distribution of multiple color-aware routes to a transport node for the case where the operator specifies a unique network IP address block for a given intent, and the transport node gets assigned a unique IP prefix or address for each intent. An example use case is Segment Routing over IPv6 (SRv6) per-intent locators.¶
These BGP CAR intent-aware paths are then used by an ingress node (such as a PE) to steer traffic flows for service routes that need the specific intents. Steering may be towards a destination for all or specific traffic flows.¶
BGP CAR adheres to the flat routing model of BGP for IP routing (BGP-IP) [RFC4271] or BGP Labeled Unicast (BGP-LU) (SAFI 4 in [RFC8277]), and extends it to support intent awareness, thereby providing a consistent operational experience with those widely deployed transport routing technologies.¶
1.1. Terminology
- Intent (in routing):
-
Any behaviors to influence routing or path selection, including any combination of the following behaviors:¶
This is a more specific concept with respect to routing beyond best-effort, compared to intent as a declarative abstraction in [RFC9315].¶
- Color:
- A non-zero 32-bit integer value associated with an intent (e.g., low cost, low delay, or avoid some resources) as defined in Section 2.1 of [RFC9256]. Color assignment is managed by the operator.¶
- Colored service route:
- An egress PE (e.g., E2) colors its BGP service (e.g., VPN) route (e.g., V/v) to indicate the intent that it requests for the traffic bound to V/v. The color is encoded as a BGP Color Extended Community [RFC9012], used as per [RFC9256], or represented by the locator part of SRv6 Service SID [RFC9252].¶
- Color-aware path to (E2, C):
- A path to forward packets towards E2 that satisfies the intent associated with color C. Several technologies may provide a color-aware path to (E2, C), such as SR Policy [RFC9256], IGP Flexible Algorithm [RFC9350], and BGP CAR (as specified in this document).¶
- Color-aware route (E2, C):
- A distributed or signaled route that builds a color-aware path to E2 for color C.¶
- Service route automated steering on color-aware path:
- An ingress PE (or ASBR) E1 automatically steers traffic for a C-colored service route V/v from E2 onto an (E2, C) color-aware path. If several such paths exist, a preference scheme is used to select the best path (for example, IGP Flexible Algorithm is preferred over SR Policy, and SR Policy is preferred over BGP CAR).¶
- Color domain:
- A set of nodes that share the same color-to-intent mapping, typically under single administration. This set can be organized into one or multiple network domains (IGP areas/instances within a single BGP AS, or multiple BGP ASes). Color-to-intent mapping on nodes is set by configuration. Color re-mapping and filtering may happen at color domain boundaries. Refer to [INTENT-AWARE].¶
- Resolution of a BGP CAR route (E, C):
- An inter-domain BGP CAR route (E, C) via N is resolved on an intra-domain color-aware path (N, C) where N is the next hop of the BGP CAR route.¶
- Resolution versus steering:
-
Consistent with the terminology used in the SR Policy document (Section 8 of [RFC9256]), in this document (service route) steering is used to describe the mapping of the traffic for a service route onto a BGP CAR path. In contrast, the term resolution is preserved for the mapping of an inter-domain BGP CAR route on an intra-domain color-aware path.¶
- Service steering:
- Service route maps traffic to a BGP CAR path (or other color-aware path, e.g., SR Policy). If a color-aware path is not available, local policy may map to a color-unaware routing/TE path (e.g., BGP-LU, RSVP-TE, IGP/LDP). The service steering concept is agnostic to the transport technology used. Section 3 describes the specific service steering mechanisms leveraged for MPLS, SR-MPLS, and SRv6.¶
- Intra-domain resolution:
- BGP CAR route maps to an intra-domain color-aware path (e.g., SR Policy, IGP Flexible Algorithm, BGP CAR) or a color-unaware routing/TE path (e.g., RSVP-TE, IGP/LDP, BGP-LU).¶
- Transport network:
- A network that comprises of multiple cooperating domains managed by one or more operators, and uses routing technologies such as IP, MPLS, and SR to forward packets for connectivity and other services. In an SR deployment, the transport network is within a trusted domain as per [RFC8402].¶
- Transport layer:
- Refers to an underlay network layer (e.g., MPLS LSPs between PEs) that gets used by an overlay or service layer (e.g., MPLS VPNs).¶
- Transport RR:
- A BGP Route Reflector (RR) used to distribute transport
/underlay routes within a domain or across domains.¶ - Service RR:
- A BGP Route Reflector (RR) used to distribute service/overlay routes within a domain or across domains.¶
Abbreviations:¶
- ABR:
- Area Border Router¶
- AFI:
- Address Family Identifier¶
- AIGP:
- Accumulated IGP Metric Attribute [RFC7311]¶
- ASBR:
- Autonomous System Border Router¶
- BGP-LU:
- BGP Labeled Unicast SAFI (SAFI value 4 as per [RFC8277])¶
- BGP-IP:
- BGP IPv4/IPv6 Unicast SAFI (SAFI value 1 as per [RFC4760] and [RFC4271])¶
- BR:
- Border Router (either for an IGP area (an ABR) or a BGP autonomous system (an ASBR))¶
- Color-EC:
- BGP Color Extended Community [RFC9012]¶
- E:
- Generic representation of a transport endpoint such as a PE, ABR, or ASBR¶
- LCM-EC:
- BGP Local Color Mapping Extended Community¶
- NLRI:
- Network Layer Reachability Information [RFC4271]¶
- P node:
- An intra-domain transport router¶
- RD:
- Route Distinguisher¶
- RR:
- Route Reflector¶
- T-RR:
- Transport Route Reflector¶
- S-RR:
- Service Route Reflector¶
- SAFI:
- Subsequent Address Family Identifier¶
- TEA:
- Tunnel Encapsulation Attribute [RFC9012]¶
- V/v, W/w:
- Generic representations of a service route (indicating prefix/mask length), regardless of AFI/SAFI or actual NLRI encoding¶
1.2. Illustration
Here is a brief illustration of the salient properties of the BGP CAR solution.¶
All the nodes are part of an inter-domain network under a single authority and with a consistent color-to-intent mapping:¶
E1 receives two service routes from E2:¶
E1 has the following color-aware paths:¶
E1 automatically steers traffic for the received service routes as follows:¶
Illustrated properties:¶
Other properties:¶
The key benefits of this model are:¶
1.3. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
2. BGP CAR SAFI
2.1. Data Model
The BGP CAR data model is:¶
- NLRI key:
-
Falls into two categories to accommodate the use cases described in the introduction:¶
- Type-1:
- Key is IP Prefix and Color (E, C). Color in NLRI key distinguishes a color-aware route for a common IP prefix, one per intent. Color also indicates the intent associated with the route.¶
- Type-2:
- Key is IP Prefix (E). The unique IP prefix assigned for an intent (i.e, IP Prefix == intent) distinguishes the color-aware route. Color is not needed in NLRI key as a distinguisher.¶
- NLRI non-key encapsulation data:
- Data such as MPLS label stack, SR-MPLS label index, and SRv6 SID list associated with NLRI. Contained in TLVs as described in Section 2.9.2.¶
- BGP next hop:
- Next hop address associated with a particular NLRI key [RFC4760].¶
- AIGP metric [RFC7311]:
- Accumulates a metric value specific to color/intent for a CAR route across multiple BGP hops.¶
- Local Color Mapping Extended Community (LCM-EC):
-
Optional non-zero 32-bit color value used to represent the intent associated with a CAR route:¶
- BGP Color Extended Community (Color-EC) [RFC9012]:
- Optional non-zero 32-bit color value used to represent the intent associated with the BGP CAR next hop. It is used as per [RFC9256] for automated route resolution, when intent/color used for the next hop is different than the CAR route's intent/color.¶
The sections below describe the data model in detail. The sections that describe the protocol processing for CAR SAFI generally apply consistently to both route types (for instance, any operation based on color). The examples use (E, C) for simplicity.¶
2.2. Extensible Encoding
Extensible encoding is provided by:¶
- NLRI Type field:
-
This provides extensibility to add new NLRI formats for new route types.¶
NLRI (route) types other than Type-1 (E, C) and Type-2 (E) are outside the scope of this document.¶
- Key Length field:
- This specifies the key length. It allows new NLRI types to be handled opaquely, which permits transitivity of new route types through BGP speakers such as Route Reflectors (RRs).¶
- TLV-based encoding of non-key part of NLRI:
- This allows the inclusion of additional non-key fields for a prefix to support different types of transport simultaneously with efficient BGP update packing (Section 2.9).¶
- AIGP attribute:
- This provides extensibility via TLVs, enabling definition of additional metric semantics for a color as needed for an intent.¶
2.3. BGP CAR Route Origination
A BGP CAR route may be originated locally (e.g., loopback) or through redistribution of an (E, C) color-aware path provided by another routing solution (e.g., SR Policy, IGP Flexible Algorithm, RSVP-TE, BGP-LU [RFC8277]).¶
2.4. BGP CAR Route Validation
A BGP CAR path (E, C) via next hop N with encapsulation T is valid if color-aware path (N, C) exists with encapsulation T available in data plane.¶
A local policy may customize the validation process:¶
A path that is not valid MUST NOT be considered for BGP best path selection.¶
2.5. BGP CAR Route Resolution
A BGP color-aware route (E2, C1) with next hop N is automatically resolved over a color-aware route (N, C1) by default. The color-aware route (N, C1) is provided by color-aware mechanisms such as IGP Flexible Algorithm [RFC9350], SR Policy (Section 2.2 of [RFC9256]), or recursively by BGP CAR. When multiple producers of (N, C1) are available, the default preference is: IGP Flexible Algorithm, SR Policy, BGP CAR.¶
Local policy SHOULD provide additional control:¶
Route resolution via a different color C2 can be automated by attaching BGP Color-EC C2 to CAR route (E2, C1), leveraging automated steering as described in Section 8.4 of "Segment Routing Policy Architecture" [RFC9256] for BGP CAR routes. This mechanism is illustrated in Appendix B.2. This mechanism SHOULD be supported.¶
For CAR route resolution, if Color-EC color is present with the route, it takes precedence over the route's intent color. The route's intent color is the LCM-EC color if present (see Section 2.9.5), or else it is the NLRI color.¶
Local policy takes precedence over the color-based automated resolution specified above.¶
The color-aware route (N, C1) may be provided by BGP CAR itself in a hierarchical transport routing design. In such cases, based on the procedures described above, recursive resolution may occur over the same or different CAR route type. Section 7.1.2 describes a scenario where CAR (E, C) route resolves over CAR IP Prefix route.¶
CAR IP Prefix route is allowed to be without color for best-effort. In this case, resolution is based on BGP next hop N, or when present, a best-effort SRv6 SID advertised by node N.¶
A BGP CAR route may recursively resolve over a BGP route that carries a TEA and follows Section 6 of [RFC9012] for validation. In this case, the procedures of Section 8 of [RFC9012] apply to BGP CAR routes, using color precedence as specified above for resolution.¶
The procedures of [RFC9012], Section 6, also apply to BGP CAR routes (AFI/SAFI = 1/83 or 2/83). For instance, a BGP CAR BR may advertise a BGP CAR route to an ingress BR or PE with a specific BGP next hop per color, with a TEA or Tunnel Encapsulation EC, as per Section 6 of [RFC9012].¶
BGP CAR resolution in one network domain is independent of resolution in another domain.¶
2.6. AIGP Metric Computation
The Accumulated IGP (AIGP) Metric Attribute [RFC7311] is updated as the BGP CAR route propagates across the network.¶
The value that is set (or appropriately incremented) in the AIGP TLV corresponds to the metric associated with the underlying intent of the color. For example, when the color is associated with a low latency path, the metric value is set based on the delay metric.¶
Information regarding the metric type used by the underlying intra-domain mechanism can also be used to set the metric value.¶
If BGP CAR routes traverse across a discontinuity in the transport path for a given intent, a penalty is added in the AIGP metric (value set by user policy). This could occur, for instance, when color C1 path is not available, and route resolves via color C2 path (see Appendix A.3 for an example).¶
AIGP metric computation is recursive.¶
To avoid continuous IGP metric changes causing end-to-end BGP CAR route churn, an implementation should provide thresholds to trigger AIGP updates.¶
Additional AIGP extensions may be defined to signal state for specific use cases such as Maximum SID Depth (MSD) along the BGP CAR route advertisement and minimum MTU along the BGP CAR route advertisement. This is out of scope for this document.¶
2.7. Inherent Multipath Capability
The (E, C) route definition inherently provides availability of redundant paths at every BGP hop identical to BGP-LU or BGP-IP. For instance, BGP CAR routes originated by two or more egress ABRs in a domain are advertised as multiple paths to ingress ABRs in the domain, where they become equal-cost or primary-backup paths. A failure of an egress ABR is detected and handled by ingress ABRs locally within the domain for faster convergence, without any necessity to propagate the event to upstream nodes for traffic restoration.¶
BGP ADD-PATH [RFC7911] SHOULD be enabled for BGP CAR to signal multiple next hops through a transport RR (T-RR).¶
2.8. BGP CAR Signaling Through Different Color Domains
Let us assume a BGP CAR route (E2, C2) is signaled from B to A, two BRs of Domain 2 and Domain 1, respectively. Let us assume that these two domains do not share the same color-to-intent mapping (i.e., they belong to different color domains). Low delay in Domain 2 is color C2, while it is C1 in Domain 1 (C1 <> C2).¶
It is not expected to be a typical scenario to have an underlay transport path (e.g., an MPLS LSP) extend across different color domains. However, the BGP CAR solution seamlessly supports this rare scenario while maintaining the separation and independence of the administrative authority in different color domains.¶
The solution works as described below:¶
The following procedures apply at a color domain boundary for BGP CAR routes, performed by route policy at the sending and receiving peer:¶
These procedures apply to both CAR route types, in addition to all procedures specified in earlier sections. LCM-EC is described in Section 2.9.5.¶
Salient properties:¶
Operational considerations are in Section 11. Further illustrations are provided in Appendix B.¶
2.9. Format and Encoding
BGP CAR leverages BGP multiprotocol extensions [RFC4760] and uses the MP_REACH_NLRI and MP_UNREACH_NLRI attributes for route updates within SAFI value 83 along with AFI 1 for IPv4 prefixes and AFI 2 for IPv6 prefixes.¶
BGP speakers MUST use the BGP Capabilities Advertisement to ensure support for processing of BGP CAR updates. This is done as specified in [RFC4760], by using capability code 1 (multiprotocol BGP), with AFI 1 and 2 (as required) and SAFI 83.¶
The Next Hop network address field in the MP_REACH_NLRI may either be an IPv4 address or an IPv6 address, independent of AFI. If the next hop length is 4, then the next hop is an IPv4 address. The next hop length may be 16 or 32 for an IPv6 next hop address, set as per Section 3 of [RFC2545]. Processing of the Next Hop field is governed by standard BGP procedures as described in Section 3 of [RFC4760].¶
The sub-sections below specify the generic encoding of the BGP CAR NLRI and non-key TLV fields, followed by the encoding for specific NLRI types introduced in this document.¶
2.9.1. BGP CAR SAFI NLRI Format
The generic format for the BGP CAR SAFI NLRI is shown below:¶
where:¶
- NLRI Length:
- 1-octet field that indicates the length in octets of the NLRI excluding the NLRI Length field itself.¶
- Key Length:
- 1-octet field that indicates the length in octets of the NLRI Type-Specific Key Fields. Key Length MUST be at least 2 less than the NLRI Length.¶
- NLRI Type:
- 1-octet field that indicates the type of the BGP CAR NLRI.¶
- Type-Specific Key Fields:
- The exact definition of these fields depends on the NLRI Type. They have length indicated by the Key Length.¶
- Type-Specific Non-Key TLV Fields:
- The fields are optional and can carry one or more non-key TLVs (of different types) depending on the NLRI Type. The NLRI definition allows for encoding of specific non-key information associated with the route as part of the NLRI for efficient packing of BGP updates.¶
The non-key TLVs portion of the NLRI MUST be omitted while carrying it within the MP_UNREACH_NLRI when withdrawing the route advertisement.¶
Error handling for CAR SAFI NLRI and non-key TLVs is described in Section 2.11.¶
The benefits of CAR NLRI design are:¶
2.9.2. Type-Specific Non-Key TLV Format
The generic format for Non-Key TLVs is shown below:¶
where:¶
- Type:
-
1 octet that contains the type code and flags. It is encoded as shown below:¶
where:¶
- Type code:
- Remaining 6 bits contain the type of the TLV.¶
- Length:
- 1-octet field that contains the length of the value portion of the Non-Key TLV in terms of octets.¶
- Value:
- Variable-length field as indicated by the Length field and to be interpreted as per the Type field.¶
The following sub-sections specify non-key TLVs. Each NLRI Type MUST list the TLVs that can be associated with it.¶
2.9.2.1. Label TLV
The Label TLV is used for the advertisement of CAR routes along with their MPLS labels. It has the following format as per Section 2.9.2:¶
where:¶
- Type:
- Type code is 1. The T bit MUST be unset.¶
- Length:
- Length is in octets, variable, and MUST be a multiple of 3.¶
- Label Information:
- Multiples of 3-octet fields to convey the MPLS label(s) associated with the advertised CAR route. It is used for encoding a single label or a stack of labels for usage as described in [RFC8277]. The number of labels is derived from the Length field. The 3-bit Rsrv field and the 1-bit S field SHOULD be set to zero on transmission and MUST be ignored on reception.¶
If a BGP transport CAR speaker sets itself as the next hop while propagating a CAR route, it allocates a local label for the type-specific key, and updates the value in this TLV. It also MUST program a label cross-connect that would result in the label swap operation for the incoming label that it advertises with the label received from its best-path router(s).¶
2.9.2.2. Label-Index TLV
The Label-Index TLV is used for the advertisement of Segment Routing over MPLS (SR-MPLS) Segment Identifier (SID) [RFC8402] information associated with the labeled CAR routes. It has the following format as per Section 2.9.2:¶
where:¶
- Type:
- Type code is 2. The T bit MUST be set.¶
- Length:
- Length is in octets and is 7.¶
- Reserved:
- 1-octet field that MUST be set to 0 and ignored on receipt.¶
- Flags:
- 2-octet field that's defined as per the Flags field of the Label-Index TLV of the BGP Prefix-SID attribute (Section 3.1 of [RFC8669]).¶
- Label Index:
- 4-octet field that's defined as per the Label Index field of the Label-Index TLV of the BGP Prefix-SID attribute (Section 3.1 of [RFC8669]).¶
This TLV provides the equivalent functionality as the Label-Index TLV of [RFC8669] for Transport CAR route in SR-MPLS deployments. When a speaker allocates a local label for a received CAR route as per Section 2.9.2.1, it SHOULD use the received Label Index as a hint using procedures as specified in [RFC8669], Section 4.¶
The Label-Index TLV provides much better packing efficiency by carrying the Label Index in NLRI instead of in the BGP Prefix-SID attribute (Appendix D).¶
The Label-Index TLV MUST NOT be carried in the Prefix-SID attribute for BGP CAR routes. If a speaker receives a CAR route with the Label-Index TLV in the Prefix-SID attribute, it SHOULD ignore it. The BGP Prefix-SID attribute SHOULD NOT be sent with the labeled CAR routes if the attribute is being used only to convey the Label-Index TLV.¶
2.9.2.3. SRv6 SID TLV
BGP Transport CAR can be also used to set up end-to-end color-aware connectivity using Segment Routing over IPv6 (SRv6) [RFC8402]. [RFC8986] specifies the SRv6 Endpoint behaviors (e.g., End Penultimate Segment Pop (PSP)), which can be leveraged for BGP CAR with SRv6. The SRv6 SID TLV is used for the advertisement of CAR routes along with their SRv6 SIDs. It has the following format as per Section 2.9.2:¶
where:¶
- Type:
- Type code is 3. The T bit MUST be unset.¶
- Length:
- Length is in octets, variable, and MUST be either less than or equal to 16, or be a multiple of 16.¶
- SRv6 SID Information:
-
Field of size as indicated by the length that either carries the SRv6 SID(s) for the advertised CAR route as one of the following:¶
BGP CAR SRv6 SID TLV definitions provide the following benefits:¶
The BGP CAR route update for SRv6 encapsulation MUST include the BGP Prefix-SID attribute along with the SRv6 L3 Service TLV carrying the SRv6 SID information as specified in [RFC9252]. When using the transposition scheme of encoding for packing efficiency of BGP updates [RFC9252], the transposed part of the SID is carried in the SRv6 SID TLV and is not limited by MPLS label field size.¶
If a BGP transport CAR speaker sets itself as the next hop while propagating a CAR route and allocates an SRv6 SID that maps to the received SRv6 SID, it updates the value in this TLV.¶
Received MPLS information can map to SRv6 and vice versa.¶
2.9.3. Color-Aware Route (E, C) NLRI Type
The Color-Aware Route NLRI Type is used for the advertisement of BGP CAR color-aware routes (E, C). It has the following format:¶
It is followed by optional Non-Key TLVs encoded as per Section 2.9.2.¶
Where:¶
- NLRI Length:
- Variable.¶
- Key Length:
- Variable. It indicates the total length comprised of the Prefix Length field, IP Prefix field, and the Color field, as described below. For IPv4 (AFI=1), the minimum length is 5 and the maximum length is 9. For IPv6 (AFI=2), the minimum length is 5 and the maximum length is 21.¶
- NLRI Type:
- 1.¶
- Type-Specific Key Fields:
-
These are as seen below:¶
- Prefix Length:
- 1-octet field that carries the length of prefix in bits. Length MUST be less than or equal to 32 for IPv4 (AFI=1) and less than or equal to 128 for IPv6 (AFI=2).¶
- IP Prefix:
-
IPv4 or IPv6 prefix (based on the AFI). A variable-size field that contains the most significant octets of the prefix. The format of this field for an IPv4 prefix is:¶
The format for this field for an IPv6 address follows the same pattern for prefix lengths of 1-128 (octets 1-16).¶
The last octet has enough trailing bits to make the end of the field fall on an octet boundary. Note that the value of the trailing bits MUST be set to zero. The size of the field MUST be less than or equal to 4 for IPv4 (AFI=1) and less than or equal to 16 for IPv6 (AFI=2).¶
- Color:
- 4 octets that contain non-zero color value associated with the prefix.¶
- Type-Specific Non-Key TLVs:
- The Label TLV, Label-Index TLV, and SRv6 SID TLV (Section 2.9.2) may be associated with the color-aware route NLRI type.¶
The prefix is unique across the administrative domains where BGP transport CAR is deployed. It is possible that the same prefix is originated by multiple BGP CAR speakers in the case of anycast addressing or multihoming.¶
The Color is introduced to enable multiple route advertisements for the same prefix. The color is associated with an intent (e.g., low latency) in originator color domain.¶
2.9.4. IP Prefix (E) NLRI Type
The IP Prefix Route NLRI Type is used for the advertisement of BGP CAR IP Prefix routes (E). It has the following format:¶
It is followed by optional Non-Key TLVs encoded as per Section 2.9.2.¶
Where:¶
- NLRI Length:
- Variable.¶
- Key Length:
- Variable. It indicates the total length comprised of the Prefix Length field and IP Prefix field as described below. For IPv4 (AFI=1), the minimum length is 1 and the maximum length is 5. For IPv6 (AFI=2), the minimum length is 1 and the maximum length is 17.¶
- NLRI Type:
- 2.¶
- Type-Specific Key Fields:
-
These are as seen below:¶
- Prefix Length:
- 1-octet field that carries the length of prefix in bits. Length MUST be less than or equal to 32 for IPv4 (AFI=1) and less than or equal to 128 for IPv6 (AFI=2).¶
- IP Prefix:
-
IPv4 or IPv6 prefix (based on the AFI). A variable-size field that contains the most significant octets of the prefix. The format of this field for an IPv4 prefix is:¶
The format for this field for an IPv6 address follows the same pattern for prefix lengths of 1-128 (octets 1-16).¶
The last octet has enough trailing bits to make the end of the field fall on an octet boundary. Note that the value of the trailing bits MUST be set to zero. The size of the field MUST be less than or equal to 4 for IPv4 (AFI=1) and less than or equal to 16 for IPv6 (AFI=2).¶
- Type-Specific Non-Key TLVs:
- The Label TLV, Label-Index TLV, and SRv6 SID TLV (Section 2.9.2) may be associated with the IP Prefix NLRI Type.¶
2.9.5. Local Color Mapping (LCM) Extended Community
This document defines a new BGP Extended Community called "LCM". The LCM is a Transitive Opaque Extended Community with the following encoding:¶
where:¶
- Type:
- 0x3.¶
- Sub-Type:
- 0x1b.¶
- Reserved:
- 2-octet reserved field that MUST be set to zero on transmission and ignored on reception.¶
- Color:
- 4-octet field that carries the non-zero 32-bit color value.¶
When a CAR route crosses the originator's color domain boundary, LCM-EC is added or updated, as specified in Section 2.8. LCM-EC conveys the local color mapping for the intent (e.g., low latency) in other (transit or destination) color domains.¶
For CAR IP Prefix routes, LCM-EC may also be added in the originator color domain to indicate the color associated with the IP prefix.¶
An implementation SHOULD NOT send more than one instance of the LCM-EC. However, if more than one instance is received, an implementation MUST disregard all instances other than the one with the numerically highest value.¶
If a node receives multiple BGP CAR routes (paths) for a given destination endpoint and color that have
different LCM values, it is a misconfiguratio
In this case, the LCM from the selected BGP best path SHOULD be chosen to be installed into the routing table.¶
A warning message SHOULD also be logged for further operator intervention.¶
If present, LCM-EC contains the intent of a BGP CAR route. LCM-EC Color is used instead of the Color in CAR route NLRI for procedures described in earlier sections such as route validation (Section 2.4), route resolution (Section 2.5), AIGP calculation (Section 2.6) and steering (Section 3).¶
The LCM-EC MAY be used for filtering of BGP CAR routes and/or for applying routing policies on the intent, when present.¶
2.10. LCM-EC and BGP Color-EC Usage
There are 2 distinct requirements to be supported as stated in [INTENT-AWARE]:¶
Requirement 1 is the case where within the same administrative or
color domain, BGP CAR routes for N end-to-end intents may need to traverse
across an intermediate transit domain where only M intents are available, N >= M.
For example, consider a multi-domain network is designed as Access
For requirement 2, where CAR routes traverse across different color domains, LCM-EC is used to carry the local color mapping for the NLRI color in other color domains. The related procedures are described in Section 2.8, and an example is given in Appendix B.3.¶
Both LCM-EC and BGP Color-EC may be present at the same time with a BGP CAR route. For example, a BGP CAR route (E, C1) from color domain D1, with LCM-EC C2 in color domain D2, may also carry Color-EC C3 and next hop N in a transit network domain within D2 where C2 is being resolved via an available intra-domain intent C3 (see the detailed example in the combination of Appendices B.2 and B.3).¶
In this case, as described in Section 2.5, the default order of processing for resolution in the presence of LCM-EC is local policy, then BGP Color-EC color, and finally LCM-EC color.¶
2.11. Error Handling
The error handling actions as described in [RFC7606] are applicable for the handling of BGP update messages for BGP CAR SAFI. In general, as indicated in [RFC7606], the goal is to minimize the disruption of a session reset or 'AFI/SAFI disable' to the extent possible.¶
When the error determined allows for the router to skip the malformed
NLRI(s) and continue processing of the rest of the update message, then
it MUST handle such malformed NLRIs as 'treat
The CAR NLRI definition encodes NLRI length and key length explicitly.
The NLRI length MUST be relied upon to enable the beginning of the next
NLRI field to be located. Key length MUST be relied upon to extract the
key and perform 'treat
A sender MUST ensure that the NLRI and key lengths are the number of actual bytes encoded in the NLRI and key fields, respectively, regardless of content being encoded.¶
Given the NLRI length and Key length MUST be valid, failures in the following checks result in 'AFI/SAFI disable' or 'session reset':¶
NLRI type-specific error handling:¶
Transparent propagation of unrecognized NLRI type:¶
Type-specific Non-Key TLV handling:¶
3. Service Route Automated Steering on Color-Aware Paths
An ingress PE (or ASBR) E1 automatically steers a C-colored service route V/v from E2 onto an (E2, C) color-aware path, as illustrated in Section 1.2. If several such paths exist, a preference scheme is used to select the best path. The default preference scheme is IGP Flexible Algorithm first, then SR Policy, followed by BGP CAR. A configuration option may be used to adjust the default preference scheme.¶
An egress PE may express its intent that traffic should be steered a certain way through the transport layer by including the BGP Color-EC [RFC9012] with the relevant service routes. An ingress PE steers service traffic over a CAR (E, C) route using the service route's next hop and BGP Color-EC.¶
This is consistent with the automated service route steering on SR Policy (a routing solution providing color-aware paths) defined in [RFC9256]. All the steering variations described in [RFC9256] are applicable to BGP CAR paths: on-demand steering, per-destination steering, per-flow steering, and color-only steering. For brevity, please refer to Section 8 of [RFC9256].¶
Appendix A provides illustrations of service route automated steering over BGP CAR (E, C) routes.¶
An egress PE may express its intent that traffic should be steered a certain way through the transport layer by allocating the SRv6 Service SID from a routed intent-aware locator prefix (Section 3.3 of [RFC8986]). Steering at an ingress PE is via resolution of the Service SID over a CAR Type-2 IP Prefix route. Service steering over BGP CAR SRv6 transport is described in Section 7.¶
Service steering via BGP CAR routes is applicable to any BGP SAFI, including SAFIs for IPv4/IPv6 (SAFI 1), L3VPN (SAFI 128), pseudowire (PW), EVPN (SAFI 70), FlowSpec, and BGP-LU (SAFI 4).¶
4. Filtering
PEs and BRs may support filtering of CAR routes. For instance, the filtering may only accept routes of locally configured colors.¶
Techniques such as RT Constrain [RFC4684] may also be applied to the CAR SAFI, where Route Target (RT) Extended Communities [RFC4360] can be used to constrain distribution and automate filtering of CAR routes. RT assignment may be via user policy; for example, an RT value can be assigned to all routes of a specific color.¶
A PE may support on-demand installation of a CAR route based on the presence of a service route whose next hop resolves via the CAR route.¶
Similarly, a PE may dynamically subscribe to receive individual CAR routes from upstream routers or Route Reflectors (RRs) to limit the routes that it needs to learn. On-demand subscription and automated filtering procedures for individual CAR routes are outside the scope of this document.¶
5. Scaling
This section analyzes the key scale requirement of [INTENT-AWARE], specifically:¶
While the requirements and design principles generally apply to any transport, the logical analysis based on the network design in this section focuses on MPLS/SR-MPLS transport since the scaling constraints are specifically relevant to these technologies. BGP CAR SAFI is used here, but the considerations can apply to [RFC8277] or [RFC8669] used with MPLS/SR-MPLS.¶
Two key principles used to address the scaling requirements are a hierarchical network and routing design, and on-demand route subscription and filtering.¶
Figure 2 in Section 5.1 provides an ultra-scale reference topology. Section 5.1 describes this topology. Section 5.2 presents three design models to deploy BGP CAR in the reference topology, including hierarchical options. Section 5.3 analyzes the logical scaling properties of each model.¶
Filtering techniques described in the previous section allow a PE to limit the CAR routes that it needs to learn or install. Scaling benefits of on-demand BGP subscription and filtering will be described in a separate document.¶
5.1. Ultra-Scale Reference Topology
The following description applies to the reference topology above:¶
5.2. Deployment Model
5.2.1. Flat
5.2.2. Hierarchical Design with Next-Hop-Self at Ingress Domain BR
Note: E1 does not need the BGP CAR route (451, C1) in this design.¶
5.3. Scale Analysis
The following two tables summarize the logically analyzed scaling of the control plane and data plane for the previous three models:¶
5.4. Anycast SID
This section describes how Anycast SID complements and improves the scaling designs above.¶
5.4.2. Anycast SID for Transport Color Endpoints
The common Anycast SID technique may also be used for a redundant pair of PEs that share an identical set of service (VPN) attachments.¶
6. Routing Convergence
BGP CAR leverages existing well-known design techniques to provide fast convergence.¶
Section 2.7 describes how BGP CAR provides localized convergence within a domain for BR failures, including originating BRs, without propagating failure churn into other domains.¶
Anycast SID techniques described in Section 5.4 can provide further convergence optimizations for BR and PE failures deployed in redundant designs.¶
7. CAR SRv6
7.1. Overview
Steering services over SRv6-based intent-aware multi-domain transport paths may be categorized into two distinct cases that are described in Section 5 of [RFC9252]. Both cases are supported by BGP CAR, as described below.¶
7.1.1. Routed Service SID
The SRv6 Service SID that is advertised with a service route is allocated by an egress PE from a routed intent-aware locator prefix (Section 3.3 of [RFC8986]). Service steering at an ingress PE is via resolution of the Service SID signaled with the service route as described in [RFC9252].¶
The intent-aware transport path to the SRv6 locator of the egress PE is provided by underlay IP routing. Underlay IP routing can include IGP Flexible Algorithm [RFC9350] within a domain, and BGP CAR (as defined in this document) across multiple IGP domains or BGP ASes.¶
An SRv6 locator prefix is assigned for a given intent or color. The SRv6 locator may be shared with an IGP Flexible Algorithm, or it may be assigned specific to BGP CAR for a given intent.¶
Distribution of SRv6 locators in BGP CAR SAFI:¶
Appendices C.1 and C.2 illustrate the control, and forwarding behaviors for routed SRv6 Service SIDs.¶
Section 7.2 describes the deployment options.¶
Section 7.3 describes operational considerations of using BGP CAR SAFI versus BGP IPv6 SAFI for inter-domain route distribution of SRv6 locators.¶
7.1.2. Non-Routed Service SID
The SRv6 Service SID allocated by an egress PE is not routed. The service route carrying the non-routed SRv6 Service SID is advertised by the egress PE with a Color-EC C ([RFC9252], Section 5). An ingress PE in a remote domain steers traffic for the received service route with Color-EC C and this SRv6 Service SID as described below.¶
BGP CAR distribution of (E, C) underlay route:¶
BGP CAR distribution of SRv6 locator underlay route:¶
Service traffic steering and SRv6 transport SID resolution at ingress PE:¶
Appendix C.3 contains an example that illustrates the control plane distribution, recursive resolution and forwarding behaviors described above.¶
Note: An SR Policy may also be defined for multi-domain end to end [RFC9256], independent of BGP CAR. In that case, both BGP CAR and SR-TE inter-domain paths may be available at an ingress PE for an (E, C) route (Section 1.2).¶
7.2. Deployment Options for CAR SRv6 Locator Reachability Distribution and Forwarding
Since an SRv6 locator (or summary) is an IPv6 prefix, it will be installed into the IPv6 forwarding table on a BGP router (e.g., ABR or ASBR) for packet forwarding. With the use of IPv6 locator prefixes, there is no need to allocate and install per-PE SIDs on each BGP hop to forward packets.¶
A few options to forward packets for BGP SRv6 prefixes described in [SRv6-INTERWORK] also apply to BGP CAR. These options are described in Sections 7.2.1 and 7.2.2.¶
7.2.1. Hop-by-Hop IPv6 Forwarding for BGP SRv6 Prefixes
This option employs hop-by-hop IPv6 lookup and forwarding on both BRs and P nodes in a domain along the path of propagation of BGP CAR routes. This option's procedures include the following:¶
This design is illustrated with an example in Appendix C.1.¶
The benefits of this scheme are:¶
7.2.2. Encapsulation Between BRs for BGP SRv6 Prefixes
In this design, IPv6 lookup and forwarding for BGP SRv6 prefixes are only done on BGP BRs. This option includes the following procedures:¶
The benefits of this scheme are:¶
This design is illustrated in Appendix C.2.¶
7.3. Operational Benefits of Using CAR SAFI for SRv6 Locator Prefix Distribution
When reachability to an SRv6 SID is provided by distribution of a locator prefix via underlay routing, BGP IPv6 SAFI (AFI/SAFI=2/1) may also be used for inter-domain distribution of these IPv6 prefixes as described in Section 7.1.2 of [SRv6-INTERWORK] or [RFC9723].¶
Using the BGP CAR SAFI provides the following operational benefits:¶
Note: If infrastructure routes such as SRv6 locator routes are carried in both BGP-IP [RFC4271] / BGP-LU [RFC8277] [RFC4798], and BGP CAR, Section 8 describes the path selection preference between them.¶
8. CAR IP Prefix Route
An IP Prefix CAR route is a route type (Type-2) that carries a
routable IP prefix whose processing follows the semantics of [RFC4271] and
[RFC2545]. IP Prefix CAR routes are installed
in the default routing and forwarding table and provide
longest
IP Prefix CAR routes may be originated into BGP CAR SAFI either from an egress PE or from a BR in a domain. Type-2 routes carry infrastructure routes for both IPv4 and IPv6.¶
As described in Section 2.1, it is used for cases where a unique routable IP prefix is assigned for a given intent or color. It may also be used for routes providing best-effort connectivity.¶
A few applicable example use cases:¶
For specific intents, color may be signaled with the IP Prefix CAR route for purposes such as intent-aware SRv6 SID or BGP next hop selection at each transit BR, color-based routing policies and filtering, and intent-aware next-hop resolution (Section 2.5). These purposes are the same as with (E, C) routes. For such purposes, color associated with the CAR IP Prefix route is signaled using LCM-EC.¶
Reminder: LCM-EC conveys end-to-end intent/color associated with route/NLRI. When traversing network domain(s) where a different intent/color is used for next-hop resolution, BGP Color-EC may additionally be used as in Section 2.10.¶
A special case of intent is best-effort, which may be represented by a color and follow the above procedures. However, to be compatible with existing operational usage, the CAR IP Prefix route is allowed to be without color for best-effort. In this case, the routes will not carry an LCM-EC. Resolution is described in Section 2.5.¶
As described in Section 7.3, infrastructure prefixes are intended to be carried in CAR SAFI instead of SAFIs that also carry service routes such as BGP-IP (SAFI 1, [RFC4271]) and BGP-LU (SAFI 4, [RFC4798]). However, if such infrastructure routes are also distributed in these SAFIs, a router may receive both BGP CAR SAFI paths and IP/LU SAFI paths. By default, the CAR SAFI transport path is preferred over the BGP-IP or BGP-LU SAFI path.¶
A BGP transport CAR speaker that supports packet forwarding lookup based on the IPv6 prefix route (such as a BR) will set itself as next hop while advertising the route to peers. It will also install the IPv6 route into forwarding with the received next hop and/or encapsulation. If such a transit router does not support this route type, it will not install this route and will not set itself as next hop; hence, it will not propagate the route any further.¶
9. VPN CAR
This section illustrates the extension of BGP CAR to address the VPN intent-aware routing requirement stated in Section 6.1.2 of [INTENT-AWARE]. The examples use MPLS, but other transport types can also be used (e.g., SRv6).¶
(V, CC) is a color-aware route originated by CE2.¶
VPN CAR distribution for (RD, V, CC) requires a new SAFI that follows the same VPN semantics as defined in [RFC4364] and also supports the distribution of routes with the CAR NLRI and associated non-key TLVs defined in Section 2.9 of this document.¶
Procedures defined in [RFC4364] and [RFC4659] apply to VPN CAR SAFI. Further, all CAR SAFI procedures described in Section 2 above apply to CAR SAFI enabled within a VRF. Since CE and PE are typically in different administrative domains, LCM-EC is attached to CAR routes.¶
VPN CAR SAFI routes follow color-based steering techniques as described in Section 3 and illustrated in the example above.¶
VPN CAR SAFI routes may also be advertised with a specific BGP next hop per color, with a TEA or Tunnel Encapsulation EC, and follow the procedures of Section 6 of [RFC9012].¶
CAR routes distributed in VPN CAR SAFI are infrastructure routes advertised by CEs in different customer VRFs on a PE. Example use cases are intent-aware L3VPN Carriers' Carriers (Section 9 of [RFC4364]) and SRv6 over a provider network. The VPN RD distinguishes CAR routes of different customers being advertised by the PE.¶
9.1. Format and Encoding
BGP VPN CAR SAFI leverages BGP multiprotocol extensions [RFC4760] and uses the MP_REACH_NLRI and MP_UNREACH_NLRI attributes for route updates within SAFI value 84 along with AFI 1 for IPv4 VPN CAR prefixes and AFI 2 for IPv6 VPN CAR prefixes.¶
BGP speakers MUST use the BGP Capabilities Advertisement to ensure support for processing of BGP VPN CAR updates. This is done as specified in [RFC4760], by using capability code 1 (multiprotocol BGP), with AFI 1 and 2 (as required) and SAFI 84.¶
The Next Hop network address field in the MP_REACH_NLRI may contain either a VPN-IPv4 or a VPN-IPv6 address with 8-octet RD set to zero, independent of AFI. If the next hop length is 12, then the next hop is a VPN-IPv4 address with an RD of 0 constructed as per [RFC4364]. If the next hop length is 24 or 48, then the next hop is a VPN-IPv6 address constructed as per Section 3.2.1.1 of [RFC4659].¶
9.1.1. VPN CAR (E, C) NLRI Type
VPN CAR Type-1 (E, C) NLRI with RD has the format shown below:¶
It is followed by optional Non-Key TLVs encoded as per Section 2.9.2.¶
where:¶
all fields are encoded as per Section 2.9.3 with the following changes:¶
- Key Length:
- This length indicates the total length comprised of the RD, Prefix Length field, IP Prefix field, and the Color field.¶
- Route Distinguisher:
- An 8-octet field encoded according to [RFC4364].¶
- Type-Specific Non-Key TLVs:
- The Label TLV, Label-Index TLV, and SRv6 SID TLV (Section 2.9.2) may be associated with the VPN CAR (E, C) NLRI Type.¶
9.1.2. VPN CAR IP Prefix NLRI Type
It is followed by optional Non-Key TLVs encoded as per Section 2.9.2.¶
where:¶
all fields are encoded as per Section 2.9.4 with the following changes:¶
- Key Length:
- This length indicates the total length comprised of the RD, Prefix Length field, and IP Prefix field.¶
- Route Distinguisher:
- An 8-octet field encoded according to [RFC4364].¶
- Type-Specific Non-Key TLVs:
- The Label TLV, Label-Index TLV, and SRv6 SID TLV (Section 2.9.2) may be associated with the VPN CAR IP Prefix NLRI Type.¶
The error handling specified in Section 2.11 also applies to VPN CAR SAFI.¶
10. IANA Considerations
10.1. BGP CAR SAFIs
IANA has assigned SAFI value 83 (BGP CAR) and SAFI value 84 (BGP VPN CAR) from the "SAFI Values" registry in the "Subsequent Address Family Identifiers (SAFI) Parameters" registry group with this document as a reference.¶
10.2. "BGP CAR NLRI Types" Registry
IANA has created a "BGP CAR NLRI Types" registry in the "Border Gateway Protocol (BGP) Parameters" registry group with this document as a reference. The registry is for assignment of the 1-octet code points for BGP CAR NLRI types and is populated with the values shown below:¶
Allocations within the registry are to be made with the "Specification Required" policy as specified in [RFC8126] and in Section 10.4.¶
10.3. "BGP CAR NLRI TLV" Registry
IANA has created a "BGP CAR NLRI TLV Types" registry in the "Border Gateway Protocol (BGP) Parameters" registry group with this document as a reference. The registry is for assignment of the 6-bit code points for BGP CAR NLRI non-key TLV types and is populated with the values shown below:¶
Allocations within the registry are to be made with the "Specification Required" policy as specified in [RFC8126] and in Section 10.4.¶
For a new TLV to be used with existing NLRI types, documentation of the NLRI types must be updated.¶
10.4. Guidance for Designated Experts
In all cases of review by the Designated Expert (DE) described here, the DE is expected to ascertain the existence of suitable documentation (a specification) as described in [RFC8126] for the "BGP CAR NLRI Types" registry and the "BGP CAR NLRI TLV" registry.¶
The DE is also expected to check the clarity of purpose and use of the requested code points. Additionally, the DE must verify that any request for one of these code points has been made available for review and comment within the IETF: the DE will post the request to the IDR Working Group mailing list (or a successor mailing list designated by the IESG). The DE must ensure that any request for a code point does not conflict with work that is active or already published within the IETF.¶
The DE is expected to confirm that the specification satisfies the requirements for the "Specification Required" policy (Section 4.6 of [RFC8126]). In particular, as a reminder, the specification is required to be "permanent and readily available". The DE may assume that any document in the Internet-Draft or RFC repository satisfies the requirement for permanence and availability. In other cases, and in particular for any document not hosted by another standards development organization, the burden of proof of permanence falls on the applicant.¶
10.4.1. Additional Evaluation Criteria for the "BGP CAR NLRI Types" Registry
10.4.2. Additional Evaluation Criteria for the "BGP CAR NLRI TLV" Registry
10.5. "Border Gateway Protocol (BGP) Extended Communities" Registry
IANA has assigned the sub-type 0x1b for "Local Color Mapping (LCM)" in the "Transitive Opaque Extended Community Sub-Types" registry in the "Border Gateway Protocol (BGP) Extended Communities" registry group.¶
11. Manageability and Operational Considerations
Color assignments in a multi-domain network operating under a common or cooperating administrative control (i.e., a color domain) should be managed similar to transport layer IP addresses, and ensure a unique and non-conflicting color allocation across the different network domains in that color domain. This is a logical best practice in a single color or administrative domain, which is the most typical deployment scenario.¶
When color-aware routes propagate across a color domain boundary, there is typically no need for color assignments to be identical in both color domains, since the IP prefix is unique in the inter-domain transport network. This unique IP prefix provides a unique and non-conflicting scope for the color in an (E, C) route. Coordination between the operators of the color domains is needed only to enable the color to be re-mapped into a local color (carried in the LCM-EC) assigned for the same intent in the receiving color domain.¶
However, if networks under different administrative control establish a shared transport service between them, where the same transport service IP address is coordinated and shared among two (or more) color domain networks, then the color assignments associated with that shared IP address should also be coordinated to avoid any conflicts in either network (Appendix A.7).¶
It should be noted that the color assignments coordination is only necessary for routes specific to the shared service IP. Colors used for intra-domain or for inter-domain intents associated with unique IP addresses do not need any coordination.¶
Extended communities
12. Security Considerations
This document does not change the underlying security considerations and issues inherent in the existing BGP protocol, such as those described in [RFC4271] and [RFC4272].¶
This document defines a new BGP SAFI and related extensions to carry color-aware routes and their associated attributes. The separate SAFI is expected to be explicitly configured by an operator. It is also expected that the necessary BGP route policy filtering is configured on this new SAFI to filter routing information distributed by the routers participating in this network, at appropriate points within and at the boundaries of this network.¶
Also, given that this SAFI and these mechanisms can only be enabled through configuration of routers within an operator's network, standard security measures should be taken to restrict access to the management interface(s) of routers that implement these mechanisms.¶
Additionally, BGP sessions SHOULD be protected using the TCP Authentication Option [RFC5925] and the Generalized TTL Security Mechanism [RFC5082]. BGP origin validation [RFC6811] and BGPsec [RFC8205] could also be used with this SAFI.¶
Since CAR SAFI is a separate BGP SAFI that carries transport or infrastructure routes for routers in the operator network, it provides automatic separation of infrastructure routes and the service routes that are carried in existing BGP SAFIs such as BGP IPv4/IPv6 (SAFI=1), and BGP-LU (SAFI=4) (e.g., 6PE [RFC4798]). Using CAR SAFI thus provides better security (such as protection against route leaking) than would be obtained by distributing the infrastructure routes in existing SAFIs that also carry service routes.¶
BGP CAR distributes label binding similar to [RFC8277]; hence, its security considerations apply.¶
In SR deployments, BGP CAR distributes infrastructure prefixes along with their SID information for both SR-MPLS and SRv6. These deployments are within an SR domain [RFC8402] and the security considerations of [RFC8402] apply. Additionally, security considerations related to SRv6 deployments that are discussed in Section 9.3 of [RFC9252] also apply.¶
As [RFC4272] discusses, BGP is vulnerable to
traffic
The restriction of the applicability of this SAFI to its intended well-defined scope and the use of techniques described above limit the likelihood of traffic diversions.¶
13. References
13.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC2545]
-
Marques, P. and F. Dupont, "Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing", RFC 2545, DOI 10
.17487 , , <https:///RFC2545 www >..rfc -editor .org /info /rfc2545 - [RFC4360]
-
Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended Communities Attribute", RFC 4360, DOI 10
.17487 , , <https:///RFC4360 www >..rfc -editor .org /info /rfc4360 - [RFC4684]
-
Marques, P., Bonica, R., Fang, L., Martini, L., Raszuk, R., Patel, K., and J. Guichard, "Constrained Route Distribution for Border Gateway Protocol
/Multi , RFC 4684, DOI 10Protocol Label Switching (BGP/MPLS) Internet Protocol (IP) Virtual Private Networks (VPNs)" .17487 , , <https:///RFC4684 www >..rfc -editor .org /info /rfc4684 - [RFC4760]
-
Bates, T., Chandra, R., Katz, D., and Y. Rekhter, "Multiprotocol Extensions for BGP-4", RFC 4760, DOI 10
.17487 , , <https:///RFC4760 www >..rfc -editor .org /info /rfc4760 - [RFC7311]
-
Mohapatra, P., Fernando, R., Rosen, E., and J. Uttaro, "The Accumulated IGP Metric Attribute for BGP", RFC 7311, DOI 10
.17487 , , <https:///RFC7311 www >..rfc -editor .org /info /rfc7311 - [RFC7606]
-
Chen, E., Ed., Scudder, J., Ed., Mohapatra, P., and K. Patel, "Revised Error Handling for BGP UPDATE Messages", RFC 7606, DOI 10
.17487 , , <https:///RFC7606 www >..rfc -editor .org /info /rfc7606 - [RFC8126]
-
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10
.17487 , , <https:///RFC8126 www >..rfc -editor .org /info /rfc8126 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8277]
-
Rosen, E., "Using BGP to Bind MPLS Labels to Address Prefixes", RFC 8277, DOI 10
.17487 , , <https:///RFC8277 www >..rfc -editor .org /info /rfc8277 - [RFC8402]
-
Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., Decraene, B., Litkowski, S., and R. Shakir, "Segment Routing Architecture", RFC 8402, DOI 10
.17487 , , <https:///RFC8402 www >..rfc -editor .org /info /rfc8402 - [RFC8669]
-
Previdi, S., Filsfils, C., Lindem, A., Ed., Sreekantiah, A., and H. Gredler, "Segment Routing Prefix Segment Identifier Extensions for BGP", RFC 8669, DOI 10
.17487 , , <https:///RFC8669 www >..rfc -editor .org /info /rfc8669 - [RFC8986]
-
Filsfils, C., Ed., Camarillo, P., Ed., Leddy, J., Voyer, D., Matsushima, S., and Z. Li, "Segment Routing over IPv6 (SRv6) Network Programming", RFC 8986, DOI 10
.17487 , , <https:///RFC8986 www >..rfc -editor .org /info /rfc8986 - [RFC9012]
-
Patel, K., Van de Velde, G., Sangli, S., and J. Scudder, "The BGP Tunnel Encapsulation Attribute", RFC 9012, DOI 10
.17487 , , <https:///RFC9012 www >..rfc -editor .org /info /rfc9012 - [RFC9252]
-
Dawra, G., Ed., Talaulikar, K., Ed., Raszuk, R., Decraene, B., Zhuang, S., and J. Rabadan, "BGP Overlay Services Based on Segment Routing over IPv6 (SRv6)", RFC 9252, DOI 10
.17487 , , <https:///RFC9252 www >..rfc -editor .org /info /rfc9252 - [RFC9256]
-
Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, A., and P. Mattes, "Segment Routing Policy Architecture", RFC 9256, DOI 10
.17487 , , <https:///RFC9256 www >..rfc -editor .org /info /rfc9256 - [RFC9350]
-
Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., and A. Gulko, "IGP Flexible Algorithm", RFC 9350, DOI 10
.17487 , , <https:///RFC9350 www >..rfc -editor .org /info /rfc9350
13.2. Informative References
- [INTENT-AWARE]
-
Hegde, S., Rao, D., Uttaro, J., Bogdanov, A., and L. Jalil, "Problem statement for Inter-domain Intent-aware Routing using Color", Work in Progress, Internet-Draft, draft
-hr , , <https://-spring -intentaware -routing -using -color -04 datatracker >..ietf .org /doc /html /draft -hr -spring -intentaware -routing -using -color -04 - [RFC4271]
-
Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10
.17487 , , <https:///RFC4271 www >..rfc -editor .org /info /rfc4271 - [RFC4272]
-
Murphy, S., "BGP Security Vulnerabilities Analysis", RFC 4272, DOI 10
.17487 , , <https:///RFC4272 www >..rfc -editor .org /info /rfc4272 - [RFC4364]
-
Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private Networks (VPNs)", RFC 4364, DOI 10
.17487 , , <https:///RFC4364 www >..rfc -editor .org /info /rfc4364 - [RFC4659]
-
De Clercq, J., Ooms, D., Carugi, M., and F. Le Faucheur, "BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6 VPN", RFC 4659, DOI 10
.17487 , , <https:///RFC4659 www >..rfc -editor .org /info /rfc4659 - [RFC4798]
-
De Clercq, J., Ooms, D., Prevost, S., and F. Le Faucheur, "Connecting IPv6 Islands over IPv4 MPLS Using IPv6 Provider Edge Routers (6PE)", RFC 4798, DOI 10
.17487 , , <https:///RFC4798 www >..rfc -editor .org /info /rfc4798 - [RFC5082]
-
Gill, V., Heasley, J., Meyer, D., Savola, P., Ed., and C. Pignataro, "The Generalized TTL Security Mechanism (GTSM)", RFC 5082, DOI 10
.17487 , , <https:///RFC5082 www >..rfc -editor .org /info /rfc5082 - [RFC5462]
-
Andersson, L. and R. Asati, "Multiprotocol Label Switching (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field", RFC 5462, DOI 10
.17487 , , <https:///RFC5462 www >..rfc -editor .org /info /rfc5462 - [RFC5925]
-
Touch, J., Mankin, A., and R. Bonica, "The TCP Authentication Option", RFC 5925, DOI 10
.17487 , , <https:///RFC5925 www >..rfc -editor .org /info /rfc5925 - [RFC6811]
-
Mohapatra, P., Scudder, J., Ward, D., Bush, R., and R. Austein, "BGP Prefix Origin Validation", RFC 6811, DOI 10
.17487 , , <https:///RFC6811 www >..rfc -editor .org /info /rfc6811 - [RFC7911]
-
Walton, D., Retana, A., Chen, E., and J. Scudder, "Advertisement of Multiple Paths in BGP", RFC 7911, DOI 10
.17487 , , <https:///RFC7911 www >..rfc -editor .org /info /rfc7911 - [RFC8205]
-
Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol Specification", RFC 8205, DOI 10
.17487 , , <https:///RFC8205 www >..rfc -editor .org /info /rfc8205 - [RFC9315]
-
Clemm, A., Ciavaglia, L., Granville, L. Z., and J. Tantsura, "Intent-Based Networking - Concepts and Definitions", RFC 9315, DOI 10
.17487 , , <https:///RFC9315 www >..rfc -editor .org /info /rfc9315 - [RFC9723]
-
Wang, H., Dong, J., Talaulikar, K., Han, T., and R. Chen, "BGP Colored Prefix Routing (CPR) for Services Based on Segment Routing over IPv6 (SRv6)", RFC 9723, DOI 10
.17487 , , <https:///RFC9723 www >..rfc -editor .org /info /rfc9723 - [SRv6-INTERWORK]
-
Agrawal, S., Filsfils, C., Voyer, D., Dawra, G., Li, Z., and S. Hegde, "SRv6 and MPLS interworking", Work in Progress, Internet-Draft, draft
-ietf , , <https://-spring -srv6 -mpls -interworking -01 datatracker >..ietf .org /doc /html /draft -ietf -spring -srv6 -mpls -interworking -01
Appendix A. Illustrations of Service Steering
The following sub-sections illustrate example scenarios of colored service route steering over end-to-end (E2E) BGP CAR paths, resolving over different intra-domain mechanisms.¶
The examples in this section use MPLS/SR for the transport data plane. Scenarios related to SRv6 encapsulation are in a section below.¶
A.1. E2E BGP Transport CAR Intent Realized Using IGP Flexible Algorithm
Use case: Provide end-to-end intent for service flows.¶
A.2. E2E BGP Transport CAR Intent Realized Using SR Policy
Use case: Provide end-to-end intent for service flows.¶
A.3. BGP Transport CAR Intent Realized in a Section of the Network
A.3.1. Provide Intent for Service Flows Only in Core Domain Running IS-IS Flexible Algorithm
A.4. Transit Network Domains That Do Not Support CAR
A.5. Resource Avoidance Using BGP CAR and IGP Flexible Algorithm
This example illustrates a case of resource avoidance within a domain for a multi-domain color-aware path.¶
Observations:¶
A.6. Per-Flow Steering over CAR Routes
This section provides an example of ingress PE per-flow steering as defined in Section 8.6 of [RFC9256] onto BGP CAR routes.¶
The following description applies to the reference topology in Figure 6:¶
E1 receives three packets K, K1, and K2 on its incoming interface. These three packets match on the VPN route that recurses on E2. E1 colors these 3 packets with forwarding class 0, 1, and 2, respectively.¶
As a result:¶
A.7. Advertising BGP CAR Routes for Shared IP Addresses
This example describes a case where a route for the same transport IP address is originated from multiple nodes in different network domains.¶
One use of this scenario is an anycast transport service, where packet encapsulation (e.g., LSP) may terminate on any one among a set of nodes. All the nodes are capable of forwarding the inner payload, typically via an IP lookup in the global table for Internet routes.¶
A couple of variations of the use case are described in the example below.¶
One node is shown in each domain, but there will be multiple nodes in practice for redundancy.¶
Example 1: Anycast with forwarding to nearest egress:¶
Example 2: Anycast with egress domain visibility at ingress PE:¶
In above example, D2 and D3 belonged to the same color or administrative domain. If D2 and D3 belong to different color domains, the domains will coordinate the assignment of colors with shared IP IP1 so that they do not cause conflicts. For instance, in Example 1:¶
Appendix B. Color Mapping Illustrations
There are a variety of deployment scenarios that arise when different color mappings are used in an inter-domain environment. This section attempts to enumerate them and provide clarity into the usage of the color-related protocol constructs.¶
B.1. Single Color Domain Containing Network Domains with N:N Color Distribution
B.2. Single Color Domain Containing Network Domains with N:M Color Distribution
Illustration for N end-to-end intents over fewer M intra-domain intents:¶
B.3. Multiple Color Domains
When the routes are distributed between domains with different color-to-intent mapping schemes, both N:N and N:M cases are possible. Although an N:M mapping is more likely to occur.¶
Reference topology:¶
The reference topology above is used to elaborate on the design described in Section 2.8¶
When the route originates in color domain D1 and gets advertised to a different color domain D2, the following procedures apply:¶
Appendix C. CAR SRv6 Illustrations
C.1. BGP CAR SRv6 Locator Reachability Hop-by-Hop Distribution
The topology above is an example to illustrate the BGP CAR SRv6 locator prefix route-based design (Section 7.1.1) with hop-by-hop IPv6 routing within and between domains.¶
Important:¶
Packet forwarding:¶
C.2. BGP CAR SRv6 Locator Reachability Distribution with Encapsulation
The topology above is an example to illustrate the BGP CAR SRv6 locator prefix route-based design (Section 7.1.1) with intra-domain encapsulation. The example shown is iBGP, but also applies to eBGP (multi-AS).¶
Important:¶
Packet forwarding:¶
C.3. BGP CAR (E, C) Route Distribution for Steering Non-Routed Service SID
The topology above is an example to illustrate the BGP CAR (E, C) route-based design (Section 7.1.2). The example is iBGP, but the design also applies to eBGP (multi-AS).¶
Important:¶
Packet forwarding:¶
Appendix D. CAR SAFI NLRI Update Packing Efficiency Calculation
CAR SAFI NLRI encoding is optimized for update packing. It allows per-route information (for example, label, label index, and SRv6 SID encapsulation data) to be carried in the non-key TLV part of NLRI. This allows multiple NLRIs to be packed in a single update message when other attributes (including LCM-EC, when present) are shared. The table below shows a theoretical analysis calculated from observed BGP update message size in operational networks. It compares total BGP data on the wire for CAR SAFI against encoding as specified in [RFC8277] in the following cases: an MPLS label (CASE A), an SR extension with MPLS (per-prefix label index in Prefix-SID attribute; see [RFC8669]) (CASE B), and an SRv6 SID (CASE C). The packing scenarios considered are as follows:¶
This analysis considers 1.5 million routes (5 colors across 300k endpoints).¶
CASE A: BGP data exchanged for MPLS (non-SR):¶
CASE B: BGP data exchanged for SR-MPLS label index:¶
CASE C: BGP data exchanged with 128 bit single SRv6 SID:¶
BGP data exchanged with transposition of 4 bytes from SRv6 SID into SRv6 SID TLV:¶
Acknowledgements
The authors would like to acknowledge the invaluable contributions of many collaborators towards the BGP CAR solution and this document in providing input about use cases, participating in brainstorming and mailing list discussions and in reviews of the solution and draft revisions. In addition to the contributors listed in the Contributors section, the authors would like to thank Robert Raszuk, Bin Wen, Chaitanya Yadlapalli, Satoru Matsushima, Moses Nagarajah, Gyan Mishra, Jorge Rabadan, Daniel Voyer, Stephane Litkowski, Hannes Gredler, Jose Liste, Jakub Horn, Brent Foster, Dave Smith, Jiri Chaloupka, Miya Kohno, Kamran Raza, Zafar Ali, Xing Jiang, Oleksander Nestorov, Peter Psenak, Kaliraj Vairavakkalai, Natrajan Venkataraman, Srihari Sangli, Ran Chen, and Jingrong Xie.¶
The authors also appreciate the detailed reviews and astute suggestions provided by Sue Hares (as document shepherd), Jeff Haas, Yingzhen Qu, and John Scudder that have greatly improved the document.¶
Contributors
The following people gave substantial contributions to the content of this document and should be considered as coauthors:¶
Additional contributors:¶