| rfc9832.original | rfc9832.txt | |||
|---|---|---|---|---|
| Network Working Group K. Vairavakkalai, Ed. | Internet Engineering Task Force (IETF) K. Vairavakkalai, Ed. | |||
| Internet-Draft N. Venkataraman, Ed. | Request for Comments: 9832 N. Venkataraman, Ed. | |||
| Intended status: Experimental Juniper Networks, Inc. | Category: Experimental Juniper Networks, Inc. | |||
| Expires: 1 September 2025 28 February 2025 | ISSN: 2070-1721 September 2025 | |||
| BGP Classful Transport Planes | BGP Classful Transport Planes | |||
| draft-ietf-idr-bgp-ct-39 | ||||
| Abstract | Abstract | |||
| This document specifies a mechanism referred to as "Intent Driven | This document specifies a mechanism referred to as "Intent Driven | |||
| Service Mapping". The mechanism uses BGP to express intent based | Service Mapping". The mechanism uses BGP to express Intent based | |||
| association of overlay routes with underlay routes having specific | association of overlay routes with underlay routes having specific | |||
| Traffic Engineering (TE) characteristics satisfying a certain Service | Traffic Engineering (TE) characteristics satisfying a certain Service | |||
| Level Agreement (SLA). This is achieved by defining new constructs | Level Agreement (SLA). This is achieved by defining new constructs | |||
| to group underlay routes with sufficiently similar TE characteristics | to group underlay routes with sufficiently similar TE characteristics | |||
| into identifiable classes (called "Transport Classes"), that overlay | into identifiable classes (called "Transport Classes" or "TCs"), that | |||
| routes use as an ordered set to resolve reachability (Resolution | overlay routes use as an ordered set to resolve reachability | |||
| Schemes) towards service endpoints. These constructs can be used, | (Resolution Schemes) towards service endpoints. These constructs can | |||
| for example, to realize the "IETF Network Slice" defined in TEAS | be used, for example, to realize the "IETF Network Slice" defined in | |||
| Network Slices framework. | the TEAS Network Slices framework (RFC 9543). | |||
| Additionally, this document specifies protocol procedures for BGP | Additionally, this document specifies protocol procedures for BGP | |||
| that enable dissemination of service mapping information in a network | that enable dissemination of service mapping information in a network | |||
| that may span multiple cooperating administrative domains. These | that may span multiple cooperating administrative domains. These | |||
| domains may be administered either by the same provider or by closely | domains may be administered either by the same provider or by closely | |||
| coordinating providers. A new BGP address family that leverages RFC | coordinating providers. A new BGP address family that leverages the | |||
| 4364 ("BGP/MPLS IP Virtual Private Networks (VPNs)") procedures and | procedures described in RFC 4364 ("BGP/MPLS IP Virtual Private | |||
| follows RFC 8277 ("Using BGP to Bind MPLS Labels to Address | Networks (VPNs)") and follows the NLRI encoding described in RFC 8277 | |||
| Prefixes") NLRI encoding is defined to enable each advertised | ("Using BGP to Bind MPLS Labels to Address Prefixes") is defined to | |||
| underlay route to be identified by its class. This new address | enable each advertised underlay route to be identified by its class. | |||
| family is called "BGP Classful Transport", a.k.a., BGP CT. | This new address family is called "BGP Classful Transport" (or "BGP | |||
| CT"). | ||||
| 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. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
| provisions of BCP 78 and BCP 79. | published for examination, experimental implementation, and | |||
| evaluation. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document defines an Experimental Protocol for the Internet | |||
| and may be updated, replaced, or obsoleted by other documents at any | community. This document is a product of the Internet Engineering | |||
| time. It is inappropriate to use Internet-Drafts as reference | Task Force (IETF). It represents the consensus of the IETF | |||
| material or to cite them other than as "work in progress." | 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. | ||||
| This Internet-Draft will expire on 1 September 2025. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9832. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2025 IETF Trust and the persons identified as the | Copyright (c) 2025 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 2. Terminology | |||
| 2.1. Definitions and Notations . . . . . . . . . . . . . . . . 8 | 2.1. Abbreviations | |||
| 3. Architecture Overview . . . . . . . . . . . . . . . . . . . . 10 | 2.2. Definitions and Notations | |||
| 4. Transport Class . . . . . . . . . . . . . . . . . . . . . . . 13 | 2.3. Requirements Language | |||
| 4.1. Classifying TE tunnels . . . . . . . . . . . . . . . . . 13 | 3. Architecture Overview | |||
| 4.2. Transport Route Database . . . . . . . . . . . . . . . . 15 | 4. Transport Class | |||
| 4.3. "Transport Class" Route Target Extended Community . . . . 15 | 4.1. Classifying TE Tunnels | |||
| 5. Resolution Scheme . . . . . . . . . . . . . . . . . . . . . . 17 | 4.2. Transport Route Database (TRDB) | |||
| 5.1. Mapping Community . . . . . . . . . . . . . . . . . . . . 18 | 4.3. Transport Class Route Target | |||
| 6. BGP Classful Transport Family . . . . . . . . . . . . . . . . 19 | 5. Resolution Scheme | |||
| 6.1. NLRI Encoding . . . . . . . . . . . . . . . . . . . . . . 19 | 5.1. Mapping Community | |||
| 6.2. Next Hop Encoding . . . . . . . . . . . . . . . . . . . . 19 | 6. BGP Classful Transport Family | |||
| 6.3. Carrying multiple Encapsulation Information . . . . . . . 20 | 6.1. NLRI Encoding | |||
| 6.4. Comparison with Other Families using RFC-8277 Encoding . 20 | 6.2. Next Hop Encoding | |||
| 7. Protocol Procedures . . . . . . . . . . . . . . . . . . . . . 22 | 6.3. Carrying Multiple Types of Encapsulation Information | |||
| 7.1. Preparing the network to deploy Classful Transport | 6.4. Comparison with Other Families Using Encoding from RFC 8277 | |||
| planes . . . . . . . . . . . . . . . . . . . . . . . . . 22 | 7. Protocol Procedures | |||
| 7.2. Originating Classful Transport Routes . . . . . . . . . . 22 | 7.1. Preparing the Network to Deploy Classful Transport Planes | |||
| 7.3. Processing Classful Transport Routes by Ingress Nodes . . 23 | 7.2. Originating BGP CT Routes | |||
| 7.4. Readvertising Classful Transport Route by Border Nodes . 24 | 7.3. Processing BGP CT Routes by Ingress Nodes | |||
| 7.5. Border Nodes Receiving Classful Transport Routes on | 7.4. Readvertising BGP CT Route by Border Nodes | |||
| EBGP . . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 7.5. Border Nodes Receiving BGP CT Routes on EBGP | |||
| 7.6. Avoiding Path Hiding Through Route Reflectors . . . . . . 25 | 7.6. Avoiding Path Hiding Through Route Reflectors | |||
| 7.7. Avoiding Loops Between Route Reflectors in Forwarding | 7.7. Avoiding Loops Between Route Reflectors in Forwarding Paths | |||
| Path . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | ||||
| 7.8. Ingress Nodes Receiving Service Routes with a Mapping | 7.8. Ingress Nodes Receiving Service Routes with a Mapping | |||
| Community . . . . . . . . . . . . . . . . . . . . . . . 25 | Community | |||
| 7.9. Best Effort Transport Class . . . . . . . . . . . . . . . 26 | 7.9. Best-Effort Transport Class | |||
| 7.10. Interaction with BGP Attributes Specifying Next Hop Address | 7.10. Interaction with BGP Attributes Specifying Next Hop Address | |||
| and Color . . . . . . . . . . . . . . . . . . . . . . . 27 | and Color | |||
| 7.11. Applicability to Flowspec Redirect to IP . . . . . . . . 27 | 7.11. Applicability to Flowspec Redirect-to-IP | |||
| 7.12. Applicability to IPv6 . . . . . . . . . . . . . . . . . . 28 | 7.12. Applicability to IPv6 | |||
| 7.13. SRv6 Support . . . . . . . . . . . . . . . . . . . . . . 28 | 7.13. SRv6 Support | |||
| 7.14. Error Handling Considerations . . . . . . . . . . . . . . 29 | 7.14. Error-Handling Considerations | |||
| 8. Illustration of BGP CT Procedures . . . . . . . . . . . . . . 29 | 8. Illustration of BGP CT Procedures | |||
| 8.1. Reference Topology . . . . . . . . . . . . . . . . . . . 29 | 8.1. Reference Topology | |||
| 8.2. Service Layer Route Exchange . . . . . . . . . . . . . . 31 | 8.2. Service Layer Route Exchange | |||
| 8.3. Transport Layer Route Propagation . . . . . . . . . . . . 32 | 8.3. Transport Layer Route Propagation | |||
| 8.4. Data Plane View . . . . . . . . . . . . . . . . . . . . . 35 | 8.4. Data Plane View | |||
| 8.4.1. Steady State . . . . . . . . . . . . . . . . . . . . 35 | 8.4.1. Steady State | |||
| 8.4.2. Local Repair of Primary Path . . . . . . . . . . . . 35 | 8.4.2. Local Repair of Primary Path | |||
| 8.4.3. Absorbing Failure of Primary Path: Fallback to Best | 8.4.3. Absorbing Failure of the Primary Path: Fallback to | |||
| Effort Tunnels . . . . . . . . . . . . . . . . . . . 36 | Best-Effort Tunnels | |||
| 9. Scaling Considerations . . . . . . . . . . . . . . . . . . . 36 | 9. Scaling Considerations | |||
| 9.1. Avoiding Unintended Spread of BGP CT Routes Across | 9.1. Avoiding Unintended Spread of BGP CT Routes Across Domains | |||
| Domains . . . . . . . . . . . . . . . . . . . . . . . . . 36 | ||||
| 9.2. Constrained Distribution of PNHs to SNs (On-Demand Next | 9.2. Constrained Distribution of PNHs to SNs (On-Demand Next | |||
| Hop) . . . . . . . . . . . . . . . . . . . . . . . . . . 37 | Hop) | |||
| 9.3. Limiting The Visibility Scope of PE Loopback as PNHs . . 38 | 9.3. Limiting the Visibility Scope of PE Loopback as PNHs | |||
| 10. Operations and Manageability Considerations . . . . . . . . . 39 | 10. Operations and Manageability Considerations | |||
| 10.1. MPLS OAM . . . . . . . . . . . . . . . . . . . . . . . . 39 | 10.1. MPLS OAM | |||
| 10.2. Usage of Route Distinguisher and Label Allocation | 10.2. Usage of RD and Label-Allocation Modes | |||
| Modes . . . . . . . . . . . . . . . . . . . . . . . . . 40 | 10.3. Managing Transport-Route Visibility | |||
| 10.3. Managing Transport Route Visibility . . . . . . . . . . 41 | 11. Deployment Considerations | |||
| 11. Deployment Considerations. . . . . . . . . . . . . . . . . . 44 | ||||
| 11.1. Coordination Between Domains Using Different Community | 11.1. Coordination Between Domains Using Different Community | |||
| Namespaces . . . . . . . . . . . . . . . . . . . . . . . 44 | Namespaces | |||
| 11.2. Managing Intent at Service and Transport layers. . . . . 44 | 11.2. Managing Intent at Service and Transport Layers | |||
| 11.2.1. Service Layer Color Management . . . . . . . . . . . 44 | 11.2.1. Service Layer Color Management | |||
| 11.2.2. Non-Agreeing Color Transport Domains . . . . . . . . 45 | 11.2.2. Non-Agreeing Color Transport Domains | |||
| 11.2.3. Heterogeneous Agreeing Color Transport Domains . . . 46 | 11.2.3. Heterogeneous Agreeing Color Transport Domains | |||
| 11.3. Migration Scenarios. . . . . . . . . . . . . . . . . . . 49 | 11.3. Migration Scenarios | |||
| 11.3.1. BGP CT Islands Connected via BGP LU Domain . . . . . 49 | 11.3.1. BGP CT Islands Connected via BGP LU Domain | |||
| 11.3.2. BGP CT - Interoperability between MPLS and Other | 11.3.2. BGP CT: Interoperability Between MPLS and Other | |||
| Forwarding Technologies . . . . . . . . . . . . . . . 51 | Forwarding Technologies | |||
| 11.4. MTU Considerations . . . . . . . . . . . . . . . . . . . 54 | 11.4. MTU Considerations | |||
| 11.5. Use of DSCP . . . . . . . . . . . . . . . . . . . . . . 54 | 11.5. Use of DSCP | |||
| 12. Applicability to Network Slicing | ||||
| 12. Applicability to Network Slicing . . . . . . . . . . . . . . 55 | 13. IANA Considerations | |||
| 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 55 | 13.1. New BGP SAFI | |||
| 13.1. New BGP SAFI . . . . . . . . . . . . . . . . . . . . . . 56 | 13.2. New Format for BGP Extended Community | |||
| 13.2. New Format for BGP Extended Community . . . . . . . . . 56 | 13.2.1. Existing Registries | |||
| 13.2.1. Existing Registries . . . . . . . . . . . . . . . . 57 | 13.2.2. New Registries | |||
| 13.2.2. New Registries . . . . . . . . . . . . . . . . . . . 57 | 13.3. MPLS OAM Code Points | |||
| 13.3. MPLS OAM Code Points . . . . . . . . . . . . . . . . . . 58 | 14. Transport Class ID Registry | |||
| 14. Registries maintained by this document . . . . . . . . . . . 59 | 15. Security Considerations | |||
| 14.1. Transport Class ID . . . . . . . . . . . . . . . . . . . 59 | 16. References | |||
| 15. Security Considerations . . . . . . . . . . . . . . . . . . . 60 | 16.1. Normative References | |||
| 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 61 | 16.2. Informative References | |||
| 16.1. Normative References . . . . . . . . . . . . . . . . . . 61 | Appendix A. Extensibility Considerations | |||
| 16.2. Informative References . . . . . . . . . . . . . . . . . 64 | A.1. Signaling Intent over a PE-CE Attachment Circuit | |||
| Appendix A. Extensibility considerations . . . . . . . . . . . . 66 | A.2. BGP CT Egress TE | |||
| A.1. Signaling Intent over PE-CE Attachment Circuit . . . . . 66 | Appendix B. Applicability to Intra-AS and Different Inter-AS | |||
| A.2. BGP CT Egress TE . . . . . . . . . . . . . . . . . . . . 66 | Deployments | |||
| Appendix B. Applicability to Intra-AS and different Inter-AS | B.1. Intra-AS Use Case | |||
| deployments. . . . . . . . . . . . . . . . . . . . . . . 67 | B.1.1. Topology | |||
| B.1. Intra-AS usecase . . . . . . . . . . . . . . . . . . . . 67 | B.1.2. Transport Layer | |||
| B.1.1. Topology . . . . . . . . . . . . . . . . . . . . . . 67 | B.1.3. Service Layer Route Exchange | |||
| B.1.2. Transport Layer . . . . . . . . . . . . . . . . . . . 67 | B.2. Inter-AS Option A Use Case | |||
| B.1.3. Service Layer route exchange . . . . . . . . . . . . 68 | B.2.1. Topology | |||
| B.2. Inter-AS option A usecase . . . . . . . . . . . . . . . . 69 | B.2.2. Transport Layer | |||
| B.2.1. Topology . . . . . . . . . . . . . . . . . . . . . . 69 | B.2.3. Service Layer Route Exchange | |||
| B.2.2. Transport Layer . . . . . . . . . . . . . . . . . . . 69 | B.3. Inter-AS Option B Use Case | |||
| B.2.3. Service Layer route exchange . . . . . . . . . . . . 70 | B.3.1. Topology | |||
| B.3. Inter-AS option B usecase . . . . . . . . . . . . . . . . 71 | B.3.2. Transport Layer | |||
| B.3.1. Topology . . . . . . . . . . . . . . . . . . . . . . 71 | B.3.3. Service Layer Route Exchange | |||
| B.3.2. Transport Layer . . . . . . . . . . . . . . . . . . . 71 | Appendix C. Why reuse RFCs 8277 and 4364? | |||
| B.3.3. Service Layer route exchange . . . . . . . . . . . . 72 | C.1. Update Packing Considerations | |||
| Appendix C. Why reuse RFC 8277 and RFC 4364? . . . . . . . . . . 73 | Appendix D. Scaling Using BGP MPLS Namespaces | |||
| C.1. Update packing considerations . . . . . . . . . . . . . . 74 | Acknowledgements | |||
| Appendix D. Scaling using BGP MPLS Namespaces . . . . . . . . . 75 | Contributors | |||
| Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 75 | Authors' Addresses | |||
| Co-Authors . . . . . . . . . . . . . . . . . . . . . . . . . . 75 | ||||
| Other Contributors . . . . . . . . . . . . . . . . . . . . . . 76 | ||||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 77 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 77 | ||||
| 1. Introduction | 1. Introduction | |||
| Provider networks typically span across multiple domains where each | Provider networks typically span across multiple domains where each | |||
| domain can either represent an Autonomous System (AS) or an Interior | domain can either represent an Autonomous System (AS) or an Interior | |||
| Gateway Protocol (IGP) region within an AS. In these networks, | Gateway Protocol (IGP) region within an AS. In these networks, | |||
| several services are provisioned between different pairs of service | several services are provisioned between different pairs of service | |||
| endpoints (e.g., Provider Edge (PE) nodes), that can either be in the | endpoints (e.g., Provider Edge (PE) nodes) that can be either in the | |||
| same domain or across different domains. | same domain or across different domains. | |||
| [RFC9315] defines "Intent" as, "A set of operational goals (that a | [RFC9315] defines "Intent" as: | |||
| network should meet) and outcomes (that a network is supposed to | ||||
| deliver) defined in a declarative manner without specifying how to | | A set of operational goals (that a network should meet) and | |||
| achieve or implement them.". | | outcomes (that a network is supposed to deliver) defined in a | |||
| | declarative manner without specifying how to achieve or implement | ||||
| | them. | ||||
| This document prescribes constructs and procedures to realize | This document prescribes constructs and procedures to realize | |||
| "Intent", and enable provider networks to be able to forward service | "Intent" and enable provider networks to forward service traffic | |||
| traffic based on service specific intent, end-to-end across service | based on service specific Intent from end-to-end across service | |||
| endpoints. | endpoints. | |||
| The mechanisms described in this document achieve "Intent Driven | The mechanisms described in this document achieve "Intent Driven | |||
| Service Mapping" between any pair of service endpoints by: | Service Mapping" between any pair of service endpoints by: | |||
| Provisioning end-to-end "intent-aware" paths using BGP. For | * Provisioning end-to-end "Intent aware" paths using BGP. For | |||
| example, low latency path, best effort path. | example, a low-latency path or a best-effort path. | |||
| Expressing a desired intent. For example, use low latency path | * Expressing a desired Intent. For example, use a low-latency path | |||
| with fallback to the best effort path. | with a fallback to the best-effort path. | |||
| Forwarding service traffic "only" using end-to-end "intent-aware" | * Forwarding service traffic "only" using end-to-end "Intent aware" | |||
| paths honoring that desired intent. | paths honoring that desired Intent. | |||
| The constructs and procedures defined in this document apply equally | The constructs and procedures defined in this document apply equally | |||
| to intra-AS as well as inter-AS (a.k.a. multi-AS) Option A, Option B | to intra-AS and inter-AS (a.k.a. multi-AS) deployments in the style | |||
| and Option C (Section 10, [RFC4364]) style deployments in provider | of option A, option B, and option C (Section 10 of [RFC4364]) in | |||
| networks. | provider networks. | |||
| Such networks provision intra-domain transport tunnels between a pair | Such networks provision intra-domain transport tunnels between a pair | |||
| of endpoints, typically a service node or a border node that service | of endpoints, typically a service node or a border node that service | |||
| traffic traverses through. These tunnels are signaled using various | traffic traverses through. These tunnels are signaled using various | |||
| tunneling protocols depending on the forwarding architecture used in | tunneling protocols depending on the forwarding architecture used in | |||
| the domain, which can be Multiprotocol Label Switching (MPLS), | the domain, which can be Multiprotocol Label Switching (MPLS), | |||
| Internet Protocol version 4 (IPv4), or Internet Protocol version 6 | Internet Protocol version 4 (IPv4), or Internet Protocol version 6 | |||
| (IPv6). | (IPv6). | |||
| The mechanisms defined in this document allow different tunneling | The mechanisms defined in this document allow different tunneling | |||
| technologies to become Transport Class aware. These can be applied | technologies to become TC aware. These can be applied homogeneously | |||
| homogeneously to intra-domain tunneling technologies used in existing | to intra-domain tunneling technologies used in existing brownfield | |||
| brownfield networks as well as new greenfield networks. For clarity, | networks as well as new greenfield networks. For clarity, only some | |||
| only some tunneling technologies are detailed in this document. In | tunneling technologies are detailed in this document. In some | |||
| some examples only MPLS Traffic Engineering (TE) examples are | examples, only MPLS Traffic Engineering (TE) is described. Other | |||
| described. Other tunneling technologies have been described in | tunneling technologies have been described in detail in other | |||
| detail in other documents and only an overview has been included in | documents (and only an overview has been included in this document). | |||
| this document. For example, the details for Segment Routing (SRv6) | For example, the details for Segment Routing over IPv6 (SRv6) are | |||
| are provided in [BGP-CT-SRv6], and an overview is provided in | provided in [BGP-CT-SRv6] and an overview is provided in | |||
| Section 7.13. | Section 7.13. | |||
| Customers need to be able to express desired Intent to the network, | Customers need to be able to express desired Intent to the network, | |||
| and the network needs to have constructs able to enact the customer's | and the network needs to have constructs able to enact the customer's | |||
| intent. The network constructs defined in this document are used to | Intent. The network constructs defined in this document are used to | |||
| classify and group these intra-domain tunnels based on various | classify and group these intra-domain tunnels based on various | |||
| characteristics, like TE characteristics (e.g., low latency), into | characteristics, like TE characteristics (e.g., low-latency), into | |||
| identifiable classes that can pass "intent-aware" traffic. These | identifiable classes that can pass "Intent aware" traffic. These | |||
| constructs enable services to signal their intent to use one or more | constructs enable services to signal their Intent to use one or more | |||
| identifiable classes, and mechanisms to selectively map traffic onto | identifiable classes and mechanisms to selectively map traffic onto | |||
| "intent-aware" tunnels for these classes. | "Intent aware" tunnels for these classes. | |||
| This document introduces a new BGP address family called "BGP | This document introduces a new BGP address family called "BGP | |||
| Classful Transport", that extends/stitches intent-aware intra-domain | Classful Transport (BGP CT)", which extends/stitches Intent aware | |||
| tunnels belonging to the same class across domain boundaries, to | intra-domain tunnels belonging to the same class across domain | |||
| establish end-to-end intent-aware paths between service endpoints. | boundaries to establish end-to-end Intent aware paths between service | |||
| endpoints. | ||||
| [Intent-Routing-Color] describes various use cases and applications | [Intent-Routing-Color] describes various use cases and applications | |||
| of the procedures described in this document. | of the procedures described in this document. | |||
| Appendix C provides an outline of the design philosophy behind this | Appendix C provides an outline of the design philosophy behind this | |||
| specification. In particular, readers who are already familiar with | specification. In particular, readers who are already familiar with | |||
| one or more BGP VPN technologies may want to review this appendix | one or more BGP VPN technologies may want to review this appendix | |||
| before reading the main body of the specification. | before reading the main body of the specification. | |||
| 2. Terminology | 2. Terminology | |||
| ABR: Area Border Router (Readvertises BGP CT or BGP LU routes with | 2.1. Abbreviations | |||
| next hop self) | ||||
| AFI: Address Family Identifier | ABR: Area Border Router (readvertises BGP CT or BGP LU routes with | |||
| NH self) | ||||
| AS: Autonomous System | AFI: Address Family Identifier | |||
| ASBR: Autonomous System Border Router | AS: Autonomous System | |||
| ASN: Autonomous System Number | ASBR: Autonomous System Border Router | |||
| BGP VPN: VPNs built using RD, RT; architecture described in RFC4364 | ASN: Autonomous System Number | |||
| BGP LU: BGP Labeled Unicast family (AFI/SAFIs 1/4, 2/4) | BGP VPN: VPNs built using RD or RT; architecture described in | |||
| [RFC4364] | ||||
| BGP CT: BGP Classful Transport family (AFI/SAFIs 1/76, 2/76) | BGP LU: BGP Labeled Unicast family (AFI/SAFIs 1/4, 2/4) | |||
| BN: Border Node | BGP CT: BGP Classful Transport family (AFI/SAFIs 1/76, 2/76) | |||
| CBF: Class Based Forwarding | BN: Border Node | |||
| CsC: Carrier serving Carrier VPN | CBF: Class-Based Forwarding | |||
| DSCP: Differentiated Services Code Point | ||||
| EP: Endpoint of a tunnel, e.g. a loopback address in the network | CCA: Community Carrying Attribute | |||
| EPE: Egress Peer Engineering | CsC: Carriers' Carriers (serving the Carrier VPN) | |||
| eSN: Egress Service Node | DSCP: Differentiated Services Code Point | |||
| FEC: Forwarding Equivalence Class | EP: Endpoint (of a tunnel, e.g., a loopback address in the network) | |||
| FRR: Fast ReRoute (Pre-programmed next hop leg in forwarding) | EPE: Egress Peer Engineering | |||
| iSN: Ingress Service Node | eSN: Egress Service Node | |||
| L-ISIS: Labeled ISIS (RFC 8667) | FEC: Forwarding Equivalence Class | |||
| LSP: Label Switched Path | FRR: Fast Reroute (Preprogrammed NH leg in forwarding) | |||
| MPLS: Multi Protocol Label Switching | iSN: Ingress Service Node | |||
| NLRI: Network Layer Reachability Information | L-ISIS: Labeled ISIS (see RFC 8667) | |||
| PE: Provider Edge | LSP: Label Switched Path | |||
| PIC: Prefix scale Independent Convergence | MPLS: Multiprotocol Label Switching | |||
| PNH: Protocol Next Hop address carried in a BGP Update message | NH: Next Hop | |||
| RD: Route Distinguisher | NLRI: Network Layer Reachability Information | |||
| RD:EP : BGP CT Prefix consisting of Route Distinguisher and Endpoint | PE: Provider Edge | |||
| RSVP-TE: Resource Reservation Protocol - Traffic Engineering | PIC: Prefix Independent Convergence | |||
| RT: Route Target extended community | PNH: Protocol Next Hop (address carried in a BGP UPDATE message) | |||
| RTC: Route Target Constrain (RFC 4684) | RD: Route Distinguisher | |||
| SAFI: Subsequent Address Family Identifier | RD:EP: Route Distinguisher and Endpoint (in a BGP Prefix) | |||
| SID: Segment Identifier | RSVP-TE: Resource Reservation Protocol - Traffic Engineering | |||
| SLA: Service Level Agreement | RT: Route Target (as used in Route Target extended community) | |||
| SN: Service Node | RTC: Route Target Constraint [RFC4684] | |||
| SR: Segment Routing | SAFI: Subsequent Address Family Identifier | |||
| SRTE: Segment Routing Traffic Engineering | ||||
| TC: Transport Class | SID: Segment Identifier | |||
| TC ID: Transport Class Identifier | SLA: Service Level Agreement | |||
| TC-BE: Best Effort Transport Class | SN: Service Node | |||
| TE: Traffic Engineering | SR: Segment Routing | |||
| TEA: Tunnel Encapsulation Attribute, attribute type code 23 | SRTE: Segment Routing Traffic Engineering | |||
| TRDB: Transport Route Database | TC: Transport Class | |||
| UHP: Ultimate Hop Pop | TC ID: Transport Class Identifier | |||
| VRF: Virtual Routing and Forwarding table | TC-BE: Transport Class - Best Effort | |||
| 2.1. Definitions and Notations | TE: Traffic Engineering | |||
| BGP Community Carrying Attribute (CCA) : A BGP attribute that carries | TEA: Tunnel Encapsulation Attribute (attribute code 23) | |||
| community. Examples of BGP CCA are: COMMUNITIES (attribute code 8), | ||||
| EXTENDED COMMUNITIES (attribute code 16), IPv6 Address Specific | ||||
| Extended Community (attribute code 25), LARGE_COMMUNITY (attribute | ||||
| code 32). | ||||
| color:0:100 : This notation denotes a Color extended community as | TRDB: Transport Route Database | |||
| defined in RFC 9012 with the Flags field set to 0 and the color field | ||||
| set to 100. | ||||
| End to End Tunnel: A tunnel spanning several adjacent tunnel domains | UHP: Ultimate Hop Popping | |||
| created by "stitching" them together using MPLS labels or an | ||||
| equivalent identifier based on the forwarding architecture. | ||||
| Import processing: Receive side processing of an overlay route, | VRF: Virtual Routing and Forwarding (used with a table) | |||
| including things like import policy application, resolution scheme | ||||
| selection and next hop resolution. | ||||
| Mapping Community: Any BGP CCA (e.g., Community, Extended Community) | 2.2. Definitions and Notations | |||
| on an overlay route that maps to a Resolution Scheme. For example, | ||||
| color:0:100, transport-target:0:100. | ||||
| Provider Namespace: Internal Infrastructure address space in Provider | BGP CCA: | |||
| network managed by the Operator. | A BGP attribute that carries community. Examples of BGP CCAs are | |||
| COMMUNITIES (attribute code 8), EXTENDED COMMUNITIES (attribute | ||||
| code 16), IPv6 Address Specific Extended Community (attribute code | ||||
| 25), and LARGE_COMMUNITY (attribute code 32). | ||||
| Resolution Scheme: A construct comprising of an ordered set of TRDBs | color:0:100 or col-100: | |||
| to resolve next hop reachability, for realizing a desired intent. | This notation denotes a Color extended community as defined in | |||
| [RFC9012] with the "Flags" field set to 0 and the "Color Value" | ||||
| field set to 100. | ||||
| Service Family: A BGP address family used for advertising routes for | End-to-End Tunnel: | |||
| destinations in "data traffic". For example, AFI/SAFIs 1/1 or 1/128. | A tunnel spanning several adjacent tunnel domains created by | |||
| "stitching" them together using MPLS labels or an equivalent | ||||
| identifier based on the forwarding architecture. | ||||
| Service Prefix: A destinations in "data traffic". Routes to these | Import processing: | |||
| prefixes are carried in a Service family. | Receive-side processing of an overlay route, including things like | |||
| import-policy application, Resolution Scheme selection, and NH | ||||
| resolution. | ||||
| Transport Family: A BGP address family used for advertising tunnels, | Mapping Community: | |||
| which are in turn used by service routes for resolution. For | Any BGP CCA (e.g., Community, Extended Community) on an overlay | |||
| example, AFI/SAFIs 1/4 or 1/76. | route that maps to a Resolution Scheme. For example, color:0:100, | |||
| transport-target:0:100. | ||||
| Transport Tunnel : A tunnel over which a service may place traffic. | Provider Namespace: | |||
| Such a tunnel can be provisioned or signaled using a variety of | Internal Infrastructure address space in a provider network | |||
| means. For example, Generic Routing Encapsulation (GRE), UDP, LDP, | managed by the operator. | |||
| RSVP-TE, IGP FLEX-ALGO or SRTE. | ||||
| Transport, Transport Layer: A layer in the network that contains | Resolution Scheme: | |||
| Transport Tunnels and Transport Families. | A construct comprising of an ordered set of TRDBs to resolve NH | |||
| reachability for realizing a desired Intent. | ||||
| Tunnel Route: A Route to Tunnel Destination/Endpoint that is | Service Family: | |||
| installed at the headend (ingress) of the tunnel. | A BGP address family used for advertising routes for destinations | |||
| in "data traffic". For example, AFI/SAFIs 1/1 or 1/128. | ||||
| Tunnel Domain: A domain of the network containing Service Nodes (SNs) | Service Prefix: | |||
| and Border Nodes (BNs) under a single administrative control that has | A destination in "data traffic". Routes to these prefixes are | |||
| tunnels between them. | carried in a Service Family. | |||
| Brownfield network: An existing network that is already in service, | Transport Family: | |||
| deploying a chosen set of technologies and hardware. Enhancements | A BGP address family used for advertising tunnels, which are, in | |||
| and upgrades to such network deployments protect return on | turn, used by service routes for resolution. For example, AFI/ | |||
| investment, and should consider continuity of service. | SAFIs 1/4 or 1/76. | |||
| Greenfield network: A new network deployment which can make choice of | Transport Tunnel: | |||
| new technology or hardware as needed, with fewer constraints than | A tunnel over which a service may place traffic. Such a tunnel | |||
| brownfield network. | can be provisioned or signaled using a variety of means. For | |||
| example, Generic Routing Encapsulation (GRE), UDP, LDP, RSVP-TE, | ||||
| IGP Flexible Algorithm (Flex-Algo), or SRTE. | ||||
| Transport Class: A construct to group transport tunnels offering | Transport Layer: | |||
| similar SLA (Ref: Sec 4.1). | A layer in the network that contains Transport Tunnels and | |||
| Transport Families. | ||||
| Transport Class RT: A Route Target Extended Community used to | Tunnel Route: | |||
| identify a specific Transport Class. | A Route to Tunnel Destination/Endpoint that is installed at the | |||
| headend (ingress) of the tunnel. | ||||
| transport-target:0:100 : This notation denotes a Transport Class RT | Tunnel Domain: | |||
| extended community as defined in this document with the "Transport | A domain of the network containing SNs and BNs under a single | |||
| Class ID" field set to 100. | administrative control that has tunnels between them. | |||
| Transport Route Database: At the SN and BN, a Transport Class has an | Brownfield network: | |||
| associated Transport Route Database that collects its Tunnel Routes. | An existing network that is already in service, deploying a chosen | |||
| set of technologies and hardware. Enhancements and upgrades to | ||||
| such network deployments protect return on investment and should | ||||
| consider continuity of service. | ||||
| Transport Plane: An end-to-end plane consisting of transport tunnels | Greenfield network: | |||
| belonging to the same Transport Class. | A new network deployment that can make choices of new technology | |||
| or hardware as needed with fewer constraints than brownfield | ||||
| network. | ||||
| Transport Class: | ||||
| A construct to group transport tunnels offering similar SLAs (see | ||||
| Section 4.1). | ||||
| Transport Class RT: | ||||
| A Route Target extended community used to identify a specific | ||||
| Transport Class. | ||||
| transport-target:0:100: | ||||
| This notation denotes a Transport Class RT as defined in this | ||||
| document with the "Transport Class ID" field set to 100. | ||||
| Transport Route Database: | ||||
| At the SN and BN, a Transport Class has an associated TRDB that | ||||
| collects its tunnel routes. | ||||
| Transport Plane: | ||||
| An end-to-end plane consisting of transport tunnels belonging to | ||||
| the same Transport Class. | ||||
| 2.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. | ||||
| 3. Architecture Overview | 3. Architecture Overview | |||
| This section describes the BGP CT architecture with a brief | This section describes the BGP CT architecture with a brief | |||
| illustration. | illustration: | |||
| INET [RR21]--------------<<---[RR11] | INET [RR21]--------------<<---[RR11] | |||
| Service / / | IP1,color:0:100 | Service / / | IP1,col-100 | |||
| [PE21] <<--------+ : [SN11] <<-----+ ^ IP2,color:0:200 | [PE21] <<--------+ : [SN11] <<-----+ ^ IP2,col-200 | |||
| \ ___ : \ ___ | IP3,100:200 | \ ___ : \ ___ | IP3,100:200 | |||
| \ _( .) : \ _( .) | ^^^^^^^^^^^ | \ _( .) : \ _( .) | ^^^^^^^ | |||
| +-- ( _) --[BN21]===[BN11]--- ( _)-[PE11] Mapping | +-- ( _) --[BN21]===[BN11]--- ( _)-[PE11] Mapping | |||
| (.__) : (.__) Community | (.__) : (.__) Community | |||
| Inter-AS-Link | Inter-AS-Link | |||
| : | : | |||
| [.......AS2:SR-TE........]:[.......AS1:RSVP-TE......] | [.......AS2:SR-TE........]:[.......AS1:RSVP-TE......] | |||
| ---------Traffic Direction-----------> | ---------Traffic Direction-----------> | |||
| .-- [PE21]--<<--[BN21] [BN21]--<<--[BN11] --. | .-- [PE21]--<<--[BN21] [BN21]--<<--[BN11] --. | |||
| | <<--RD1:PE11(L3),PNH=BN21 : <<--RD1:PE11(L1),PNH=BN11 | | | <<--RD1:PE11(L3),PNH=BN21 : <<--RD1:PE11(L1),PNH=BN11 | | |||
| | transport-target:0:100 : transport-target:0:100 | BGP | | transport-target:0:100 : transport-target:0:100 | | |||
| | : | Classful | | : | BGP CT | |||
| | <<--RD2:PE11(L4),PNH=BN21 : <<--RD2:PE11(L2),PNH=BN11 | Transport | | <<--RD2:PE11(L4),PNH=BN21 : <<--RD2:PE11(L2),PNH=BN11 | | |||
| | transport-target:0:200 : transport-target:0:200 | | | transport-target:0:200 : transport-target:0:200 | | |||
| | ^^^^^^^^^^^^^^^^^^^^^^ ^^^ | | | ^^^^^^^^^^^^^^^^^^^^^^ ^^^ | | |||
| '-- Route Target & Transport Class ID--' | '-- Route Target & Transport Class ID--' | |||
| Mapping Community | Mapping Community | |||
| Intents at SN11 and PE21: | Intents at SN11 and PE21: | |||
| Scheme1: color:0:100, (TRDB[TC-100], TRDB[TC-BE]) | Scheme1: color:0:100, (TRDB[TC-100], TRDB[TC-BE]) | |||
| Scheme2: color:0:200, (TRDB[TC-200], TRDB[TC-BE]) | Scheme2: color:0:200, (TRDB[TC-200], TRDB[TC-BE]) | |||
| Scheme3: 100:200, (TRDB[TC-100], TRDB[TC-200]) | Scheme3: 100:200, (TRDB[TC-100], TRDB[TC-200]) | |||
| ^^^^^^^ ^^^^ ^^^^^^ | ^^^^^^^ ^^^^ ^^^^^^ | |||
| Resolution Schemes Transport Route DB Transport Class | Resolution Schemes Transport Route DB Transport Class | |||
| Figure 1: BGP CT Overview with Example Topology | Figure 1: BGP CT Overview with Example Topology | |||
| To achieve end-to-end "Intent Driven Service Mapping", this document | To achieve end-to-end "Intent Driven Service Mapping", this document | |||
| defines the following constructs and BGP extensions: | defines the following constructs and BGP extensions: | |||
| The "Transport Class" (Section 4) construct to group underlay | * The "Transport Class" construct (see Section 4) to group underlay | |||
| tunnels. | tunnels. | |||
| The "Resolution Scheme" (Section 5) construct for overlay routes | * The "Resolution Scheme" construct (see Section 5) for overlay | |||
| with Mapping Community to resolve next hop reachability from | routes with Mapping Communities to resolve NH reachability from | |||
| either one or an ordered set of Transport Classes. | either one or an ordered set of Transport Classes. | |||
| The "BGP Classful Transport" (Section 6) address family to extend | * The "BGP Classful Transport" (see Section 6) address family to | |||
| these constructs to adjacent domains. | extend these constructs to adjacent domains. | |||
| Figure 1 depicts the intra-AS and inter-AS application of these | Figure 1 depicts the intra-AS and inter-AS application of these | |||
| constructs. Interactions between SN1 and PE11 describe the Intra-AS | constructs. Interactions between SN1 and PE11 describe the intra-AS | |||
| usage. Interactions between PE21 and PE11 describe the Inter-AS | usage. Interactions between PE21 and PE11 describe the inter-AS | |||
| usage. | usage. | |||
| The example topology is an Inter-AS option C (Section 10, [RFC4364]) | The example topology is an inter-AS option C network (Section 10 of | |||
| network with two AS domains, each domain contains tunnels serving two | [RFC4364]) with two AS domains; each domain contains tunnels serving | |||
| Intents, e.g. 'low-latency' denoted by color 100 and 'high-bandwidth' | two Intents, e.g., 'low-latency' denoted by color 100 and 'high- | |||
| denoted by color 200. AS1 is a RSVP-TE network, AS2 is a SRTE | bandwidth' denoted by color 200. AS1 is an RSVP-TE network; AS2 is | |||
| network. BGP CT and BGP LU are transport families used between the | an SRTE network. BGP CT and BGP LU are transport families used | |||
| two AS domains. IP1, IP2, IP3 are service prefixes (AFI/SAFI: 1/1) | between the two AS domains. IP1, IP2, and IP3 are service prefixes | |||
| behind egress PE11. | (AFI/SAFI: 1/1) behind egress PE11. | |||
| PE21, SN11 and PE11 are the SNs in this network. SN11 is an ingress | PE21, SN11, and PE11 are the SNs in this network. SN11 is an ingress | |||
| PE with intra domain reachability to PE11. PE21 is an ingress PE | PE with intra-domain reachability to PE11. PE21 is an ingress PE | |||
| with inter domain reachability to PE11. | with inter-domain reachability to PE11. | |||
| The tunneling mechanisms are made "Transport Class" aware. They | The tunneling mechanisms are made "Transport Class" aware. They | |||
| publish their underlay tunnels for a Transport Class into an | publish their underlay tunnels for a Transport Class into an | |||
| associated "Transport Route Database" (TRDB) (Section 4.2). In | associated TRDB (see Section 4.2). In Figure 1, RSVP-TE publishes | |||
| Figure 1, RSVP-TE publishes its underlay tunnels into TRDBs created | its underlay tunnels into TRDBs created for Transport Classes 100 and | |||
| for Transport Class 100 and 200 at BN11 and SN11 within AS1; | 200 at BN11 and SN11 within AS1; Similarly, SR-TE publishes its | |||
| Similarly, SR-TE publishes its underlay tunnels into TRDBs created | underlay tunnels into TRDBs created for Transport Classes 100 and 200 | |||
| for Transport Class 100 and 200 at PE21 within AS2. | at PE21 within AS2. | |||
| Resolution Schemes are used to realize Intent. A Resolution Scheme | Resolution Schemes are used to realize Intent. A Resolution Scheme | |||
| is identified by its "Mapping Community", and contains an ordered | is identified by its "Mapping Community" and contains an ordered list | |||
| list of transport classes. Overlay routes carry an indication of the | of Transport Classes. Overlay routes carry an indication of the | |||
| desired Intent using a BGP community which assumes the role of | desired Intent using a BGP community, which assumes the role of | |||
| "Mapping Community". | "Mapping Community". | |||
| Egress SN "PE11" advertises service routes with desired Mapping | Egress SN "PE11" advertises service routes with desired Mapping | |||
| Community e.g. color:0:100. | Community, e.g., color:0:100. | |||
| For the Intra-AS case, SN1 maps this intra-AS route on RSVP-TE | For the intra-AS case, SN1 maps this intra-AS route on RSVP-TE | |||
| tunnels with TC ID 100 by using the Resolution Scheme for | tunnels with TC ID 100 by using the Resolution Scheme for | |||
| color:0:100. | color:0:100. | |||
| For the Inter-AS case, the underlay route in a TRDB is advertised in | For the inter-AS case, the underlay route in a TRDB is advertised in | |||
| BGP to extend an underlay tunnel to adjacent domains. A new BGP | BGP to extend an underlay tunnel to adjacent domains. A new BGP | |||
| transport family called "BGP Classful Transport", also known as BGP | transport family called "BGP Classful Transport", also known as BGP | |||
| CT (AFI/SAFIs 1/76, 2/76) is defined for this purpose. BGP CT makes | CT (AFI/SAFIs 1/76, 2/76), is defined for this purpose. BGP CT makes | |||
| it possible to advertise multiple tunnels to the same destination | it possible to advertise multiple tunnels to the same destination | |||
| address, thus avoiding the need for multiple loopbacks on the Egress | address, thus avoiding the need for multiple loopbacks on the eSN. | |||
| Service Node (eSN). | ||||
| The BGP CT address family carries transport prefixes across tunnel | The BGP CT address family carries transport prefixes across tunnel | |||
| domain boundaries. Its design and operation are analogous to BGP LU | domain boundaries. Its design and operation are analogous to BGP LU | |||
| (AFI/SAFIs 1/4 or 2/4). It disseminates "Transport Class" | (AFI/SAFIs 1/4 or 2/4). It disseminates "Transport Class" | |||
| information for the transport prefixes across the participating | information for the transport prefixes across the participating | |||
| domains while avoiding the need of per-transport class loopback. | domains while avoiding the need of per-TC loopback. This is not | |||
| This is not possible with BGP LU without using per-color loopback. | possible with BGP LU without using per-color loopback. This | |||
| This dissemination makes the end-to-end network a "Transport Class" | dissemination makes the end-to-end network a "Transport Class" aware | |||
| aware tunneled network. | tunneled network. | |||
| In Figure 1, BGP CT routes are originated at BN11 in AS1 with next | In Figure 1, BGP CT routes are originated at BN11 in AS1 with NH | |||
| hop "self" towards BN21 in AS2 to extend available RSVP-TE tunnels | "self" towards BN21 in AS2 to extend available RSVP-TE tunnels for | |||
| for Transport Class 100 and 200 in AS1. BN21 propagates these routes | Transport Classes 100 and 200 in AS1. BN21 propagates these routes | |||
| with next hop "self" to PE21, which resolves the BGP CT routes over | with NH "self" to PE21, which resolves the BGP CT routes over SRTE | |||
| SRTE tunnels belonging to same transport class. Thus forming a BGP | tunnels belonging to same Transport Class, thus forming a BGP CT | |||
| CT tunnel for each TC ID at PE21. | tunnel for each TC ID at PE21. | |||
| PE21 maps the Inter-AS service routes received with color:0:100 from | PE21 maps the inter-AS service routes received with color:0:100 from | |||
| AS1 on BGP CT tunnel with TC ID 100 by using the Resolution Scheme | AS1 on BGP CT tunnel with TC ID 100 by using the Resolution Scheme | |||
| for color:0:100. Note that this procedure is same as that followed | for color:0:100. Note that this procedure is same as that followed | |||
| by SN1 in the Intra-AS case. | by SN1 in the intra-AS case. | |||
| The following text illustrates how CT architecture provides tiered | The following text illustrates how CT architecture provides tiered | |||
| fallback options at a per-route granularity. Figure 1, shows the | fallback options at a per-route granularity. Figure 1 shows the | |||
| Resolution Schemes in use, which make the following next hop | Resolution Schemes in use, which make the following NH resolution | |||
| resolution happen at SN11 (Intra-AS) and PE21 (Inter-AS) for the | happen at SN11 (intra-AS) and PE21 (inter-AS) for the service routes | |||
| service routes of prefixes IP1, IP2, IP3: | of prefixes IP1, IP2, and IP3: | |||
| Resolve IP1 next hop over available tunnels in TRDB for Transport | * Resolve IP1 NH over available tunnels in TRDB for Transport Class | |||
| Class 100 with fallback to TRDB for best effort. | 100 with fallback to TRDB for best effort. | |||
| Resolve IP2 next hop over available tunnels in TRDB for Transport | * Resolve IP2 NH over available tunnels in TRDB for Transport Class | |||
| Class 200 with fallback to TRDB for best effort. | 200 with fallback to TRDB for best effort. | |||
| Resolve IP3 next hop over available tunnels in TRDB for Transport | * Resolve IP3 NH over available tunnels in TRDB for Transport Class | |||
| Class 100 with fallback to TRDB for Transport Class 200. | 100 with fallback to TRDB for Transport Class 200. | |||
| In Figure 1, SN11 resolves IP1, IP2 and IP3 directly over RSVP-TE | In Figure 1, SN11 resolves IP1, IP2, and IP3 directly over RSVP-TE | |||
| tunnels in AS1. PE21 resolves IP1, IP2 and IP3 over extended BGP CT | tunnels in AS1. PE21 resolves IP1, IP2, and IP3 over extended BGP CT | |||
| tunnels that resolve over SR-TE tunnels in AS2. | tunnels that resolve over SR-TE tunnels in AS2. | |||
| This document describes procedures using MPLS forwarding | This document describes procedures using MPLS forwarding | |||
| architecture. However, these procedures would work in a similar | architecture. However, these procedures would work in a similar | |||
| manner for non-MPLS forwarding architectures as well. Section 7.13 | manner for non-MPLS forwarding architectures as well. Section 7.13 | |||
| describes the application of BGP CT over SRv6 data plane. | describes the application of BGP CT over the SRv6 data plane. | |||
| 4. Transport Class | 4. Transport Class | |||
| Transport Class is a construct that groups transport tunnels offering | Transport Class is a construct that groups transport tunnels offering | |||
| similar SLA within the administrative domain of a provider network or | similar SLAs within the administrative domain of a provider network | |||
| closely coordinated provider networks. | or closely coordinated provider networks. | |||
| A Transport Class is uniquely identified by a 32-bit "Transport Class | A Transport Class is uniquely identified by a 32-bit "Transport Class | |||
| ID", that is assigned by the operator. The operator consistently | ID" that is assigned by the operator. The operator consistently | |||
| provisions a Transport Class on participating nodes (SNs and BNs) in | provisions a Transport Class on participating nodes (SNs and BNs) in | |||
| a domain with its unique Transport Class ID. | a domain with its unique Transport Class ID. | |||
| A Transport Class is also configured with RD and import/export RT | A Transport Class is also configured with RD and import/export RT | |||
| attributes. Creation of a Transport Class instantiates its | attributes. Creation of a Transport Class instantiates its | |||
| corresponding TRDB and Resolution Schemes on that node. | corresponding TRDB and Resolution Schemes on that node. | |||
| All nodes within a domain agree on a common Transport Class ID | All nodes within a domain agree on a common Transport Class ID | |||
| namespace. However, two co-operating domains may not always agree on | namespace. However, two cooperating domains may not always agree on | |||
| the same namespace. Procedures to manage differences in Transport | the same namespace. Procedures to manage differences in Transport | |||
| Class ID namespaces between co-operating domains are specified in | Class ID namespaces between cooperating domains are specified in | |||
| Section 11.2.2. | Section 11.2.2. | |||
| Transport Class ID conveys the Color of tunnels in a Transport Class. | Transport Class ID conveys the Color of tunnels in a Transport Class. | |||
| The terms 'Transport Class ID' and 'Color' are used interchangeably | The terms 'Transport Class ID' and 'Color' are used interchangeably | |||
| in this document. | in this document. | |||
| 4.1. Classifying TE tunnels | 4.1. Classifying TE Tunnels | |||
| TE tunnels can be classified into a Transport Class based on the TE | TE tunnels can be classified into a Transport Class based on the TE | |||
| attributes they possess and the TE characteristics that the operator | attributes they possess and the TE characteristics that the operator | |||
| defines for that Transport Class. Due to the fact that multiple TE | defines for that Transport Class. Due to the fact that multiple TE | |||
| tunneling protocols exist, their TE attributes and characteristics | tunneling protocols exist, their TE attributes and characteristics | |||
| may not be equal but sufficiently similar. Some examples of such | may not be equal but sufficiently similar. Some examples of such | |||
| classifications are as follows: | classifications are as follows: | |||
| Tunnels (RSVP-TE, IGP FLEX-ALGO, SR-TE) that support latency | * Tunnels (RSVP-TE, IGP Flex-Algo, SR-TE) that support latency | |||
| sensitive routing. | sensitive routing. | |||
| RSVP-TE Tunnels that only go over admin-group with Green links. | * RSVP-TE tunnels that only go over admin-group with Green links. | |||
| Tunnels (RSVP-TE, SR-TE) that offer Fast Reroute. | * Tunnels (RSVP-TE, SR-TE) that offer FRR. | |||
| Tunnels (RSVP-TE, SR-TE) that share resources in the network based | * Tunnels (RSVP-TE, SR-TE) that share resources in the network based | |||
| on Shared Risk Link Groups defined by TE policy. | on Shared Risk Link Groups defined by TE policy. | |||
| Tunnels (RSVP-TE, SR-TE, BGP CT) that avoid certain nodes in the | * Tunnels (RSVP-TE, SR-TE, BGP CT) that avoid certain nodes in the | |||
| network based on RSVP-TE ERO, SR-TE policy or BGP policy. | network based on RSVP-TE Explicit Route Object (ERO), SR-TE | |||
| policy, or BGP policy. | ||||
| An operator may configure a SN/BN to classify a tunnel into an | An operator may configure an SN/BN to classify a tunnel into an | |||
| appropriate Transport Class. How exactly these tunnels are made | appropriate Transport Class. How exactly these tunnels are made | |||
| Transport Class aware is implementation specific and outside the | Transport Class aware is implementation specific and outside the | |||
| scope of this document. | scope of this document. | |||
| When a tunnel is made Transport Class aware, it causes the Tunnel | When a tunnel is made Transport Class aware, it causes the Tunnel | |||
| Route to be installed in the corresponding TRDB of that Transport | Route to be installed in the corresponding TRDB of that Transport | |||
| Class. These routes are used to resolve overlay routes, including | Class. These routes are used to resolve overlay routes, including | |||
| BGP CT. The BGP CT routes may be further readvertised to adjacent | BGP CT. The BGP CT routes may be further readvertised to adjacent | |||
| domains to extend these tunnels. While readvertising BGP CT routes, | domains to extend these tunnels. While readvertising BGP CT routes, | |||
| the "Transport Class" identifier is encoded as part of the Transport | the "Transport Class ID" is encoded as part of the Transport Class | |||
| Class RT, which is a new Route Target extended community defined in | RT, which is a new Route Target extended community defined in | |||
| Section 4.3. | Section 4.3. | |||
| A SN/BN receiving the transport routes via BGP with sufficient | An SN/BN receiving the transport routes via BGP with sufficient | |||
| signaling information to identify a Transport Class can associate | signaling information to identify a Transport Class can associate | |||
| those tunnel routes to the corresponding Transport Class. For | those tunnel routes with the corresponding Transport Class. For | |||
| example, in BGP CT family routes, the Transport Class RT indicates | example, in BGP CT family routes, the Transport Class RT indicates | |||
| the Transport Class. For BGP LU family routes, import processing | the Transport Class. For BGP LU family routes, import processing | |||
| based on Communities or Inter-AS source-peer may be used to place the | based on communities or inter-AS source-peer may be used to place the | |||
| route in the desired Transport Class. | route in the desired Transport Class. | |||
| When the tunnel route is received via [SRTE] with "Color:Endpoint" as | When the tunnel route is received via [RFC9830] with "Color:Endpoint" | |||
| the NLRI that encodes the Transport Class as an integer 'Color' in | as the NLRI that encodes the Transport Class as an integer 'Color' in | |||
| its Policy Color field, the 'Color' is mapped to a Transport Class | its Policy Color field, the 'Color' is mapped to a Transport Class | |||
| during the import processing. The SRTE tunnel route for this | during the import processing. The SRTE tunnel route for this | |||
| 'Endpoint' is installed in the corresponding TRDB. The SRTE tunnel | 'Endpoint' is installed in the corresponding TRDB. The SRTE tunnel | |||
| will be extended by a BGP CT advertisement with NLRI 'RD:Endpoint', | will be extended by a BGP CT advertisement with NLRI RD:EP, Transport | |||
| Transport Class RT and a new label. The MPLS swap route thus | Class RT, and a new label. The MPLS swap route thus installed for | |||
| installed for the new label will pop the label and forward the | the new label will pop the label and forward the decapsulated traffic | |||
| decapsulated traffic into the path determined by the SRTE route for | into the path determined by the SRTE route for further encapsulation. | |||
| further encapsulation. | ||||
| [PCEP-SRPOLICY] extends Path Computation Element Communication | [PCEP-SRPOLICY] extends the Path Computation Element Communication | |||
| Protocol (PCEP) to signal attributes of an SR Policy which include | Protocol (PCEP) to signal attributes of an SR Policy that include | |||
| Color. This Color is mapped to a Transport Class thus associating | Color. This Color is mapped to a Transport Class thus associating | |||
| the SR Policy with the desired Transport Class. | the SR Policy with the desired Transport Class. | |||
| Similarly, [PCEP-RSVP-COLOR] extends PCEP to carry the Color | Similarly, [PCEP-RSVP-COLOR] extends PCEP to carry the Color | |||
| attribute for its use with RSVP-TE LSPs . This Color is mapped to a | attribute for its use with RSVP-TE LSPs. This Color is mapped to a | |||
| Transport Class thus associating the RSVP-TE LSP with the desired | Transport Class thus associating the RSVP-TE LSP with the desired | |||
| Transport Class. | Transport Class. | |||
| 4.2. Transport Route Database | 4.2. Transport Route Database (TRDB) | |||
| A Transport Route Database (TRDB) is a logical collection of | A TRDB is a logical collection of transport routes pertaining to the | |||
| transport routes pertaining to the same Transport Class. In any | same Transport Class. In any node, every Transport Class has an | |||
| node, every Transport Class has an associated TRDB. Resolution | associated TRDB. Resolution Schemes resolve NH reachability for EP | |||
| Schemes resolve next hop reachability for EP using the transport | using the transport routes within the scope of the TRDBs. | |||
| routes within the scope of the TRDBs. | ||||
| Tunnel endpoint addresses (EP) in a TRDB belong to the "Provider | Tunnel EP addresses in a TRDB belong to the provider namespace | |||
| Namespace" representing the core transport region. | representing the core transport region. | |||
| An implementation may realize the TRDB as a "Routing Table" referred | An implementation may realize the TRDB as a "Routing Table" referred | |||
| in Section 9.1.2.1 of RFC4271 (https://www.rfc-editor.org/rfc/ | to in Section 9.1.2.1 of [RFC4271], which is used only for resolving | |||
| rfc4271#section-9.1.2.1) which is used only for resolving next hop | NH reachability in the control plane. An implementation may choose a | |||
| reachability in control plane. An implementation may choose a | ||||
| different datastructure to realize this logical construct while still | different datastructure to realize this logical construct while still | |||
| adhering to the procedures defined in this document. The tunnel | adhering to the procedures defined in this document. The tunnel | |||
| routes in a TRDB require no footprint in the forwarding plane unless | routes in a TRDB require no footprint in the forwarding plane unless | |||
| they are used to resolve a next hop. | they are used to resolve an NH. | |||
| SNs or BNs originate routes for the "Classful Transport" address | SNs or BNs originate routes for the BGP CT address family from the | |||
| family from the TRDB. These routes have "RD:Endpoint" in the NLRI, | TRDB. These routes have RD:EP in the NLRI, carry a Transport Class | |||
| carry a Transport Class RT, and an MPLS label or equivalent | RT, and an MPLS label or equivalent identifier in different | |||
| identifier in different forwarding architecture. "Classful | forwarding architecture. BGP CT family routes received with | |||
| Transport" family routes received with Transport Class RT are | Transport Class RT are installed into their respective TRDB. | |||
| installed into their respective TRDB. | ||||
| 4.3. "Transport Class" Route Target Extended Community | 4.3. Transport Class Route Target | |||
| This section defines a new type of Route Target, called a "Transport | This section defines a new type of Route Target called a "Transport | |||
| Class" Route Target Extended Community; also known as a Transport | Class Route Target extended community" (also known as a "Transport | |||
| Target. The procedures for use of this extended community with BGP | Class RT"). The procedures for use of this extended community with | |||
| CT routes (AFI/SAFI: 1/76 or 2/76) are described below. | BGP CT routes (AFI/SAFI: 1/76 or 2/76) are described below. | |||
| The "Transport Class" Route Target Extended Community is a transitive | The Transport Class RT is a transitive extended community [RFC4360] | |||
| extended community EXT-COMM [RFC4360] of extended type, which has the | of extended type, which has the format as shown in Figure 2. | |||
| format as shown in Figure 2. | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type= 0xa | SubType= 0x02 | Reserved | | | Type= 0xa | SubType= 0x02 | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Transport Class ID | | | Transport Class ID | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type: 1-octet field MUST be set to 0xa to indicate 'Transport Class'. | Figure 2: Transport Class RT | |||
| SubType: 1-octet field MUST be set to 0x2 to indicate 'Route Target'. | Type: A 1-octet field that MUST be set to 0xa to indicate 'Transport | |||
| Class'. | ||||
| Reserved: 2-octet reserved bits field. | SubType: A 1-octet field that MUST be set to 0x2 to indicate 'Route | |||
| This field MUST be set to zero on transmission. | Target'. | |||
| This field SHOULD be ignored on reception, and | ||||
| MUST be left unaltered. | ||||
| Transport Class ID: This field is encoded in 4 octets. | Reserved: A 2-octet reserved bits field. | |||
| This field contains the "Transport Class" identifier, | This field MUST be set to zero on transmission. | |||
| which is an unsigned 32-bit integer. | ||||
| This document reserves the Transport class ID value 0 to | This field SHOULD be ignored on reception and MUST be left | |||
| represent "Best Effort Transport Class ID". | unaltered. | |||
| Figure 2: "Transport Class" Route Target Extended Community | Transport Class ID: This field is encoded in 4 octets. | |||
| A Transport Class Route Target Extended community with TC ID 100 is | This field contains the "Transport Class ID", which is an unsigned | |||
| denoted as "transport-target:0:100". | 32-bit integer. | |||
| This document reserves the Transport Class ID value 0 to represent | ||||
| the "Best-Effort Transport Class ID". | ||||
| A Transport Class RT with TC ID 100 is denoted as "transport- | ||||
| target:0:100". | ||||
| The VPN route import/export mechanisms specified in BGP/MPLS IP VPNs | The VPN route import/export mechanisms specified in BGP/MPLS IP VPNs | |||
| [RFC4364] and the Constrained Route Distribution mechanisms specified | (see [RFC4364]) and the Constrained Route Distribution mechanisms | |||
| in Route Target Constrain [RFC4684] are applied using the Route | specified in Route Target Constraint (see [RFC4684]) are applied | |||
| Target extended community. These mechanisms are applied to BGP CT | using the Route Target extended community. These mechanisms are | |||
| routes (AFI/SAFI: 1/76 or 2/76) using "Transport Class Route Target | applied to BGP CT routes (AFI/SAFI: 1/76 or 2/76) using the Transport | |||
| Extended community". | Class RT". | |||
| A BGP speaker that implements procedures described in this document | A BGP speaker that implements procedures described in this document | |||
| and Route Target Constrain [RFC4684] MUST also apply the RTC | and [RFC4684] MUST also apply the RTC procedures to the Transport | |||
| procedures to the Transport Class Route Target Extended communities | Class RT carried on BGP CT routes (AFI/SAFI: 1/76 or 2/76). An RTC | |||
| carried on BGP CT routes (AFI/SAFI: 1/76 or 2/76). An RTC route is | route is generated for each Route Target imported by locally | |||
| generated for each Route Target imported by locally provisioned | provisioned Transport Classes. | |||
| Transport Classes. | ||||
| Further, when processing RT membership NLRIs containing Transport | Further, when processing RT membership NLRIs containing a Transport | |||
| Class Route Target Extended community received from external BGP | Class RT received from external BGP peers, it is necessary to | |||
| peers, it is necessary to consider multiple EBGP paths for a given | consider multiple External BGP (EBGP) paths for a given RTC prefix | |||
| RTC prefix for building the outbound route filter, and not just the | for building the outbound route filter: not just the best path. An | |||
| best path. An implementation MAY provide configuration to control | implementation MAY provide configuration to control how many EBGP RTC | |||
| how many EBGP RTC paths are considered. | paths are considered. | |||
| The Transport Class Route Target Extended community is carried on BGP | The Transport Class RT is carried on BGP CT family routes and is used | |||
| CT family routes and is used to associate them with appropriate TRDBs | to associate them with appropriate TRDBs at receiving BGP speakers. | |||
| at receiving BGP speakers. The Transport Target is carried unaltered | The Transport Class RT is carried unaltered on the BGP CT route | |||
| on the BGP CT route across BGP CT negotiated sessions except for | across BGP CT negotiated sessions except for scenarios described in | |||
| scenarios described in Section 11.2.2. Implementations should | Section 11.2.2. Implementations should provide policy mechanisms to | |||
| provide policy mechanisms to perform match, strip, or rewrite | perform match, strip, or rewrite operations on a Transport Class RT | |||
| operations on a Transport Target just like any other BGP community. | just like any other BGP community. | |||
| Defining a new type code for the Transport Class Route Target | Defining a new type code for the Transport Class RT avoids | |||
| Extended community avoids conflicting with any VPN Route Target | conflicting with any VPN Route Target assignments already in use for | |||
| assignments already in use for service families. | service families. | |||
| This document also reserves the Non-Transitive version of Transport | This document also reserves the non-transitive version of the | |||
| Class extended community (Section 13.2.1.1.2) for future use. The | Transport Class RT (see Section 13.2.1.1.2) for future use. The non- | |||
| "Non-Transitive Transport Class" Route Target Extended Community is | transitive Transport Class RT is not used. If received, it is | |||
| not used. If received, it is considered equivalent in functionality | considered equivalent in functionality to the transitive Transport | |||
| to the Transitive Transport Class Route Target Extended Community, | Class RT, except for the difference in Transitive bit flag. | |||
| except for the difference in Transitive bit flag. | ||||
| 5. Resolution Scheme | 5. Resolution Scheme | |||
| A Resolution Scheme is a construct that consists of a specific TRDB | A Resolution Scheme is a construct that consists of a specific TRDB | |||
| or an ordered set of TRDBs. An overlay route is associated with a | or an ordered set of TRDBs. An overlay route is associated with a | |||
| resolution scheme during import processing, based on the Mapping | Resolution Scheme during import processing based on the Mapping | |||
| Community in the route. | Community in the route. | |||
| Resolution Schemes enable a BGP speaker to resolve next hop | Resolution Schemes enable a BGP speaker to resolve NH reachability | |||
| reachability for overlay routes over the appropriate underlay tunnels | for overlay routes over the appropriate underlay tunnels within the | |||
| within the scope of the TRDBs. Longest Prefix Match (LPM) of the | scope of the TRDBs. Longest Prefix Match (LPM) of the NH is | |||
| next hop is performed within the identified TRDB. | performed within the identified TRDB. | |||
| An implementation may provide an option for the overlay route to | An implementation may provide an option for the overlay route to | |||
| resolve over less preferred Transport Classes, should the resolution | resolve over less-preferred Transport Classes, should the resolution | |||
| over a primary Transport Class fail. | over a primary Transport Class fail. | |||
| To accomplish this, the "Resolution Scheme" is configured with the | To accomplish this, the "Resolution Scheme" is configured with the | |||
| primary Transport Class, and an ordered list of fallback Transport | primary Transport Class and an ordered list of fallback Transport | |||
| Classes. Two Resolution Schemes are considered equivalent in Intent | Classes. Two Resolution Schemes are considered equivalent in Intent | |||
| if they consist of the same ordered set of TRDBs. | if they consist of the same ordered set of TRDBs. | |||
| Operators must ensure that Resolution Schemes for a mapping community | Operators must ensure that Resolution Schemes for a Mapping Community | |||
| are provisioned consistently on various nodes participating in a BGP | are provisioned consistently on various nodes participating in a BGP | |||
| CT network, based on desired Intent and transport classes available | CT network based on desired Intent and Transport Classes available in | |||
| in that domain. | that domain. | |||
| 5.1. Mapping Community | 5.1. Mapping Community | |||
| A "Mapping Community" is used to signal the desired Intent on an | A "Mapping Community" is used to signal the desired Intent on an | |||
| overlay route. At an ingress node receiving the route, it maps the | overlay route. At an ingress node receiving the route, it maps the | |||
| overlay route to a "Resolution Scheme" used to resolve the route's | overlay route to a "Resolution Scheme" used to resolve the route's | |||
| next hop. | NH. | |||
| A Mapping Community is a "role" and not a new type of community; any | A Mapping Community is a "role" and not a new type of community; any | |||
| BGP Community Carrying Attribute (e.g. Community or Extended | BGP Community Carrying Attribute (e.g., Community or Extended | |||
| Community) may play this role, besides the other roles it may already | Community) may play this role in addition to the other roles it may | |||
| be playing. For example, the Transport Class Route Target Extended | already be playing. For example, the Transport Class RT plays a dual | |||
| Community plays a dual role, being a Route Target as well as a | role: as Route Target and a Mapping Community. | |||
| Mapping Community. | ||||
| Operator provisioning ensures that the ingress and egress SNs agree | Operator provisioning ensures that the ingress and egress SNs agree | |||
| on the BGP CCA and community namespace to use for the Mapping | on the BGP CCA and community namespace to use for the Mapping | |||
| Community. | Community. | |||
| A Mapping Community maps to exactly one Resolution Scheme at | A Mapping Community maps to exactly one Resolution Scheme at a | |||
| receiving BGP speaker. An implementation SHOULD allow associating | receiving BGP speaker. An implementation SHOULD allow the | |||
| multiple Mapping Communities to a Resolution Scheme. This helps with | association of multiple Mapping Communities to a Resolution Scheme. | |||
| renumbering and migration scenarios. | This helps with renumbering and migration scenarios. | |||
| An example of mapping community is "color:0:100", described in | An example of a Mapping Community is a Color extended community | |||
| [RFC9012], or the "transport-target:0:100" described in Section 4.3 | "color:0:100", described in [RFC9012], or the "transport- | |||
| in this document. | target:0:100" described in Section 4.3. | |||
| The first community on the overlay route that matches a Mapping | The first community on the overlay route that matches a Mapping | |||
| Community of a locally configured Resolution Scheme is considered the | Community of a locally configured Resolution Scheme is considered the | |||
| effective Mapping Community for the route. The Resolution Scheme | effective Mapping Community for the route. The Resolution Scheme | |||
| thus found is used when resolving the route's PNH. If a route | thus found is used when resolving the route's PNH. If a route | |||
| contains more than one Mapping Community, it indicates that the route | contains more than one Mapping Community, it indicates that the route | |||
| considers these distinct Mapping Communities as equivalent in Intent. | considers these distinct Mapping Communities as equivalent in Intent. | |||
| If more than one distinct Mapping Communities on an overlay route map | On an overlay route, if more than one Mapping Community exists that | |||
| to distinct Resolution Schemes with dissimilar Intents at a receiving | map to distinct Resolution Schemes having dissimilar Intents at a | |||
| node, it is considered a configuration error. | receiving node, it is considered a configuration error. | |||
| Since a route can carry multiple communities, but only a single | Since a route can carry multiple communities, but only a single | |||
| Resolution Scheme can be in effect for the route on any given router, | Resolution Scheme can be in effect for the route on any given router, | |||
| it is incumbent on the operator to ensure that communities attached | it is incumbent on the operator to ensure that communities attached | |||
| to a route will map to the desired Resolution Scheme at each point in | to a route will map to the desired Resolution Scheme at each point in | |||
| the network. | the network. | |||
| It should be noted that the Mapping Community role does not require | It should be noted that the Mapping Community role does not require | |||
| applying Route Target Constrain procedures specified in RFC 4684. | applying Route Target Constraint procedures specified in [RFC4684]. | |||
| 6. BGP Classful Transport Family | 6. BGP Classful Transport Family | |||
| The BGP Classful Transport (BGP CT) family uses the existing Address | The BGP Classful Transport (BGP CT) family uses the existing Address | |||
| Family Identifier (AFI) of IPv4 or IPv6 and a new SAFI 76 "Classful | Family Identifier (AFI) of IPv4 or IPv6 and a new SAFI 76 "Classful | |||
| Transport" that applies to both IPv4 and IPv6 AFIs. | Transport" that applies to both IPv4 and IPv6 AFIs. | |||
| The AFI/SAFI 1/76 MUST be negotiated as per the Multiprotocol | The AFI/SAFI 1/76 MUST be negotiated as per the Multiprotocol | |||
| Extensions capability described in Section 8 of [RFC4760] to be able | Extensions capability described in Section 8 of [RFC4760] to be able | |||
| to send and receive BGP CT routes for IPv4 endpoint prefixes. | to send and receive BGP CT routes for IPv4 endpoint prefixes. | |||
| The AFI/SAFI 2/76 MUST be negotiated as per the Multiprotocol | The AFI/SAFI 2/76 MUST be negotiated as per the Multiprotocol | |||
| Extensions capability described in Section 8 of [RFC4760] to be able | Extensions capability described in Section 8 of [RFC4760] to be able | |||
| to send and receive BGP CT routes for IPv6 endpoint prefixes. | to send and receive BGP CT routes for IPv6 endpoint prefixes. | |||
| 6.1. NLRI Encoding | 6.1. NLRI Encoding | |||
| The "Classful Transport" SAFI NLRI has the same encoding as specified | The "Classful Transport" SAFI NLRI has the same encoding as specified | |||
| in Section 2 of [RFC8277]. | in Section 2 of [RFC8277]. | |||
| When AFI/SAFI is 1/76, the Classful Transport NLRI Prefix consists of | When the AFI/SAFI is 1/76, the BGP CT NLRI Prefix consists of an | |||
| an 8-byte RD followed by an IPv4 prefix. When AFI/SAFI is 2/76, the | 8-byte RD followed by an IPv4 prefix. When AFI/SAFI is 2/76, the BGP | |||
| Classful Transport NLRI Prefix consists of an 8-byte RD followed by | CT NLRI Prefix consists of an 8-byte RD followed by an IPv6 prefix. | |||
| an IPv6 prefix. | ||||
| The procedures described for AFI/SAFIs 1/4 or 1/128 in Section 2 of | The procedures described for AFI/SAFIs 1/4 or 1/128 in Section 2 of | |||
| [RFC8277] apply for AFI/SAFI 1/76 also. The procedures described for | [RFC8277] apply for AFI/SAFI 1/76 also. The procedures described for | |||
| AFI/SAFIs 2/4 or 2/128 in Section 2 of [RFC8277] apply for AFI/SAFI | AFI/SAFIs 2/4 or 2/128 in Section 2 of [RFC8277] apply for AFI/SAFI | |||
| 2/76 also. | 2/76 also. | |||
| BGP CT routes MAY carry multiple labels in the NLRI, by negotiating | BGP CT routes MAY carry multiple labels in the NLRI by negotiating | |||
| the Multiple Labels Capability as described in Section 2.1 of | the Multiple Labels Capability as described in Section 2.1 of | |||
| [RFC8277] | [RFC8277]. | |||
| Properties received on a Classful Transport route include the | Properties received on a BGP CT route include the Transport Class RT, | |||
| Transport Class Route Target extended community, which is used to | which is used to associate the route with the correct TRDBs on SNs | |||
| associate the route with the correct TRDBs on SNs and BNs in the | and BNs in the network, and either an IPv4 or an IPv6 NH. | |||
| network, and either an IPv4 or an IPv6 next hop. | ||||
| 6.2. Next Hop Encoding | 6.2. Next Hop Encoding | |||
| When the length of the Next hop Address field is 4, the next hop | When the length of the Next hop Address field is 4, the next hop | |||
| address is of type IPv4 address. | address is an IPv4 address. | |||
| When the length of Next hop Address field is 16 (or 32), the next hop | When the length of the Next hop Address field is 16 (or 32), the next | |||
| address is of type IPv6 address (potentially followed by the link- | hop address is an IPv6 address (potentially followed by the link- | |||
| local IPv6 address of the next hop). This follows Section 3 in | local IPv6 address of the next hop). This follows Section 3 of | |||
| [RFC2545] | [RFC2545]. | |||
| When the length of Next hop Address field is 24 (or 48), the next hop | When the length of Next hop Address field is 24 (or 48), the next hop | |||
| address is of type VPN-IPv6 with an 8-octet RD set to zero | address is a VPN-IPv6 with an 8-octet RD set to zero (potentially | |||
| (potentially followed by the link-local VPN-IPv6 address of the next | followed by the link-local VPN-IPv6 address of the next hop with an | |||
| hop with an 8-octet RD set to zero). This follows Section 3.2.1.1 in | 8-octet RD set to zero). This follows Section 3.2.1.1 of [RFC4659]. | |||
| [RFC4659] | ||||
| When the length of the Next hop Address field is 12, the next hop | When the length of the Next hop Address field is 12, the next hop | |||
| address is of type VPN-IPv4 with 8-octet RD set to zero. | address is a VPN-IPv4 with 8-octet RD set to zero. | |||
| If the length of the Next hop Address field contains any other | If the length of the Next hop Address field contains any other | |||
| values, it is considered an error and is handled via BGP session | values, it is considered an error and is handled via BGP session | |||
| reset as per Section 7.11 of [RFC7606]. | reset as per Section 7.11 of [RFC7606]. | |||
| 6.3. Carrying multiple Encapsulation Information | 6.3. Carrying Multiple Types of Encapsulation Information | |||
| To ease interoperability between nodes supporting different | To ease interoperability between nodes supporting different | |||
| forwarding technologies, a BGP CT route allows carrying multiple | forwarding technologies, a BGP CT route allows carrying multiple | |||
| encapsulation information. | types of encapsulation information. | |||
| An MPLS Label is carried using the encoding in [RFC8277]. A node | An MPLS label is carried using the encoding in [RFC8277]. A node | |||
| that does not support MPLS forwarding advertises the special label 3 | that does not support MPLS forwarding advertises the special label 3 | |||
| (Implicit NULL) in the RFC 8277 MPLS Label field. The Implicit NULL | (Implicit NULL) in the MPLS label field (see [RFC8277]). The | |||
| label carried in BGP CT route indicates to receiving node that it | Implicit NULL label carried in BGP CT route indicates to a receiving | |||
| should not impose any BGP CT label for this route. | node that it should not impose any BGP CT label for this route. | |||
| The SID information for SR with respect to MPLS Data Plane is carried | The SID information for SR with respect to the MPLS data plane is | |||
| as specified in Prefix SID attribute defined as part of Section 3 in | carried as specified in the Prefix-SID attribute defined as part of | |||
| [RFC8669]. | Section 3 of [RFC8669]. | |||
| The SID information for SR with respect to SRv6 Data Plane is carried | The SID information for SR with respect to SRv6 data plane is carried | |||
| as specified in Section 7.13. | as specified in Section 7.13. | |||
| UDP tunneling information is carried using Tunnel Encapsulation | UDP tunneling information is carried using the Tunnel Encapsulation | |||
| Attribute as specified in [RFC9012]. | Attribute as specified in [RFC9012]. | |||
| 6.4. Comparison with Other Families using RFC-8277 Encoding | 6.4. Comparison with Other Families Using Encoding from RFC 8277 | |||
| AFI/SAFI 1/128 (MPLS-labeled VPN address) is an RFC8277 encoded | AFI/SAFI 1/128 (L3VPN) is a family encoded using [RFC8277] that | |||
| family that carries service prefixes in the NLRI, where the prefixes | carries service prefixes in the NLRI, where the prefixes come from | |||
| come from the customer namespaces and are contextualized into | the customer namespaces and are contextualized into separate user | |||
| separate user virtual service RIBs called VRFs as per [RFC4364]. | virtual service RIBs called VRFs as per [RFC4364]. | |||
| AFI/SAFI 1/4 (BGP LU) is an RFC8277 encoded family that carries | AFI/SAFI 1/4 (BGP LU) is a family encoded using [RFC8277] that | |||
| transport prefixes in the NLRI, where the prefixes come from the | carries transport prefixes in the NLRI, where the prefixes come from | |||
| provider namespace. | the provider namespace. | |||
| AFI/SAFI 1/76 (Classful Transport SAFI) is an RFC8277 encoded family | AFI/SAFI 1/76 (BGP CT) is a family encoded using [RFC8277] that | |||
| that carries transport prefixes in the NLRI, where the prefixes come | carries transport prefixes in the NLRI, where the prefixes come from | |||
| from the provider namespace and are contextualized into separate | the provider namespace and are contextualized into separate TRDB, | |||
| TRDB, following mechanisms similar to RFC 4364 procedures. | following mechanisms similar to [RFC4364] procedures. | |||
| It is worth noting that AFI/SAFI 1/128 has been used to carry | It is worth noting that AFI/SAFI 1/128 has been used to carry | |||
| transport prefixes in "L3VPN Inter-AS Carrier's carrier" scenario as | transport prefixes in "L3VPN inter-AS Carrier's carrier" scenario as | |||
| defined in Section 10 of [RFC4364], where BGP LU/LDP prefixes in CsC | defined in Section 10 of [RFC4364], where BGP LU/LDP prefixes in CsC | |||
| VRF are advertised in AFI/SAFI 1/128 towards the remote-end client | VRF are advertised in AFI/SAFI 1/128 towards the remote-end client | |||
| carrier. | carrier. | |||
| In this document, SAFI 76 (BGP CT) is used instead of reusing SAFI | In this document, SAFI 76 (CT) is used instead of reusing SAFI 128 | |||
| 128 (L3VPN) for AFIs 1 or 2 to carry these transport routes because | (L3VPN) for AFIs 1 or 2 to carry these transport routes because it is | |||
| it is operationally advantageous to segregate transport and service | operationally advantageous to segregate transport and service | |||
| prefixes into separate address families. For example, such an | prefixes into separate address families. For example, such an | |||
| approach allows operators to safely enable "per-prefix" label | approach allows operators to safely enable a "per-prefix" label- | |||
| allocation scheme for Classful Transport prefixes, typically with a | allocation scheme for BGP CT prefixes, typically with a number of | |||
| number of routes in the hundreds of thousands or less, without | routes in the hundreds of thousands or less, without affecting SAFI | |||
| affecting SAFI 128 service prefixes which may represent millions of | 128 service prefixes, which may represent millions of routes at the | |||
| routes, at time of writing. The "per prefix" label allocation scheme | time of writing. The "per-prefix" label-allocation scheme localizes | |||
| localizes routing churn during topology changes. | routing churn during topology changes. | |||
| Service routes continue to be carried in their existing AFI/SAFIs | Service routes continue to be carried in their existing AFI/SAFIs | |||
| without any change. For example, L3VPN (AFI/SAFI: 1/128 and 2/128), | without any change. For example, L3VPN (AFI/SAFI: 1/128 and 2/128), | |||
| EVPN (AFI/SAFI: 25/70 ), VPLS (AFI/SAFI: 25/65), Internet (AFI/SAFI: | EVPN (AFI/SAFI: 25/70 ), Virtual Private LAN Service (VPLS) (AFI/ | |||
| 1/1 or 2/1). These service routes can resolve over BGP CT (AFI/SAFI: | SAFI: 25/65), or Internet (AFI/SAFI: 1/1 or 2/1). These service | |||
| 1/76 or 2/76) transport routes. | routes can resolve over BGP CT (AFI/SAFI: 1/76 or 2/76) transport | |||
| routes. | ||||
| A new SAFI 76 for AFI 1 and AFI 2 also facilitates having a different | A new SAFI 76 for AFI 1 and AFI 2 also facilitates having a different | |||
| distribution path of the transport family routes in a network than | distribution path of the transport family routes in a network than | |||
| the service route distribution path. Service routes (Inet-VPN SAFI | the service route distribution path. Service routes (SAFI 128) are | |||
| 128) are exchanged over an EBGP multihop session between ASes with | exchanged over an EBGP multihop session between ASes with the NH | |||
| next hop unchanged; whereas Classful Transport routes (SAFI 76) are | unchanged; whereas BGP CT routes (SAFI 76) are advertised over EBGP | |||
| advertised over EBGP single-hop sessions with "next hop self" rewrite | single-hop sessions with a "NH self" rewrite over inter-AS links. | |||
| over inter-AS links. | ||||
| The BGP CT SAFI 76 for AFI 1 and 2 is conceptually similar to BGP LU | The BGP CT SAFI 76 for AFI 1 and 2 is conceptually similar to BGP LU | |||
| SAFI 4, in that it carries transport prefixes. The only difference | SAFI 4 in that it carries transport prefixes. The only difference is | |||
| is that it also carries in a Route Target an indication of which | that it also carries in a Route Target an indication of which | |||
| Transport Class the transport prefix belongs to, and uses the RD to | Transport Class the transport prefix belongs to and uses the RD to | |||
| disambiguate multiple instances of the same transport prefix in a BGP | disambiguate multiple instances of the same transport prefix in a BGP | |||
| Update. | UPDATE message. | |||
| 7. Protocol Procedures | 7. Protocol Procedures | |||
| This section summarizes the procedures followed by various nodes | This section summarizes the procedures followed by various nodes | |||
| speaking Classful Transport family. | speaking BGP CT family. | |||
| 7.1. Preparing the network to deploy Classful Transport planes | 7.1. Preparing the Network to Deploy Classful Transport Planes | |||
| It is responsibility of the operators to decide the Transport | It is the responsibility of the operators to decide the Transport | |||
| Classes to enable and use in their network. They are also | Classes to enable and use in their network. They are also expected | |||
| expected to allocate a Transport Class Route Target to identify | to allocate a Transport Class RT to identify each Transport Class. | |||
| each Transport Class. | ||||
| Operators configure the Transport Classes on the SNs and BNs in | Operators configure the Transport Classes on the SNs and BNs in the | |||
| the network with Transport Class Route Targets and appropriate | network with Transport Class RTs and appropriate Route | |||
| Route-Distinguishers. | Distinguishers. | |||
| Implementations MAY provide automatic generation and assignment of | Implementations MAY provide automatic generation and assignment of | |||
| RD, RT values. They MAY also provide a way to manually override | RD, RT values. They MAY also provide a way to manually override the | |||
| the automatic mechanism in order to deal with any conflicts that | automatic mechanism in order to deal with any conflicts that may | |||
| may arise with existing RD, RT values in different network domains | arise with existing RD, RT values in different network domains | |||
| participating in the deployment. | participating in the deployment. | |||
| 7.2. Originating Classful Transport Routes | 7.2. Originating BGP CT Routes | |||
| BGP CT routes are sent only to BGP peers that have negotiated the | BGP CT routes are sent only to BGP peers that have negotiated the | |||
| Multiprotocol Extensions capability described in Section 8 of | Multiprotocol Extensions capability described in Section 8 of | |||
| [RFC4760] to be able to send and receive BGP CT routes. | [RFC4760] to be able to send and receive BGP CT routes. | |||
| At the ingress node of the tunnel's home domain, the tunneling | At the ingress node of the tunnel's home domain, the tunneling | |||
| protocols install tunnel routes in the TRDB associated with the | protocols install tunnel routes in the TRDB associated with the | |||
| Transport Class to which the tunnel belongs. | Transport Class to which the tunnel belongs. | |||
| The egress node of the tunnel, i.e. the tunnel endpoint (EP), | The egress node of the tunnel, i.e., the tunnel endpoint (EP), | |||
| originates the BGP CT route with RD:EP in the NLRI, Transport | originates the BGP CT route with RD:EP in the NLRI, a Transport Class | |||
| Class RT and PNH as EP. This BGP CT route will be resolved over | RT, and the PNH as the EP. This BGP CT route will be resolved over | |||
| the tunnel route in TRDB at the ingress node. When the tunnel is | the tunnel route in TRDB at the ingress node. When the tunnel is up, | |||
| up, the Classful Transport BGP route will become usable and get | the Classful Transport BGP route will become usable and get | |||
| re-advertised by the ingress node to BGP peers in neighboring | readvertised by the ingress node to BGP peers in neighboring domains. | |||
| domains. | ||||
| Alternatively, the ingress node of the tunnel, which is also an | Alternatively, the ingress node of the tunnel, which is also an ASBR/ | |||
| ASBR/ABR in tunnel's home domain, may originate the BGP CT route | ABR in a tunnel's home domain, may originate the BGP CT route for the | |||
| for the tunnel destination with NLRI RD:EP, attaching a Transport | tunnel destination with RD:EP in the NLRI, attaching a Transport | |||
| Class Route Target that identifies the Transport Class. This BGP | Class Route Target that identifies the Transport Class. This BGP CT | |||
| CT route is advertised to EBGP peers and IBGP peers in neighboring | route is advertised to EBGP peers and IBGP peers in neighboring | |||
| domains. | domains. | |||
| This originated route SHOULD NOT be advertised to the IBGP core | This originated route SHOULD NOT be advertised to the IBGP core that | |||
| that contains the tunnel. This may be implemented by mechanisms | contains the tunnel. This may be implemented by mechanisms such as | |||
| such as policy configuration. The impact of not prohibiting such | policy configuration. The impact of not prohibiting such | |||
| advertisements is outside the scope of this document. | advertisements is outside the scope of this document. | |||
| Unique RD SHOULD be used by the originator of a Classful Transport | A unique RD SHOULD be used by the originator of a BGP CT route to | |||
| route to disambiguate the multiple BGP advertisements for a | disambiguate the multiple BGP advertisements for a transport | |||
| transport endpoint. An administrator may use duplicate RDs based | endpoint. An administrator may use duplicate RDs based on local | |||
| on local choice, understanding the impact on path diversity and | choice, understanding the impact on path diversity and | |||
| troubleshooting, as described in Section 10.2. | troubleshooting, as described in Section 10.2. | |||
| 7.3. Processing Classful Transport Routes by Ingress Nodes | 7.3. Processing BGP CT Routes by Ingress Nodes | |||
| Upon receipt of a BGP CT route with a PNH EP that is not directly | Upon receipt of a BGP CT route with a PNH EP that is not directly | |||
| connected (e.g. an IBGP-route), a Mapping Community (the Transport | connected (e.g., an IBGP-route), a Mapping Community (the Transport | |||
| Class RT) on the route is used to decide to which resolution | Class RT) on the route is used to decide to which Resolution Scheme | |||
| scheme this route is to be mapped. | this route is to be mapped. | |||
| The resolution scheme for a Transport Class RT with Transport | The Resolution Scheme for a Transport Class RT with Transport Class | |||
| Class ID "C1" contains the TRDB of a Transport Class with same ID. | ID "C1" contains the TRDB of a Transport Class with same ID. The | |||
| The administrator MAY customize the resolution scheme for | administrator MAY customize the Resolution Scheme for Transport Class | |||
| Transport Class "C1" to map to a different ordered list of TRDBs. | ID "C1" to map to a different ordered list of TRDBs. If the | |||
| If the resolution scheme for TC ID "C1" is not found, the | Resolution Scheme for TC ID "C1" is not found, the Resolution Scheme | |||
| resolution scheme containing the "Best Effort" transport class | containing the Best-Effort TRDB is used. | |||
| TRDB is used. | ||||
| The routes in the TRDBs associated with selected resolution scheme | The routes in the TRDBs associated with a selected Resolution Scheme | |||
| are used to resolve the received PNH EP. The order of TRDBs in | are used to resolve the received PNH EP. The order of TRDBs in the | |||
| the resolution scheme is followed when resolving the received PNH, | Resolution Scheme is followed when resolving the received PNH, such | |||
| such that a route in a backup TRDB is used only when a matching | that a route in a backup TRDB is used only when a matching route was | |||
| route was not found for EP in the primary TRDBs preceding it. | not found for EP in the primary TRDBs preceding it. This achieves | |||
| This achieves the fallback desired by the resolution scheme. | the fallback desired by the Resolution Scheme. | |||
| If the resolution process does not find a matching route for EP in | If the resolution process does not find a matching route for the EP | |||
| any of the associated TRDBs, the received BGP CT route MUST be | in any of the associated TRDBs, the received BGP CT route MUST be | |||
| considered unresolvable. (See RFC 4271, Section 9.1.2.1). | considered unresolvable. (See Section 9.1.2.1 of [RFC4271].) | |||
| The received BGP CT route MUST be added to the TRDB corresponding | The received BGP CT route MUST be added to the TRDB corresponding to | |||
| to the Transport Class "C1", if the transport class is provisioned | the Transport Class ID "C1" if the TC is provisioned locally. This | |||
| locally. This step applies only if the Transport Class RT is | step applies only if the Transport Class RT is received on a BGP CT | |||
| received on a BGP CT family route. The RD in the BGP CT NLRI | family route. The RD in the BGP CT NLRI prefix RD:EP is ignored when | |||
| prefix RD:EP is ignored when the BGP CT route for EP is added to | the BGP CT route for EP is added to the TRDB so that overlay routes | |||
| the TRDB, so that overlay routes can resolve over this BGP CT | can resolve over this BGP CT tunnel route by performing a lookup for | |||
| tunnel route by performing a lookup for EP. Please note that a | the EP. Please note that a TRDB is a logical database of tunnel | |||
| TRDB is a logical database of tunnel routes belonging to the same | routes belonging to the same Transport Class ID; hence, it only uses | |||
| Transport Class ID, hence it uses only the EP as the lookup key | the EP as the lookup key (without RD or TC ID). | |||
| without RD or TC ID. | ||||
| If no Mapping Community was found on a BGP CT route, the best | If no Mapping Community is found on a BGP CT route, the Best-Effort | |||
| effort resolution scheme is used for resolving the route's next | Resolution Scheme is used to resolve the route's next hop, and the | |||
| hop, and the BGP CT route is not added to any TRDB. | BGP CT route is not added to any TRDB. | |||
| 7.4. Readvertising Classful Transport Route by Border Nodes | 7.4. Readvertising BGP CT Route by Border Nodes | |||
| This section describes the MPLS label handling when readvertising | This section describes the MPLS label handling when readvertising a | |||
| a BGP CT route with Next Hop set to Self. When readvertising a | BGP CT route with "NH self". When readvertising a BGP CT route with | |||
| BGP CT route with Next Hop set to Self, a BN allocates an MPLS | "NH self", a BN allocates an MPLS label to advertise upstream in the | |||
| label to advertise upstream in Classful Transport NLRI. The BN | BGP CT NLRI. The BN also installs an MPLS route for that label that | |||
| also installs an MPLS route for that label that swaps the incoming | swaps the incoming label with the label received from the downstream | |||
| label with the label received from the downstream BGP speaker (or | BGP speaker (or pops the incoming label if the label received from | |||
| pops the incoming label if the label received from the downstream | the downstream BGP speaker was Implicit NULL). The MPLS route then | |||
| BGP speaker was Implicit-NULL). The MPLS route then pushes | pushes received traffic to the transport tunnel or direct interface | |||
| received traffic to the transport tunnel or direct interface that | that the BGP CT route's PNH resolved over. | |||
| the Classful Transport route's PNH resolved over. | ||||
| The label SHOULD be allocated with "per-prefix" label allocation | The label SHOULD be allocated with "per-prefix" label-allocation | |||
| semantics. The IP prefix in the TRDB context (Transport-Class, | semantics. The IP prefix in the TRDB context (Transport Class, IP | |||
| IP-prefix) is used as the key to do per-prefix label allocation. | prefix) is used as the key to "per-prefix" label allocation. This | |||
| This helps in avoiding BGP CT route churn throughout the CT | helps in avoiding BGP CT route churn throughout the CT network when | |||
| network when an instability (e.g., link failure) is experienced in | an instability (e.g., link failure) is experienced in a domain. The | |||
| a domain. The failure is not propagated further than the BN | failure is not propagated further than the BN closest to the failure. | |||
| closest to the failure. If a different label allocation mode is | If a different label-allocation mode is used, the impact on end-to- | |||
| used, the impact on end to end convergence should be considered. | end convergence should be considered. | |||
| The value of the advertised MPLS label is locally significant, and | The value of the advertised MPLS label is locally significant and is | |||
| is dynamic by default. A BN may provide an option to allocate a | dynamic by default. A BN may provide an option to allocate a value | |||
| value from a statically provisioned range. This can be achieved | from a statically provisioned range. This can be achieved using a | |||
| using locally configured export policy, or via mechanisms such as | locally configured export policy or via mechanisms such as the ones | |||
| the ones described in BGP Prefix-SID [RFC8669]. | described related to BGP Prefix-SID as described in BGP (see | |||
| [RFC8669]). | ||||
| 7.5. Border Nodes Receiving Classful Transport Routes on EBGP | 7.5. Border Nodes Receiving BGP CT Routes on EBGP | |||
| If a route is received with a PNH that is known to be directly | If a route is received with a PNH that is known to be directly | |||
| connected (for example, EBGP single-hop neighbor address), the | connected (for example, an EBGP single-hop neighbor address), the | |||
| directly connected interface is checked for MPLS forwarding | directly connected interface is checked for MPLS forwarding | |||
| capability. No other next hop resolution process is performed | capability. No other next hop resolution process is performed since | |||
| since the inter-AS link can be used for any Transport Class. | the inter-AS link can be used for any Transport Class. | |||
| If the inter-AS links need to honor Transport Class, then the BN | If the inter-AS links need to honor Transport Class, then the BN MUST | |||
| MUST follow procedures of an Ingress node (Section 7.3) and | follow the procedures of an ingress node (Section 7.3) and perform | |||
| perform the next hop resolution process. In order to make the | the next hop resolution process. In order to make the link Transport | |||
| link Transport Class aware, the route to directly connected PNH is | Class aware, the route to the directly connected PNH is installed in | |||
| installed in the TRDB belonging to the associated Transport Class. | the TRDB belonging to the associated Transport Class. | |||
| 7.6. Avoiding Path Hiding Through Route Reflectors | 7.6. Avoiding Path Hiding Through Route Reflectors | |||
| When multiple instances of a given RD:EP exist with different | When multiple instances of a given RD:EP exist with different | |||
| forwarding characteristics, then BGP ADD-PATH [RFC7911] is | forwarding characteristics, BGP ADD-PATH (see [RFC7911]) is helpful. | |||
| helpful. | ||||
| When multiple BNs exist such that they advertise a "RD:EP" prefix | When multiple BNs exist such that they advertise an "RD:EP" prefix to | |||
| to Route Reflectors (RRs), the RRs may hide all but one of the | Route Reflectors (RRs), the RRs may hide all but one of the BNs, | |||
| BNs, unless BGP ADD-PATH [RFC7911] is used for the Classful | unless BGP ADD-PATH (see [RFC7911]) is used for the BGP CT family. | |||
| Transport family. This is similar to L3VPN Option B scenarios. | This is similar to L3VPN inter-AS option B scenarios. | |||
| Hence, BGP ADD-PATH [RFC7911] SHOULD be used for Classful | Hence, BGP ADD-PATH (see [RFC7911]) SHOULD be used for the BGP CT | |||
| Transport family, to avoid path-hiding through RRs so that the RR | family to avoid path hiding through RRs so that the RR sends multiple | |||
| sends multiple CT routes for RD:EP to its clients. This improves | CT routes for RD:EP to its clients. This improves the convergence | |||
| the convergence time when the path via one of the multiple BNs | time when the path via one of the multiple BNs fails. | |||
| fails. | ||||
| 7.7. Avoiding Loops Between Route Reflectors in Forwarding Path | 7.7. Avoiding Loops Between Route Reflectors in Forwarding Paths | |||
| A pair of redundant ABRs, each acting as an RR with next hop self, | A pair of redundant ABRs, each acting as an RR with the next hop set | |||
| may choose each other as best path instead of the upstream ASBR, | to itself, may choose each other as the best path instead of the | |||
| causing a traffic forwarding loop. | upstream ASBR, causing a traffic-forwarding loop. | |||
| This problem can happen for routes of any BGP address family, | This problem can happen for routes of any BGP address family, | |||
| including BGP CT and BGP LU. | including BGP CT and BGP LU. | |||
| Using one or more of the approaches described in [BGP-FWD-RR] | Using one or more of the approaches described in [BGP-FWD-RR] lowers | |||
| softens the possibility of such loops in a network with redundant | the possibility of such loops in a network with redundant ABRs. | |||
| ABRs. | ||||
| 7.8. Ingress Nodes Receiving Service Routes with a Mapping Community | 7.8. Ingress Nodes Receiving Service Routes with a Mapping Community | |||
| Upon receipt of a BGP service route (for example, AFI/SAFI: 1/1, | Upon receipt of a BGP service route (for example, AFI/SAFI: 1/1, 2/1) | |||
| 2/1) with a PNH as EP that is not directly connected (for example, | with a PNH as the EP that is not directly connected (for example, an | |||
| an IBGP-route), a Mapping Community (for example, Color Extended | IBGP-route), a Mapping Community (for example, a Color Extended | |||
| Community) on the route is used to decide to which resolution | Community) on the route is used to decide to which Resolution Scheme | |||
| scheme this route is to be mapped. | this route is to be mapped. | |||
| The resolution scheme for a Color Extended Community with Color | The Resolution Scheme for a Color extended community with Color "C1" | |||
| "C1" contains a TRDB for a Transport Class with same ID, followed | contains a TRDB for a Transport Class with same ID followed by the | |||
| by the Best Effort TRDB. The administrator MAY customize the | Best-Effort TRDB. The administrator MAY customize the Resolution | |||
| resolution scheme to map to a different ordered list of TRDBs. If | Scheme to map to a different ordered list of TRDBs. If the | |||
| the resolution scheme for TC ID "C1" is not found, the resolution | Resolution Scheme for TC ID "C1" is not found, the Resolution Scheme | |||
| scheme containing the "Best Effort" transport class TRDB is used. | containing the Best-Effort TRDB is used. | |||
| If no Mapping Community was found on the overlay route, the "Best | If no Mapping Community was found on the overlay route, the "Best | |||
| Effort" resolution scheme is used for resolving the route's next | Effort Resolution Scheme" is used for resolving the route's next hop. | |||
| hop. This behavior is backward compatible to behavior of an | This behavior is backward compatible to behavior of an implementation | |||
| implementation that does not follow procedures described in this | that does not follow procedures described in this document. | |||
| document. | ||||
| The routes in the TRDBs associated with selected resolution scheme | The routes in the TRDBs associated with the selected Resolution | |||
| are used to resolve the received PNH EP. The order of TRDBs in a | Scheme are used to resolve the received PNH EP. The order of TRDBs | |||
| resolution scheme is followed when resolving the received PNH, | in a Resolution Scheme is followed when resolving the received PNH, | |||
| such that a route in a backup TRDB is used only when a matching | such that a route in a backup TRDB is used only when a matching route | |||
| route was not found for EP in the primary TRDBs preceding it. | was not found for the EP in the primary TRDBs preceding it. This | |||
| This achieves the fallback desired by the resolution scheme. | achieves the fallback desired by the Resolution Scheme. | |||
| If the resolution process does not find a Tunnel Route for EP in | If the resolution process does not find a Tunnel Route for the EP in | |||
| any of the Transport Route Databases, the service route MUST be | any of the Transport Route Databases, the service route MUST be | |||
| considered unresolvable (See RFC 4271, Section 9.1.2.1). | considered unresolvable. (See Section 9.1.2.1 of [RFC4271]). | |||
| Note: For an illustration of above procedures in a MPLS network, | Note: For an illustration of above procedures in an MPLS network, | |||
| refer to Section 8. | refer to Section 8. | |||
| 7.9. Best Effort Transport Class | 7.9. Best-Effort Transport Class | |||
| It is possible to represent 'Best effort' SLA also as a Transport | It is also possible to represent a 'Best-Effort' SLA as a Transport | |||
| Class. Today, BGP LU is used to extend the best effort intra | Class. At the time of writing, BGP LU is used to extend the best- | |||
| domain tunnels to other domains. | effort intra-domain tunnels to other domains. | |||
| Alternatively, BGP CT may also be used to carry the best effort | Alternatively, BGP CT may also be used to carry the best-effort | |||
| tunnels. This document reserves the Transport Class ID value 0 to | tunnels. This document reserves the Transport Class ID value 0 to | |||
| represent "Best Effort Transport Class ID". However, | represent the "Best-Effort Transport Class ID". However, | |||
| implementations SHOULD provide configuration to use a different | implementations SHOULD provide configuration to use a different value | |||
| value for this purpose. Procedures to manage differences in | for this purpose. Procedures to manage differences in Transport | |||
| Transport Class ID namespaces between domains are provided in | Class ID namespaces between domains are provided in Section 11.2.2. | |||
| Section 11.2.2. | ||||
| The "Best Effort Transport Class ID" value is used in the | The "Best-Effort Transport Class ID" value is used in the "Transport | |||
| "Transport Class ID" field of Transport Route Target Extended | Class ID" field of the Transport Class RT that is attached to the BGP | |||
| Community that is attached to the BGP CT route that advertises a | CT route that advertises a best-effort tunnel endpoint. Thus, the RT | |||
| best effort tunnel endpoint. The RT thus formed is called the | formed is called the "Best-Effort Transport Class RT". | |||
| "Best Effort Transport Class Route Target". | ||||
| When a BN or SN receives a BGP CT route with Best Effort Transport | When a BN or SN receives a BGP CT route with Best-Effort Transport | |||
| Class Route Target as the mapping community, the Best effort | Class RT as the Mapping Community, the Best-Effort Resolution Scheme | |||
| resolution scheme is used for resolving the BGP next hop, and the | is used for resolving the BGP next hop, and the resultant route is | |||
| resultant route is installed in the best effort transport route | installed in the best-effort transport route database. If no best- | |||
| database. If no best effort tunnel was found to resolve the BGP | effort tunnel was found to resolve the BGP next hop, the BGP CT route | |||
| next hop, the BGP CT route MUST be considered unusable, and not be | MUST be considered unusable and not be propagated further. | |||
| propagated further. | ||||
| When a BGP speaker receives an overlay route without any explicit | When a BGP speaker receives an overlay route without any explicit | |||
| Mapping Community, and absent local policy, the best effort | Mapping Community, and absent local policy, the Best-Effort | |||
| resolution scheme is used for resolving the BGP next hop on the | Resolution Scheme is used for resolving the BGP next hop on the | |||
| route. This behavior is backward compatible to behavior of an | route. This behavior is backward compatible to behavior of an | |||
| implementation that does not follow procedures described in this | implementation that does not follow procedures described in this | |||
| document. | document. | |||
| Implementations MAY provide configuration to selectively install | Implementations MAY provide configuration to selectively install BGP | |||
| BGP CT routes to the Forwarding Information Base (FIB), to provide | CT routes to the Forwarding Information Base (FIB) to provide | |||
| reachability for control plane peering towards endpoints in other | reachability for control-plane peering towards endpoints in other | |||
| domains. | domains. | |||
| 7.10. Interaction with BGP Attributes Specifying Next Hop Address and | 7.10. Interaction with BGP Attributes Specifying Next Hop Address and | |||
| Color | Color | |||
| The Tunnel Encapsulation Attribute, described in [RFC9012] can be | The Tunnel Encapsulation Attribute, described in [RFC9012], can be | |||
| used to request a specific type of tunnel encapsulation. This | used to request a specific type of tunnel encapsulation. This | |||
| attribute may apply to BGP service routes or transport routes, | attribute may apply to BGP service routes or transport routes | |||
| including BGP Classful Transport family routes. | including BGP CT family routes. | |||
| It should be noted that in such cases "Transport Class ID/Color" can | It should be noted that in such cases "Transport Class ID/Color" can | |||
| exist in multiple places on the same route, and a precedence order | exist in multiple places on the same route, and a precedence order | |||
| needs to be established to determine which Transport Class the | needs to be established to determine which Transport Class the | |||
| route's next hop should resolve over. This document specifies the | route's next hop should resolve over. This document specifies the | |||
| following order of precedence, more specific scoping of Color | following order of precedence with more-specific scoping of Color | |||
| preferred to less specific scoping: | preferred to less-specific scoping: | |||
| Color SubTLV, in Tunnel Encapsulation Attribute. | * Color sub-TLV in the Tunnel Encapsulation Attribute. | |||
| Transport Target Extended community, on BGP CT route. | * Transport Class RT on a BGP CT route. | |||
| Color Extended community, on BGP service route. | * Color extended community on a BGP service route. | |||
| Color specified in the Color subTLV in a TEA is a more specific | Color specified in the Color sub-TLV in a TEA is a more-specific | |||
| indication of "Transport Class ID/Color" than Mapping Community | indication of "Transport Class ID/Color" than Mapping Community | |||
| (Transport Target) on a BGP CT transport route, which is in turn is | (Transport Class RT) on a BGP CT transport route, which, in turn, is | |||
| more specific than a Service route scoped Mapping Community (Color | more specific than a service route scoped Mapping Community (Color | |||
| Extended community). | extended community). | |||
| Any BGP attributes or mechanisms defined in future that carry | Any BGP attributes or mechanisms defined in future that carry | |||
| Transport Class ID/Color on the route are expected to specify the | Transport Class ID/Color on the route are expected to specify the | |||
| order of precedence relative to the above. | order of precedence relative to the above. | |||
| 7.11. Applicability to Flowspec Redirect to IP | 7.11. Applicability to Flowspec Redirect-to-IP | |||
| Flowspec routes using Redirect to IP next hop is described in | Flowspec routes using redirect-to-IP next hop are described in | |||
| [FLOWSPEC-REDIR-IP] | [FLOWSPEC-REDIR-IP]. | |||
| Such Flowspec BGP routes with Redirect to IP next hop MAY be attached | ||||
| with a Mapping Community (e.g. Color:0:100), which allows redirecting | ||||
| the flow traffic over a tunnel to the IP next hop satisfying the | ||||
| desired SLA (e.g. Transport Class color 100). | ||||
| Flowspec BGP family acts as just another service that can make use of | Such Flowspec BGP routes with redirect-to-IP next hop MAY be attached | |||
| BGP CT architecture to achieve Flow based forwarding with SLAs. | with a Mapping Community (e.g., color:0:100), which allows | |||
| redirecting the flow traffic over a tunnel to the IP next hop | ||||
| satisfying the desired SLA (e.g., Transport Class color 100). | ||||
| The Flowspec BGP family acts as just another service that can make | ||||
| use of the BGP CT architecture to achieve flow-based forwarding with | ||||
| SLAs. | ||||
| 7.12. Applicability to IPv6 | 7.12. Applicability to IPv6 | |||
| BGP CT procedures apply equally to IPv4 and IPv6 enabled Intra-AS or | BGP CT procedures apply equally to IPv4- and IPv6-enabled intra-AS or | |||
| Inter-AS Option A, B, C network. This section describes | inter-AS option A, B, and C networks. This section describes the | |||
| applicability of BGP CT to IPv6 at various layers. | applicability of BGP CT to IPv6 at various layers. | |||
| A BGP CT enabled network supports IPv6 service families (for example, | A network that is BGP CT enabled supports IPv6 service families (for | |||
| AFI/SAFI 2/1 or 2/128) and IPv6 transport signaling protocols like | example, AFI/SAFI 2/1 or 2/128) and IPv6 transport signaling | |||
| SRTEv6, LDPv6, RSVP-TEv6. | protocols like SRTEv6, LDPv6, or RSVP-TEv6. | |||
| Procedures in this document also apply to a network with Pure IPv6 | Procedures in this document also apply to a network with Pure IPv6 | |||
| core, that uses MPLS forwarding for intra-domain tunnels and inter-AS | core, that uses MPLS forwarding for intra-domain tunnels and inter-AS | |||
| links. BGP CTv6 family (AFI/SAFI: 2/76) is used to carry global IPv6 | links. The BGP CTv6 family (AFI/SAFI: 2/76) is used to carry global | |||
| address tunnel endpoints in the NLRI. Service family routes (for | IPv6 address tunnel endpoints in the NLRI. Service family routes | |||
| example, AFI/SAFI: 1/1, 2/1, 1/128, 2/128) are also advertised with | (for example, AFI/SAFI: 1/1, 2/1, 1/128, and 2/128) are also | |||
| those Global IPv6 addresses as next hop. | advertised with those Global IPv6 addresses as next hop. | |||
| Procedures in this document also apply to a 6PE network with an IPv4 | Procedures in this document also apply to a 6PE network with an IPv4 | |||
| core, that uses MPLS forwarding for intra-domain tunnels and Inter-AS | core, which uses MPLS forwarding for intra-domain tunnels and inter- | |||
| links. BGP CTv6 family (AFI/SAFI: 2/76) is used to carry IPv4 Mapped | AS links. The BGP CTv6 family (AFI/SAFI: 2/76) is used to carry IPv4 | |||
| IPv6 address tunnel endpoints in the NLRI. IPv6 Service family | Mapped IPv6 address tunnel endpoints in the NLRI. IPv6 Service | |||
| routes (for example, AFI/SAFI: 2/1, 2/128) are also advertised with | family routes (for example, AFI/SAFI: 2/1, 2/128) are also advertised | |||
| those IPv4 Mapped IPv6 addresses as next hop. | with those IPv4 Mapped IPv6 addresses as next hop. | |||
| The PE-CE attachment circuits may use IPv4 addresses only, IPv6 | The PE-CE attachment circuits may use IPv4 addresses only, IPv6 | |||
| addresses only, or both IPv4 and IPv6 addresses. | addresses only, or both IPv4 and IPv6 addresses. | |||
| 7.13. SRv6 Support | 7.13. SRv6 Support | |||
| BGP CT family (AFI/SAFI 2/76) may be used to set up inter-domain | The BGP CT family (AFI/SAFI 2/76) may be used to set up inter-domain | |||
| tunnels of a certain Transport Class, when using Segment Routing over | tunnels of a certain Transport Class when using a Segment Routing | |||
| IPv6 (SRv6) data plane on the inter-AS links or as an intra-AS | over IPv6 (SRv6) data plane on the inter-AS links or as an intra-AS | |||
| tunneling mechanism. | tunneling mechanism. | |||
| Details of SRv6 Endpoint behaviors used by BGP CT and the procedures | Details of SRv6 Endpoint behaviors used by BGP CT and the procedures | |||
| are specified in a separate document [BGP-CT-SRv6], along with | are specified and illustrated in a separate document (see | |||
| illustration. As noted in that document, BGP CT route update for | [BGP-CT-SRv6]). As noted in that document, a BGP CT route update for | |||
| SRv6 includes a BGP attribute containing SRv6 SID information (e.g. | SRv6 includes a BGP attribute containing SRv6 SID information (e.g., | |||
| Prefix SID [RFC9252]) with Transposition scheme disabled. | a BGP Prefix-SID [RFC9252]) with the Transposition Scheme disabled. | |||
| 7.14. Error Handling Considerations | 7.14. Error-Handling Considerations | |||
| If a BGP speaker receives both Transitive (Section 13.2.1.1.1) and | If a BGP speaker receives both transitive and non-transitive (see | |||
| Non-Transitive (Section 13.2.1.1.2) versions of Transport Class | Section 13.2.1.1.1 and Section 13.2.1.1.2, respectively) versions of | |||
| extended community on a route, only the Transitive one is used. | a Transport Class extended community on a route, only the transitive | |||
| one is used. | ||||
| If a BGP speaker considers a received "Transport Class" extended | If a BGP speaker considers a received "Transport Class" extended | |||
| community (Transitive or Non-Transitive version), or any other part | community (the transitive or non-transitive version) or any other | |||
| of a BGP CT route invalid for some reason, but is able to | part of a BGP CT route invalid for some reason, but is able to | |||
| successfully parse the NLRI and attributes, Treat-as-withdraw | successfully parse the NLRI and attributes, the treat-as-withdraw | |||
| approach from [RFC7606] is used. The route is kept as Unusable, with | approach from [RFC7606] is used. The route is kept as Unusable, with | |||
| appropriate diagnostic information, to aid troubleshooting. | appropriate diagnostic information, to aid troubleshooting. | |||
| 8. Illustration of BGP CT Procedures | 8. Illustration of BGP CT Procedures | |||
| This section illustrates BGP CT procedures in an Inter-AS Option C | This section illustrates BGP CT procedures in an inter-AS option C | |||
| MPLS network. | MPLS network. | |||
| All Illustrations in this document make use of [RFC6890] IP address | All illustrations in this document make use of IP address ranges as | |||
| ranges. The range 192.0.2.0/24 is used to represent transport | described in [RFC6890]. The range 192.0.2.0/24 is used to represent | |||
| endpoints like loopback addresses. The range 203.0.113.0/24 is used | transport endpoints like loopback addresses. The range | |||
| to represent service route prefixes advertised in AFI/SAFIs: 1/1 or | 203.0.113.0/24 is used to represent service route prefixes advertised | |||
| 1/128. | in AFI/SAFIs: 1/1 or 1/128. | |||
| Though this section illustrates using IPv4, as described in | Though this section illustrates the use of IPv4, as described in | |||
| Section 7.12 these procedures work equally for IPv6 as-well. | Section 7.12, these procedures work equally for IPv6 as well. | |||
| 8.1. Reference Topology | 8.1. Reference Topology | |||
| [RR26] [RR27] [RR16] | [RR26] [RR27] [RR16] | |||
| | | | | | | | | |||
| | | | | | | | | |||
| | +--[ABR23]--+ | +--[ASBR21]-[ASBR13]--+ | +--[PE11]--+ | | +--[ABR23]--+ | +--[ASBR21]-[ASBR13]--+ | +-[PE11]+ | |||
| | | | | | \ / | | | | | | | | | | \ / | | | | | |||
| [CE41]-[PE25]-[P28] [P29] \/ [P15] [CE31] | [CE41]-[PE25]-[P28] [P29] \/ [P15] [CE31] | |||
| | | | /\ | | | | | | | /\ | | | | |||
| | | | / \ | | | | | | | / \ | | | | |||
| | | | / \ | | | | | | | / \ | | | | |||
| +--[ABR24]--+ +--[ASBR22]-[ASBR14]--+ +--[PE12]--+ | +--[ABR24]--+ +--[ASBR22]-[ASBR14]--+ +-[PE12]+ | |||
| : AS2 : AS2 : : | : AS2 : AS2 : : | |||
| AS4 : region-1 : region-2 : AS1 : AS3 | AS4 : region-1 : region-2 : AS1 : AS3 | |||
| : : : : | : : : : | |||
| 203.0.113.41 ---------- Traffic Direction ------------> 203.0.113.31 | 203.0.113.41 ---------- Traffic Direction ----------> 203.0.113.31 | |||
| Figure 3: Multi-Domain BGP CT Network | Figure 3: Multi-Domain BGP CT Network | |||
| This example shows a provider MPLS network that consists of two ASes, | This example shows a provider MPLS network that consists of two ASes, | |||
| AS1 and AS2. They are serving customers AS3, AS4 respectively. | AS1 and AS2, that serve customers AS3 and AS4, respectively. The | |||
| Traffic direction being described is CE41 to CE31. CE31 may request | traffic direction being described is from CE41 to CE31. CE31 may | |||
| a specific SLA (for example, mapped to Gold for this example), when | request a specific SLA (mapped to Gold for this example), when | |||
| traversing these provider networks. | traversing these provider networks. | |||
| AS2 is further divided into two regions. There are three tunnel | AS2 is further divided into two regions. There are three tunnel | |||
| domains in provider's space: AS1 uses ISIS Flex-Algo [RFC9350] intra- | domains in the provider's space: | |||
| domain tunnels. AS2 uses RSVP-TE intra-domain tunnels. MPLS | ||||
| forwarding is used within these domains and on inter-domain links. | * AS1 uses ISIS Flex-Algo (see[RFC9350]) intra-domain tunnels. | |||
| * AS2 uses RSVP-TE intra-domain tunnels. | ||||
| MPLS forwarding is used within these domains and on inter-domain | ||||
| links. | ||||
| The network exposes two Transport Classes: "Gold" with Transport | The network exposes two Transport Classes: "Gold" with Transport | |||
| Class ID 100, "Bronze" with Transport Class ID 200. These Transport | Class ID 100 and "Bronze" with Transport Class ID 200. These | |||
| Classes are provisioned at the PEs and the Border nodes (ABRs, ASBRs) | Transport Classes are provisioned at the PEs and the Border nodes | |||
| in the network. | (ABRs and ASBRs) in the network. | |||
| The following tunnels exist for Gold Transport Class. | The following tunnels exist for the Gold Transport Class: | |||
| PE25_to_ABR23_gold - RSVP-TE tunnel | * PE25_to_ABR23_gold - RSVP-TE tunnel | |||
| PE25_to_ABR24_gold - RSVP-TE tunnel | * PE25_to_ABR24_gold - RSVP-TE tunnel | |||
| ABR23_to_ASBR22_gold - RSVP-TE tunnel | * ABR23_to_ASBR22_gold - RSVP-TE tunnel | |||
| ASBR13_to_PE11_gold - SRTE tunnel | * ASBR13_to_PE11_gold - SRTE tunnel | |||
| ASBR14_to_PE11_gold - SRTE tunnel | * ASBR14_to_PE11_gold - SRTE tunnel | |||
| The following tunnels exist for Bronze Transport Class. | The following tunnels exist for Bronze Transport Class: | |||
| PE25_to_ABR23_bronze - RSVP-TE tunnel | * PE25_to_ABR23_bronze - RSVP-TE tunnel | |||
| ABR23_to_ASBR21_bronze - RSVP-TE tunnel | * ABR23_to_ASBR21_bronze - RSVP-TE tunnel | |||
| ABR23_to_ASBR22_bronze - RSVP-TE tunnel | * ABR23_to_ASBR22_bronze - RSVP-TE tunnel | |||
| ABR24_to_ASBR21_bronze - RSVP-TE tunnel | * ABR24_to_ASBR21_bronze - RSVP-TE tunnel | |||
| ASBR13_to_PE12_bronze - ISIS FlexAlgo tunnel | * ASBR13_to_PE12_bronze - ISIS Flex-Algo tunnel | |||
| ASBR14_to_PE11_bronze - ISIS FlexAlgo tunnel | * ASBR14_to_PE11_bronze - ISIS Flex-Algo tunnel | |||
| These tunnels are either provisioned or auto-discovered to belong to | These tunnels are either provisioned or autodiscovered to belong to | |||
| Transport Classes 100 or 200. | Transport Class IDs 100 or 200. | |||
| 8.2. Service Layer Route Exchange | 8.2. Service Layer Route Exchange | |||
| Service nodes PE11, PE12 negotiate service families (AFI: 1 and SAFIs | Service nodes PE11 and PE12 negotiate service families (AFI/SAFIs: | |||
| 1, 128) on the BGP session with RR16. Service helpers RR16 and RR26 | 1/1 and 1/128) on the BGP session with RR16. Service helpers RR16 | |||
| exchange these service routes with next hop unchanged over a multihop | and RR26 exchange these service routes with the next hop unchanged | |||
| EBGP session between the two AS. PE25 negotiates service families | over a multihop EBGP session between the two ASes. PE25 negotiates | |||
| (AFI: 1 and SAFIs 1, 128) with RR26. | service families (AFI/SAFIs: 1/1 and 1/128) with RR26. | |||
| The PEs see each other as next hop in the BGP Update for the service | The PEs see each other as the next hop in the BGP UPDATE message for | |||
| family routes. BGP ADD-PATH send and receive is enabled on both | the service family routes. BGP ADD-PATH send and receive are enabled | |||
| directions on the EBGP multihop session between RR16 and RR26 for | on both directions on the EBGP multihop session between RR16 and RR26 | |||
| AFI:1 and SAFIs 1, 128. BGP ADD-PATH send is negotiated in the RR to | for AFI/SAFIs: 1/1 and 1/128. BGP ADD-PATH send is negotiated in the | |||
| PE direction in each AS. This is to avoid path hiding of service | RR to PE direction in each AS. This is to avoid the path-hiding | |||
| routes at RR; i.e., AFI/SAFI 1/1 routes advertised by both PE11 and | service routes at the RR, i.e., AFI/SAFI 1/1 routes advertised by | |||
| PE12. Or, AFI/SAFI 1/128 routes originated by both PE11 and PE12 | both PE11 and PE12 or AFI/SAFI 1/128 routes originated by both PE11 | |||
| using same RD. | and PE12 using the same RD. | |||
| Forwarding happens using service routes installed at service nodes | Forwarding happens using service routes installed at service nodes | |||
| PE25, PE11, PE12 only. Service routes received from CEs are not | PE25, PE11, and PE12 only. Service routes received from CEs are not | |||
| present in any other nodes' FIB in the network. | present in any other nodes' FIB in the network. | |||
| As an example, CE31 advertises a route for prefix 203.0.113.31 with | As an example, CE31 advertises a route for prefix 203.0.113.31 with | |||
| next hop as self to PE11, PE12. CE31 can attach a Mapping Community | the next hop as itself to PE11 and PE12. CE31 can attach a Mapping | |||
| Color:0:100 on this route, to indicate its request for Gold SLA. Or, | Community color:0:100 on this route to indicate its request for a | |||
| PE11 can attach the same using locally configured policies. | Gold SLA. Or, PE11 can attach the same using locally configured | |||
| policies. | ||||
| Consider, CE31 is getting VPN service from PE11. The | Consider CE31 getting VPN service from PE11. The RD1:203.0.113.31 | |||
| RD1:203.0.113.31 route is readvertised in AFI/SAFI 1/128 by PE11 with | route is readvertised in AFI/SAFI 1/128 by PE11 with the next hop set | |||
| next hop self (192.0.2.11) and label V-L1, to RR16 with the Mapping | to itself (192.0.2.11) and label V-L1 to RR16 with the Mapping | |||
| Community Color:0:100 attached. RR16 advertises this route with BGP | Community color:0:100 attached. RR16 advertises this route with the | |||
| ADD-PATH ID to RR26 which readvertises to PE25 with next hop | BGP ADD-PATH ID set to RR26, which readvertises to PE25 with the next | |||
| unchanged. Now, PE25 can resolve the PNH 192.0.2.11 using transport | hop unchanged. Now, PE25 can resolve the PNH 192.0.2.11 using | |||
| routes received in BGP CT or BGP LU. | transport routes received in BGP CT or BGP LU. | |||
| Using BGP ADD-PATH, service routes advertised by PE11 and PE12 for | Using BGP ADD-PATH, service routes advertised by PE11 and PE12 for | |||
| AFI:1 SAFIs 1, 128 reach PE25 via RR16, RR26 with the next hop | AFI/SAFIs: 1/1 and 1/128 reach PE25 via RR16, RR26 with the next hop | |||
| unchanged, as PE11 or PE12. | unchanged, as PE11 or PE12. | |||
| The IP FIB at PE25 VRF will have a route for 203.0.113.31 with a next | The IP FIB at the PE25 VRF will have a route for 203.0.113.31 with a | |||
| hop when resolved, that points to a Gold tunnel in ingress domain. | next hop when resolved that points to a Gold tunnel in the ingress | |||
| domain. | ||||
| 8.3. Transport Layer Route Propagation | 8.3. Transport Layer Route Propagation | |||
| Egress nodes PE11, PE12 negotiate BGP CT family with transport ASBRs | Egress nodes PE11 and PE12 negotiate a BGP CT family with transport | |||
| ASBR13, ASBR14. These egress nodes originate BGP CT routes for | ASBRs ASBR13 and ASBR14. These egress nodes originate BGP CT routes | |||
| tunnel endpoint addresses, that are advertised as next hop in BGP | for tunnel endpoint addresses that are advertised as a next hop in | |||
| service routes. In this example, both PEs participate in transport | BGP service routes. In this example, both PEs participate in | |||
| classes Gold and Bronze. The protocol procedures are explained using | Transport Classes Gold and Bronze. The protocol procedures are | |||
| the Gold SLA transport plane and the Bronze SLA transport plane is | explained using the Gold SLA transport plane; the Bronze SLA | |||
| used to highlight the path hiding aspects. | transport plane is used to highlight the path-hiding aspects. | |||
| PE11 is provisioned with transport class 100, RD value 192.0.2.11:100 | For Gold tunnels, PE11 is provisioned with Transport Class having TC | |||
| and a transport-target:0:100 for Gold tunnels. And a Transport class | ID 100, RD value 192.0.2.11:100, and a transport-target:0:100. For | |||
| 200 with RD value 192.0.2.11:200, and transport route target 0:200 | Bronze tunnels, PE11 is provisioned with Transport Class 200, RD | |||
| for Bronze tunnels. Similarly, PE12 is provisioned with transport | value 192.0.2.11:200, and transport-target:0:200. Similarly, for | |||
| class 100, RD value 192.0.2.12:100 and a transport-target:0:100 for | Gold tunnels, PE12 is provisioned with Transport Class having TC ID | |||
| Gold tunnels. And transport class 200, RD value 192.0.2.12:200 with | 100, RD value 192.0.2.12:100, and a transport-target:0:100. For | |||
| transport-target:0:200 for Bronze tunnels. Note that in this | Bronze tunnels, PE12 is provisioned with Transport Class having TC ID | |||
| example, the BGP CT routes carry only the transport class route | 200, RD value 192.0.2.12:200, and transport-target:0:200. Note that, | |||
| target, and no IP address format route target. | in this example, the BGP CT routes carry only the Transport Class RT | |||
| and no IP address format route target. | ||||
| The RD value originated by an egress node is not modified by any BGP | The RD value originated by an egress node is not modified by any BGP | |||
| speakers when the route is readvertised to the ingress node. Thus, | speakers when the route is readvertised to the ingress node. Thus, | |||
| the RD can be used to identify the originator (unique RD provisioned) | the RD can be used to identify the originator (unique RD provisioned) | |||
| or set of originators (RD reused on multiple nodes). | or set of originators (RD reused on multiple nodes). | |||
| Similarly, these transport classes are also configured on ASBRs, ABRs | Similarly, these Transport Classes are also configured on ASBRs, | |||
| and PEs with same Transport Route Target and unique RDs. | ABRs, and PEs with same Transport Class RT and unique RDs. | |||
| ASBR13 and ASBR14 negotiate BGP CT family with transport ASBRs | ASBR13 and ASBR14 negotiate BGP CT family with transport ASBRs ASBR21 | |||
| ASBR21, ASBR22 in neighboring AS. ASBR21, ASBR22 negotiate BGP CT | and ASBR22 in neighboring ASes. ASBR21 and ASBR22 negotiate BGP CT | |||
| family with RR27 in region 2, which reflects BGP CT routes to ABR23, | family with RR27 in region 2, which reflects BGP CT routes to ABR23 | |||
| ABR24. ABR23, ABR24 negotiate BGP CT family with Ingress node PE25 | and ABR24. ABR23 and ABR24 negotiate BGP CT family with ingress node | |||
| in region 1. BGP LU family is also negotiated on these sessions | PE25 in region 1. The BGP LU family is also negotiated on these | |||
| alongside BGP CT family. BGP LU carries "best effort" transport | sessions alongside the BGP CT family. The BGP LU family carries | |||
| class routes, BGP CT carries Gold, Bronze transport class routes. | Best-Effort Transport Class routes; BGP CT carries Gold and Bronze | |||
| Transport Class routes. | ||||
| PE11 is provisioned to originate a BGP CT route for endpoint PE11, | PE11 is provisioned to originate a BGP CT route for endpoint PE11, | |||
| with Gold SLA. This route is sent with NLRI RD prefix | with a Gold SLA. This route is sent with NLRI RD prefix | |||
| 192.0.2.11:100:192.0.2.11, Label B-L0, next hop 192.0.2.11 and a | 192.0.2.11:100:192.0.2.11, Label B-L0, next hop 192.0.2.11, and a | |||
| route target extended community transport-target:0:100. Label B-L0 | Route Target extended community transport-target:0:100. Label B-L0 | |||
| can either be Implicit Null (Label 3) or an UHP label. | can either be Implicit NULL (Label 3) or a UHP label. | |||
| This route is received by ASBR13 and it resolves over the tunnel | This route is received by ASBR13 and it resolves over the tunnel | |||
| ASBR13_to_PE11_gold. The route is then readvertised by ASBR13 in BGP | ASBR13_to_PE11_gold. The route is then readvertised by ASBR13 in BGP | |||
| CT family to ASBRs ASBR21, ASBR22 according to export policy. This | CT family to ASBRs ASBR21, ASBR22 according to export policy. This | |||
| route is sent with same NLRI RD prefix 192.0.2.11:100:192.0.2.11, | route is sent with same NLRI RD prefix 192.0.2.11:100:192.0.2.11, | |||
| Label B-L1, next hop self, and transport-target:0:100. MPLS swap | Label B-L1, the next hop set to itself, and transport-target:0:100. | |||
| route is installed at ASBR13 for B-L1 with a next hop pointing to | An MPLS swap route is installed at ASBR13 for B-L1 with a next hop | |||
| ASBR13_to_PE11_gold tunnel. | pointing to ASBR13_to_PE11_gold tunnel. | |||
| Similarly, ASBR14 also receives a BGP CT route for | Similarly, ASBR14 also receives a BGP CT route for | |||
| 192.0.2.11:100:192.0.2.11 from PE11 and it resolves over the tunnel | 192.0.2.11:100:192.0.2.11 from PE11, and it resolves over the tunnel | |||
| ASBR14_to_PE11_gold. The route is then readvertised by ASBR14 in BGP | ASBR14_to_PE11_gold. The route is then readvertised by ASBR14 in the | |||
| CT family to ASBRs ASBR21, ASBR22 according to export policy. This | BGP CT family to ASBRs ASBR21 and ASBR22 according to export policy. | |||
| route is sent with the same NLRI RD prefix 192.0.2.11:100:192.0.2.11, | This route is sent with the same NLRI RD prefix | |||
| Label B-L2, next hop self, and transport-target:0:100. MPLS swap | 192.0.2.11:100:192.0.2.11, Label B-L2, next hop set to itself, and | |||
| route is installed at ASBR14 for B-L1 with a next hop pointing to | transport-target:0:100. An MPLS swap route is installed at ASBR14 | |||
| ASBR14_to_PE11_gold tunnel. | for B-L1 with a next hop pointing to ASBR14_to_PE11_gold tunnel. | |||
| In the Bronze plane, BGP CT route with Bronze SLA to endpoint PE11 is | In the Bronze plane, the BGP CT route with a Bronze SLA to endpoint | |||
| originated by PE11 with a NLRI containing RD prefix | PE11 is originated by PE11 with an NLRI containing RD prefix | |||
| 192.0.2.11:200:192.0.2.11, and appropriate label. The use of | 192.0.2.11:200:192.0.2.11 and an appropriate label. The use of | |||
| distinct RDs for Gold and Bronze allows both Gold and Bronze | distinct RDs for Gold and Bronze allows both Gold and Bronze | |||
| advertisements to traverse path selection pinchpoints without any | advertisements to traverse path-selection pinch points without any | |||
| path hiding at RRs or ASBRs. And route target extended community | path hiding at RRs or ASBRs. And Route Target extended community | |||
| transport-target:0:200 lets the route resolve over Bronze tunnels in | transport-target:0:200 lets the route resolve over Bronze tunnels in | |||
| the network, similar to the process being described for Gold SLA | the network, similar to the process being described for the Gold SLA | |||
| path. | path. | |||
| Moving back to the Gold plane, ASBR21 receives the Gold SLA BGP CT | Moving back to the Gold plane, ASBR21 receives the Gold SLA BGP CT | |||
| routes for NLRI RD prefix 192.0.2.11:100:192.0.2.11 over the single | routes for NLRI RD prefix 192.0.2.11:100:192.0.2.11 over the single- | |||
| hop EBGP sessions from ASBR13, ASBR14, and can compute ECMP/FRR | hop EBGP sessions from ASBR13 and ASBR14 and can compute ECMP/FRR | |||
| towards them. ASBR21 readvertises BGP CT route for | towards them. ASBR21 readvertises the BGP CT route for | |||
| 192.0.2.11:100:192.0.2.11 with next hop self (loopback address | 192.0.2.11:100:192.0.2.11 with a next hop set to itself (loopback | |||
| 192.0.2.21) to RR27, advertising a new label B-L3. An MPLS swap | address 192.0.2.21) to RR27, advertising a new label: B-L3. An MPLS | |||
| route is installed for label B-L3 at ASBR21 to swap to received label | swap route is installed for label B-L3 at ASBR21 to swap to received | |||
| B-L1, B-L2 and forward to ASBR13, ASBR14 respectively, this is an | labels B-L1 and B-L2 and forward to ASBR13 and ASBR14 respectively; | |||
| ECMP route. RR27 readvertises this BGP CT route to ABR23, ABR24 with | this is an ECMP route. RR27 readvertises this BGP CT route to ABR23 | |||
| label and next hop unchanged. | and ABR24 with the label and next hop unchanged. | |||
| Similarly, ASBR22 receives BGP CT route 192.0.2.11:100:192.0.2.11 | Similarly, ASBR22 receives BGP CT route 192.0.2.11:100:192.0.2.11 | |||
| over the single hop EBGP sessions from ASBR13, ASBR14, and | over the single-hop EBGP sessions from ASBR13 and ASBR14, and it | |||
| readvertises with next hop self (loopback address 192.0.2.22) to | readvertises with the next hop set to itself (loopback address | |||
| RR27, advertising a new label B-L4. An MPLS swap route is installed | 192.0.2.22) to RR27, advertising a new label: B-L4. An MPLS swap | |||
| for label B-L4 at ASBR22 to swap to received label B-L1, B-L2 and | route is installed for label B-L4 at ASBR22 to swap to received | |||
| forward to ASBR13, ASBR14 respectively. RR27 readvertises this BGP | labels B-L1 and B-L2 and forward to ASBR13 and ASBR14, respectively. | |||
| CT route also to ABR23, ABR24 with label and next hop unchanged. | RR27 also readvertises this BGP CT route to ABR23 and ABR24 with the | |||
| label and next hop unchanged. | ||||
| BGP ADD-PATH is enabled for BGP CT family on the sessions between | BGP ADD-PATH is enabled for the BGP CT family on the sessions between | |||
| RR27 and ASBRs, ABRs such that routes for 192.0.2.11:100:192.0.2.11 | RR27 and the ASBRs and ABRs such that routes for | |||
| with the next hops ASBR21 and ASBR22 are reflected to ABR23, ABR24 | 192.0.2.11:100:192.0.2.11 with the next hops ASBR21 and ASBR22 are | |||
| without any path hiding. Thus, ABR23 is given visibility of both | reflected to ABR23 and ABR24 without any path hiding. Thus, ABR23 is | |||
| available next hops for Gold SLA. | given visibility of both available next hops for the Gold SLA. | |||
| ABR23 receives the route with next hop 192.0.2.21, label B-L3 from | ABR23 receives the route with next hop 192.0.2.21 and label B-L3 from | |||
| RR27. The route target "transport-target:0:100" on this route acts | RR27. The transport-target:0:100 on this route acts as the Mapping | |||
| as Mapping Community, and instructs ABR23 to strictly resolve the | Community and instructs ABR23 to strictly resolve the next hop using | |||
| next hop using transport class 100 routes only. ABR23 is unable to | routes in TC 100 TRDB only. ABR23 is unable to find a route for | |||
| find a route for 192.0.2.21 with transport class 100. Thus, it | 192.0.2.21 in the TC 100 TRDB. Thus, it considers this route | |||
| considers this route unusable and does not propagate it further. | unusable and does not propagate it further. This prunes ASBR21 from | |||
| This prunes ASBR21 from Gold SLA tunneled path. | the Gold SLA tunneled path. | |||
| ABR23 also receives the route with next hop 192.0.2.22, label B-L4 | ABR23 also receives the route with next hop 192.0.2.22 and label B-L4 | |||
| from RR27. The route target "transport-target:0:100" on this route | from RR27. The transport-target:0:100 on this route acts as the | |||
| acts as Mapping Community, and instructs ABR23 to strictly resolve | Mapping Community and instructs ABR23 to strictly resolve the next | |||
| the next hop using transport class 100 routes only. ABR23 | hop using routes in TC 100 TRDB only. ABR23 successfully resolves | |||
| successfully resolves the next hop to point to ABR23_to_ASBR22_gold | the next hop to point to ABR23_to_ASBR22_gold tunnel. ABR23 | |||
| tunnel. ABR23 readvertises this BGP CT route with next hop self | readvertises this BGP CT route with the next hop set to itself | |||
| (loopback address 192.0.2.23) and a new label B-L5 to PE25. Swap | (loopback address 192.0.2.23) and a new label B-L5 to PE25. A swap | |||
| route for B-L5 is installed by ABR23 to swap to label B-L4, and | route for B-L5 is installed by ABR23 to swap to label B-L4 and | |||
| forward into ABR23_to_ASBR22_gold tunnel. | forward into ABR23_to_ASBR22_gold tunnel. | |||
| PE25 receives the BGP CT route for prefix 192.0.2.11:100:192.0.2.11 | PE25 receives the BGP CT route for prefix 192.0.2.11:100:192.0.2.11 | |||
| with label B-L5, next hop 192.0.2.23 and transport-target:0:100 from | with label B-L5, next hop 192.0.2.23, and transport-target:0:100 from | |||
| RR26. And it similarly resolves the next hop 192.0.2.23 over | RR26. It similarly resolves the next hop 192.0.2.23 over transport | |||
| transport class 100, pushing labels associated with | class 100, pushing labels associated with PE25_to_ABR23_gold tunnel. | |||
| PE25_to_ABR23_gold tunnel. | ||||
| In this manner, the Gold transport LSP "ASBR13_to_PE11_gold" in the | In this manner, the Gold transport LSP "ASBR13_to_PE11_gold" in the | |||
| egress domain is extended by BGP CT until the ingress node PE25 in | egress domain is extended by BGP CT until the ingress node PE25 in | |||
| the ingress domain, to create an end-to-end Gold SLA path. MPLS swap | the ingress domain, to create an end-to-end Gold SLA path. MPLS swap | |||
| routes are installed at ASBR13, ASBR22 and ABR23, when propagating | routes are installed at ASBR13, ASBR22, and ABR23, when propagating | |||
| the PE11 BGP CT Gold transport class route 192.0.2.11:100:192.0.2.11 | the PE11 BGP CT Gold Transport Class route 192.0.2.11:100:192.0.2.11 | |||
| with next hop self towards PE25. | with next hop set to itself towards PE25. | |||
| The BGP CT LSP thus formed, originates in PE25, and terminates in | Thus formed, the BGP CT LSP originates in PE25 and terminates in | |||
| ASBR13 (assuming PE11 advertised Implicit Null), traversing over the | ASBR13 (assuming PE11 advertised Implicit NULL), traversing over the | |||
| Gold underlay LSPs in each domain. ASBR13 uses UHP to stitch the BGP | Gold underlay LSPs in each domain. ASBR13 uses UHP to stitch the BGP | |||
| CT LSP into the "ASBR13_to_PE11_gold" LSP to traverse the last | CT LSP into the "ASBR13_to_PE11_gold" LSP to traverse the last | |||
| domain, thus satisfying Gold SLA end-to-end. | domain, thus satisfying Gold SLA end-to-end. | |||
| When PE25 receives service routes from RR26 with next hop 192.0.2.11 | When PE25 receives service routes from RR26 with next hop 192.0.2.11 | |||
| and mapping community Color:0:100, it resolves over this BGP CT route | and Mapping Community color:0:100, it resolves over this BGP CT route | |||
| 192.0.2.11:100:192.0.2.11. Thus, pushing label B-L5, and pushing as | 192.0.2.11:100:192.0.2.11. Thus, pushing label B-L5 and pushing as | |||
| top label the labels associated with PE25_to_ABR23_gold tunnel. | the top label the labels associated with PE25_to_ABR23_gold tunnel. | |||
| 8.4. Data Plane View | 8.4. Data Plane View | |||
| 8.4.1. Steady State | 8.4.1. Steady State | |||
| This section describes how the data plane looks in steady state. | This section describes how the data plane looks in steady state. | |||
| CE41 transmits an IP packet with destination as 203.0.113.31. On | CE41 transmits an IP packet with the destination 203.0.113.31. On | |||
| receiving this packet, PE25 performs a lookup in the IP FIB | receiving this packet, PE25 performs a lookup in the IP FIB | |||
| associated with the CE41 interface. This lookup yields the service | associated with the CE41 interface. This lookup yields the service | |||
| route that pushes the VPN service label V-L1, BGP CT label B-L5, and | route that pushes the VPN service label V-L1, BGP CT label B-L5, and | |||
| labels for PE25_to_ABR23_gold tunnel. Thus, PE25 encapsulates the IP | labels for PE25_to_ABR23_gold tunnel. Thus, PE25 encapsulates the IP | |||
| packet in an MPLS packet with label V-L1 (innermost), B-L5, and top | packet in an MPLS packet with labels V-L1 (innermost), B-L5, and top | |||
| label as PE25_to_ABR23_gold tunnel. This MPLS packet is thus | label PE25_to_ABR23_gold tunnel. This MPLS packet is thus | |||
| transmitted to ABR23 using Gold SLA. | transmitted to ABR23 using the Gold SLA. | |||
| ABR23 decapsulates the packet received on PE25_to_ABR23_gold tunnel | ABR23 decapsulates the packet received on PE25_to_ABR23_gold tunnel | |||
| as required, and finds the MPLS packet with label B-L5. It performs | as required and finds the MPLS packet with label B-L5. It performs a | |||
| a lookup for label B-L5 in the global MPLS FIB. This yields the | lookup for label B-L5 in the global MPLS FIB. This yields the route | |||
| route that swaps label B-L5 with label B-L4, and pushes the top label | that swaps label B-L5 with label B-L4 and pushes the top label | |||
| provided by ABR23_to_ASBR22_gold tunnel. Thus, ABR23 transmits the | provided by ABR23_to_ASBR22_gold tunnel. Thus, ABR23 transmits the | |||
| MPLS packet with label B-L4 to ASBR22, on a tunnel that satisfies | MPLS packet with label B-L4 to ASBR22 on a tunnel that satisfies the | |||
| Gold SLA. | Gold SLA. | |||
| ASBR22 similarly performs a lookup for label B-L4 in global MPLS FIB, | ASBR22 similarly performs a lookup for label B-L4 in the global MPLS | |||
| finds the route that swaps label B-L4 with label B-L2, and forwards | FIB, finds the route that swaps label B-L4 with label B-L2, and | |||
| to ASBR13 over the directly connected MPLS-enabled interface. This | forwards it to ASBR13 over the directly connected MPLS-enabled | |||
| interface is a common resource not dedicated to any specific | interface. This interface is a common resource not dedicated to any | |||
| transport class, in this example. | specific Transport Class, in this example. | |||
| ASBR13 receives the MPLS packet with label B-L2, and performs a | ASBR13 receives the MPLS packet with label B-L2 and performs a lookup | |||
| lookup in MPLS FIB, finds the route that pops label B-L2, and pushes | in the MPLS FIB, finds the route that pops label B-L2, and pushes | |||
| labels associated with ASBR13_to_PE11_gold tunnel. This transmits | labels associated with ASBR13_to_PE11_gold tunnel. This transmits | |||
| the MPLS packet with VPN label V-L1 to PE11 using a tunnel that | the MPLS packet with VPN label V-L1 to PE11 using a tunnel that | |||
| preserves Gold SLA in AS 1. | preserves the Gold SLA in AS 1. | |||
| PE11 receives the MPLS packet with V-L1, and performs VPN forwarding. | PE11 receives the MPLS packet with V-L1 and performs VPN forwarding, | |||
| Thus transmitting the original IP payload from CE41 to CE31. The | thus transmitting the original IP payload from CE41 to CE31. The | |||
| payload has traversed path satisfying Gold SLA end-to-end. | payload has traversed path satisfying the Gold SLA end-to-end. | |||
| 8.4.2. Local Repair of Primary Path | 8.4.2. Local Repair of Primary Path | |||
| This section describes how the data plane at ASBR22 reacts when the | This section describes how the data plane at ASBR22 reacts when the | |||
| link between ASBR22 and ASBR13 experiences a failure, and an | link between ASBR22 and ASBR13 experiences a failure and an alternate | |||
| alternate path exists. | path exists. | |||
| Assuming ASBR22_to_ASBR13 link goes down, such that traffic with Gold | Assuming the ASBR22_to_ASBR13 link goes down, traffic with a Gold SLA | |||
| SLA going to PE11 needs repair. ASBR22 has an alternate BGP CT route | going to PE11 will need repair. ASBR22 has an alternate BGP CT route | |||
| for 192.0.2.11:100:192.0.2.11 from ASBR14. This has been | for 192.0.2.11:100:192.0.2.11 from ASBR14. This has been | |||
| preprogrammed in forwarding by ASBR22 as FRR backup next hop for | preprogrammed in forwarding by ASBR22 as an FRR backup next hop for | |||
| label B-L4. This allows the Gold SLA traffic to be locally repaired | label B-L4. This allows the Gold SLA traffic to be locally repaired | |||
| at ASBR22 without the failure event propagated in the BGP CT network. | at ASBR22 without the failure event propagated in the BGP CT network. | |||
| In this case, ingress node PE25 will not know there was a failure, | In this case, ingress node PE25 will not know there was a failure, | |||
| and traffic restoration will be independent of prefix scale (PIC). | and traffic restoration will be independent of prefix scale (PIC). | |||
| 8.4.3. Absorbing Failure of Primary Path: Fallback to Best Effort | 8.4.3. Absorbing Failure of the Primary Path: Fallback to Best-Effort | |||
| Tunnels | Tunnels | |||
| This section describes how the data plane reacts when a Gold path | This section describes how the data plane reacts when a Gold path | |||
| experiences a failure, but no alternate path exists. | experiences a failure but no alternate path exists. | |||
| Assume tunnel ABR23_to_ASBR22_gold goes down, such that now no end- | Assume tunnel ABR23_to_ASBR22_gold goes down, such that now no end- | |||
| to-end Gold path exists in the network. This makes the BGP CT route | to-end Gold path exists in the network. This makes the BGP CT route | |||
| for RD prefix 192.0.2.11:100:192.0.2.11 is unusable at ABR23. This | for RD prefix 192.0.2.11:100:192.0.2.11 unusable at ABR23. This | |||
| makes ABR23 send a BGP withdrawal for 192.0.2.11:100:192.0.2.11 to | makes ABR23 send a BGP withdrawal for 192.0.2.11:100:192.0.2.11 to | |||
| PE25. | PE25. | |||
| The withdrawal for 192.0.2.11:100:192.0.2.11 allows PE25 to react to | The withdrawal for 192.0.2.11:100:192.0.2.11 allows PE25 to react to | |||
| the loss of the Gold path to 192.0.2.11. Assuming PE25 is | the loss of the Gold path to 192.0.2.11. Assuming PE25 is | |||
| provisioned to use best effort transport class as the backup path, | provisioned to use a Best-Effort Transport Class as the backup path, | |||
| this withdrawal of BGP CT route allows PE25 to adjust the next hop of | this withdrawal of a BGP CT route allows PE25 to adjust the next hop | |||
| the VPN Service-route to push the labels provided by the BGP LU | of the VPN service route to push the labels provided by the BGP LU | |||
| route. That repairs the traffic to go via the best effort path. | route. That repairs the traffic to go via the best-effort path. | |||
| PE25 can also be provisioned to use Bronze transport class as the | PE25 can also be provisioned to use the Bronze Transport Class as the | |||
| backup path. The repair will happen in similar manner in that case | backup path. The repair will happen in similar manner in that case | |||
| as-well. | as well. | |||
| Traffic repair to absorb the failure happens at ingress node PE25, in | Traffic repair to absorb the failure happens at ingress node PE25 in | |||
| a service prefix scale independent manner. This is called PIC. The | a service prefix scale independent manner (PIC). The repair time | |||
| repair time will be proportional to time taken for withdrawing the | will be proportional to time taken for withdrawing the BGP CT route. | |||
| BGP CT route. | ||||
| These examples demonstrate the various levels of failsafe mechanisms | These examples demonstrate the various levels of fail-safe mechanisms | |||
| available to protect traffic in a BGP CT network. | available to protect traffic in a BGP CT network. | |||
| 9. Scaling Considerations | 9. Scaling Considerations | |||
| 9.1. Avoiding Unintended Spread of BGP CT Routes Across Domains | 9.1. Avoiding Unintended Spread of BGP CT Routes Across Domains | |||
| [RFC8212] suggests BGP speakers require explicit configuration of | [RFC8212] suggests BGP speakers require explicit configuration of | |||
| both BGP Import and Export Policies in order to receive or send | both BGP Import and Export Policies in order to receive or send | |||
| routes over EBGP sessions. | routes over EBGP sessions. | |||
| It is recommended to follow this for BGP CT routes. It will | It is recommended to follow this for BGP CT routes. It will prohibit | |||
| prohibit unintended advertisement of transport routes throughout | unintended advertisement of transport routes throughout the BGP CT | |||
| the BGP CT transport domain, which may span across multiple AS | transport domain, which may span across multiple AS domains. This | |||
| domains. This will conserve usage of MPLS label and next hop | will conserve usage resources for MPLS labels and next hops in the | |||
| resources in the network. An ASBR of a domain can be provisioned | network. An ASBR of a domain can be provisioned to allow routes with | |||
| to allow routes with only the Transport Route Targets that are | only the Transport Class RTs that are required by SNs in the domain. | |||
| required by SNs in the domain. | ||||
| 9.2. Constrained Distribution of PNHs to SNs (On-Demand Next Hop) | 9.2. Constrained Distribution of PNHs to SNs (On-Demand Next Hop) | |||
| This section describes how the number of Protocol Next hops | This section describes how the number of Protocol Next Hops (PNHs) | |||
| advertised to a SN or BN can be constrained using BGP Classful | advertised to an SN or BN can be constrained using BGP Classful | |||
| Transport and Route Target Constrain (RTC) [RFC4684]. | Transport and RTC (see [RFC4684]. | |||
| An egress SN MAY advertise a BGP CT route for RD:eSN with two | An egress SN MAY advertise a BGP CT route for RD:eSN with two Route | |||
| Route Targets: transport-target:0:<TC> and a RT carrying | Targets: transport-target:0:<TC> and an RT carrying <eSN>:<TC>, where | |||
| <eSN>:<TC>, where TC is the Transport Class identifier, and eSN is | TC is the Transport Class identifier and eSN is the IP address used | |||
| the IP address used by SN as BGP next hop in its service route | by the SN as BGP next hop in its service route advertisements. | |||
| advertisements. | ||||
| Note that such use of the IP address specific route target | Note that such use of the IP-address-specific route target <eSN>:<TC> | |||
| <eSN>:<TC> is optional in a BGP CT network. It is required only | is optional in a BGP CT network. It is required only if there is a | |||
| if there is a requirement to prune the propagation of the | requirement to prune the propagation of the transport route for an | |||
| transport route for an egress node eSN to only the set of ingress | egress node eSN to only the set of ingress nodes that need it. When | |||
| nodes that need it. When only RT of transport-target:0:<TC> is | only the RT of transport-target:0:<TC> is used, the pruning happens | |||
| used, the pruning happens in granularity of Transport Class ID | in granularity of Transport Class ID (Color), not BGP next hop; a BGP | |||
| (Color), and not BGP next hop; a BGP CT route will only be | CT route will only be advertised into a domain with at least one PE | |||
| advertised into a domain with at least one PE that imports its | that imports its Transport Class. | |||
| transport class. | ||||
| The transport-target:0:<TC> is the new type of route target | The transport-target:0:<TC> is the new type of route target | |||
| (Transport Class RT) defined in this document. It is carried in | (Transport Class RT) defined in this document. It is carried in the | |||
| BGP extended community attribute (BGP attribute code 16). | BGP extended community attribute (attribute code 16). | |||
| The RT carrying <eSN>:<TC> MAY be an IP-address specific regular | The RT carrying <eSN>:<TC> MAY be an IP-address-specific regular RT | |||
| RT (BGP attribute code 16), or IPv6-address specific RT (BGP | (attribute code 16), or IPv6-address specific RT (attribute code 25). | |||
| attribute code 25). It should be noted that the Local | It should be noted that the Local Administrator field of these RTs | |||
| Administrator field of these RTs can only carry two octets of | can only carry two octets of information; thus, the <TC> field in | |||
| information, and thus the <TC> field in this approach is limited | this approach is limited to a 2-octet value. Future protocol | |||
| to a 2 octets value. Future protocol extensions work is needed to | extension work is needed to define a BGP CCA that can accommodate an | |||
| define a BGP CCA that can accomodate an IPv4/IPv6 address along | IPv4/IPv6 address along with a 4-octet Local Administrator field. | |||
| with a 4 octet Local Administrator field. | ||||
| An ingress SN MAY import BGP CT routes with Route Target carrying | An ingress SN MAY import BGP CT routes with a Route Target carrying | |||
| <eSN>:<TC>. The ingress SN may learn the eSN values either by | <eSN>:<TC>. The ingress SN may learn the eSN values by configuration | |||
| configuration, or it may discover them from the BGP next hop field | or it may discover them from the BGP next hop field in the BGP VPN | |||
| in the BGP VPN service routes received from eSN. A BGP ingress SN | service routes received from the eSN. A BGP ingress SN receiving a | |||
| receiving a BGP service route with next hop of eSN generates a RTC | BGP service route with a next hop of eSN generates an RTC route for | |||
| route for Route Target prefix <Origin ASN>:<eSN>/[80|176] in order | Route Target prefix <Origin ASN>:<eSN>/[80|176] in order to learn BGP | |||
| to learn BGP CT transport routes to reach eSN. This allows | CT transport routes to reach eSN. This allows constrained | |||
| constrained distribution of the transport routes to the PNHs | distribution of the transport routes to the PNHs actually required by | |||
| actually required by iSN. | iSN. | |||
| When RTC is in use as described here, BGP CT routes will be | When RTC is in use, as described here, BGP CT routes will be | |||
| constrained to follow the same path of propagation as the RTC | constrained to follow the same path of propagation as the RTC routes. | |||
| routes. Therefore, a BN would learn the RTC routes advertised by | Therefore, a BN would learn the RTC routes advertised by ingress SNs | |||
| ingress SNs and propagate further. This will allow constraining | and propagate further. This will allow constraining distribution of | |||
| distribution of BGP CT routes for a PNH to only the necessary BNs | BGP CT routes for a PNH to only the necessary BNs in the network, | |||
| in the network, closer to the egress SN. | closer to the egress SN. | |||
| When the path of route propagation of BGP CT routes is the same as | When the path of route propagation of BGP CT routes is the same as | |||
| the RTC routes, a BN would learn the RTC routes advertised by | the RTC routes, a BN would learn the RTC routes advertised by ingress | |||
| ingress SNs and propagate further. This will allow constraining | SNs and propagate further. This will allow constraining distribution | |||
| distribution of BGP CT routes for a PNH to only the necessary BNs | of BGP CT routes for a PNH to only the necessary BNs in the network, | |||
| in the network, closer to the egress SN. | closer to the egress SN. | |||
| This mechanism provides "On Demand Next hop" of BGP CT routes, | This mechanism provides "On-Demand Next Hop" of BGP CT routes, which | |||
| which help with the scaling of MPLS forwarding state at SN and BN. | helps with the scaling of MPLS forwarding state at the SN and BN. | |||
| However, the amount of state carried in RTC family may become | However, the amount of state carried in RTC family may become | |||
| proportional to the number of PNHs in the network. To strike a | proportional to the number of PNHs in the network. To strike a | |||
| balance, the RTC route advertisements for <Origin | balance, the RTC route advertisements for <Origin ASN>:<eSN>/[80|176] | |||
| ASN>:<eSN>/[80|176] MAY be confined to the BNs in the home region | MAY be confined to the BNs in the home region of an ingress SN, or | |||
| of an ingress SN, or the BNs of a super core. | the BNs of a super core. | |||
| Such a BN in the core of the network imports BGP CT routes with | Such a BN in the core of the network imports BGP CT routes with | |||
| Transport-Target:0:<TC> and generates an RTC route for <Origin | Transport-Target:0:<TC> and generates an RTC route for <Origin | |||
| ASN>:0:<TC>/96, while not propagating the more specific RTC | ASN>:0:<TC>/96, while not propagating the more specific RTC requests | |||
| requests for specific PNHs. This lets the BN learn transport | for specific PNHs. This lets the BN learn transport routes to all | |||
| routes to all eSN nodes but confine their propagation to ingress | eSN nodes but confines their propagation to ingress SNs. | |||
| SNs. | ||||
| 9.3. Limiting The Visibility Scope of PE Loopback as PNHs | 9.3. Limiting the Visibility Scope of PE Loopback as PNHs | |||
| It may be even more desirable to limit the number of PNHs that are | It may be even more desirable to limit the number of PNHs that are | |||
| globally visible in the network. This is possible using mechanism | globally visible in the network. This is possible using the | |||
| described in Appendix D, such that advertisement of PE loopback | mechanism described in Appendix D. | |||
| addresses as next-hop in BGP service routes is confined to the | ||||
| region they belong to. An anycast IP-address called "Context | ||||
| Protocol Nexthop Address" (CPNH) abstracts the SNs in a region | ||||
| from other regions in the network. | ||||
| Such that advertisement of PE loopback addresses as next-hop in | Such that advertisement of PE loopback addresses as next hop in BGP | |||
| BGP service routes is confined to the region they belong to. An | service routes is confined to the region they belong to. An anycast | |||
| anycast IP-address called "Context Protocol Nexthop Address" | IP-address called "Context Protocol Nexthop Address" (CPNH) abstracts | |||
| (CPNH) abstracts the SNs in a region from other regions in the | the SNs in a region from other regions in the network. | |||
| network. | ||||
| This provides much greater advantage in terms of scaling, | This provides much greater advantage in terms of scaling, convergence | |||
| convergence and security. Changes to implement this feature are | and security. Changes to implement this feature are required only on | |||
| required only on the local region's BNs and RRs, so legacy PE | the local region's BNs and RRs, so legacy PE devices can also benefit | |||
| devices can also benefit from this approach. | from this approach. | |||
| 10. Operations and Manageability Considerations | 10. Operations and Manageability Considerations | |||
| 10.1. MPLS OAM | 10.1. MPLS OAM | |||
| MPLS OAM procedures specified in [RFC8029] also apply to BGP Classful | MPLS Operations, Administration, and Maintenance (OAM) procedures | |||
| Transport. | specified in [RFC8029] also apply to BGP CT. | |||
| The 'Target FEC Stack' sub-TLV for IPv4 Classful Transport has a Sub- | The Target FEC Stack sub-TLV for IPv4 BGP CT has a Sub-Type of 31744 | |||
| Type of 31744, and a length of 13. The Value field consists of the | and a length of 13. The Value field consists of the RD advertised | |||
| RD advertised with the Classful Transport prefix, the IPv4 prefix | with the BGP CT prefix, the IPv4 prefix (with trailing 0 bits to make | |||
| (with trailing 0 bits to make 32 bits in all) and a prefix length | 32 bits in all), and a prefix length encoded as shown in Figure 4. | |||
| encoded as shown in Figure 4. | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Route Distinguisher | | | Route Distinguisher | | |||
| | (8 octets) | | | (8 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv4 prefix | | | IPv4 prefix | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Prefix Length | Must Be Zero | | | Prefix Length | Must Be Zero | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: Classful Transport IPv4 FEC | Figure 4: BGP CT IPv4 FEC | |||
| The 'Target FEC Stack' sub-TLV for IPv6 Classful Transport has a Sub- | The Target FEC Stack sub-TLV for IPv6 BGP CT has a Sub-Type of 31745 | |||
| Type of 31745, and a length of 25. The Value field consists of the | and a length of 25. The Value field consists of the RD advertised | |||
| RD advertised with the Classful Transport prefix, the IPv6 prefix | with the BGP CT prefix, the IPv6 prefix (with trailing 0 bits to make | |||
| (with trailing 0 bits to make 128 bits in all) and a prefix length | 128 bits in all) and a prefix length encoded as shown in Figure 5. | |||
| encoded as shown in Figure 5. | ||||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Route Distinguisher | | | Route Distinguisher | | |||
| | (8 octets) | | | (8 octets) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IPv6 prefix | | | IPv6 prefix | | |||
| | | | | | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Prefix Length | Must Be Zero | | | Prefix Length | Must Be Zero | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 5: Classful Transport IPv6 FEC | Figure 5: BGP CT IPv6 FEC | |||
| These prefix layouts are inherited from Sections 3.2.5, 3.2.6 in | These prefix layouts are inherited from Sections 3.2.5 and 3.2.6 of | |||
| [RFC8029] | [RFC8029]. | |||
| 10.2. Usage of Route Distinguisher and Label Allocation Modes | 10.2. Usage of RD and Label-Allocation Modes | |||
| RDs aid in troubleshooting provider networks that deploy BGP CT, by | RDs aid in troubleshooting provider networks that deploy BGP CT, by | |||
| uniquely identifying the originator of a route across an | uniquely identifying the originator of a route across an | |||
| administrative domain that may either span multiple domains within a | administrative domain that may either span multiple domains within a | |||
| provider network or span closely coordinated provider networks. | provider network or span closely coordinated provider networks. | |||
| The use of RDs also provides an option for signaling forwarding | The use of RDs also provides an option for signaling forwarding | |||
| diversity within the same Transport Class. A SN can advertise an EP | diversity within the same Transport Class. An SN can advertise an EP | |||
| with the same Transport Class in multiple BGP CT routes with unique | with the same Transport Class in multiple BGP CT routes with unique | |||
| RDs. | RDs. | |||
| For example, unique "RDx:EP1" prefixes can be advertised by an SN for | For example, unique "RDx:EP1" prefixes can be advertised by an SN for | |||
| an EP1 to different upstream BNs with unique forwarding specific | an EP1 to different upstream BNs with unique forwarding-specific | |||
| encapsulation (e.g., Label), in order to collect traffic statistics | encapsulation (e.g., a Label) in order to collect traffic statistics | |||
| at the SN for each BN. In absence of RD, duplicated Transport Class/ | at the SN for each BN. In the absence of an RD, duplicated Transport | |||
| Color values will be needed in the transport network to achieve such | Class / Color values will be needed in the transport network to | |||
| use cases. | achieve such use cases. | |||
| The allocation of RDs is done at the point of origin of the BGP CT | The allocation of RDs is done at the point of origin of the BGP CT | |||
| route. This can either be an Egress SN or a BN. The default RD | route. This can be either an egress SN or a BN. The default RD | |||
| allocation mode is to use a unique RD per originating node for an EP. | allocation mode is to use a unique RD per originating node for an EP. | |||
| This mode allows for the ingress to uniquely identify each originated | This mode allows for the ingress to uniquely identify each originated | |||
| path. Alternatively, the same RD may be provisioned for multiple | path. Alternatively, the same RD may be provisioned for multiple | |||
| originators of the same EP. This mode can be used when the ingress | originators of the same EP. This mode can be used when the ingress | |||
| does not require full visibility of all nodes originating an EP. | does not require full visibility of all nodes originating an EP. | |||
| A label is allocated for a BGP CT route when it is advertised with | A label is allocated for a BGP CT route when it is advertised with | |||
| next hop self by a SN or a BN. An implementation may use different | the next hop set to itself by an SN or a BN. An implementation may | |||
| label allocation modes with BGP CT. The recommended label allocation | use different label-allocation modes with BGP CT. Per-prefix is the | |||
| mode is per-prefix as it provides better traffic convergence | recommended label-allocation mode as it provides better traffic | |||
| properties than per-next hop label allocation mode. Furthermore, BGP | convergence properties than a per-NH label-allocation mode. | |||
| CT offers two flavors for per-prefix label allocation. The first | Furthermore, BGP CT offers two flavors for per-prefix label | |||
| flavor assigns a label for each unique "RD, EP". The second flavor | allocation: | |||
| assigns a label for each unique "Transport Class, EP" while ignoring | ||||
| the RD. | ||||
| In a BGP CT network, the number of routes at an Ingress PE is a | * The first flavor assigns a label for each unique "RD, EP". | |||
| * The second flavor assigns a label for each unique "Transport | ||||
| Class, EP" while ignoring the RD. | ||||
| In a BGP CT network, the number of routes at an ingress PE is a | ||||
| function of unique EPs multiplied by BNs in the ingress domain that | function of unique EPs multiplied by BNs in the ingress domain that | |||
| do next hop self. BGP CT provides flexible RD and Label allocation | have the next hop set to themselves. BGP CT provides flexible RD and | |||
| modes to address operational requirements in a multi-domain network. | label-allocation modes to address operational requirements in a | |||
| The impacts on the control plane and forwarding behavior for these | multi-domain network. The impacts on the control plane and | |||
| modes are detailed with an example in Managing Transport Route | forwarding behavior for these modes are detailed with an example in | |||
| Visibility (Section 10.3) | Section 10.3. | |||
| 10.3. Managing Transport Route Visibility | 10.3. Managing Transport-Route Visibility | |||
| This section details the usage of BGP CT RD and label allocation | This section details the usage of BGP CT RD and label-allocation | |||
| modes to calibrate the level of path visibility and the amount of | modes to calibrate the level of path visibility and the amount of | |||
| route and label scale in a multi-domain network. | route and label scale in a multi-domain network. | |||
| Consider a multi-domain BGP CT network as illustrated in the | Consider a multi-domain BGP CT network as illustrated in the | |||
| following Figure 6: | following Figure 6: | |||
| ...................... ............................. | ...................... ............................. | |||
| : AS3 : : AS1 : | : AS3 : : AS1 : | |||
| : : : : | : : : : | |||
| : +----------ASBR11 +--PE11 (EP1) : | : +----------ASBR11 +--PE11 (EP1) : | |||
| skipping to change at page 42, line 28 ¶ | skipping to change at line 1912 ¶ | |||
| : | +----------ASBR21 +--PE21 (EP5) : | : | +----------ASBR21 +--PE21 (EP5) : | |||
| : | | : : \ / : | : | | : : \ / : | |||
| : +----ASBR32 : : [P]----PE22 (EP6) : | : +----ASBR32 : : [P]----PE22 (EP6) : | |||
| : | : : / | \ : | : | : : / | \ : | |||
| : +----------ASBR22 | +--PE22 (EP7) : | : +----------ASBR22 | +--PE22 (EP7) : | |||
| : : : | : | : : : | : | |||
| : : : +-----PE24 (EP8) : | : : : +-----PE24 (EP8) : | |||
| ...................... ............................. | ...................... ............................. | |||
| ----------- Traffic Direction --------> | ----------- Traffic Direction --------> | |||
| Figure 6: Managing Transport Route Visibility in Multi Domain Network | Figure 6: Managing Transport-Route Visibility in Multi-Domain | |||
| Networks | ||||
| The following table provides a comparison of the BGP CT route and | The following table provides a comparison of the BGP CT route and | |||
| label scale, for varying endpoint path visibility at ingress node | label scale for varying endpoint-path visibility at ingress node PE31 | |||
| PE31 for each TC. It analyzes scenarios where Unicast or Anycast EPs | for each TC. It analyzes scenarios where Unicast or Anycast EPs (EP- | |||
| (EP-type) may be originated by different node roles (Origin), using | type) may be originated by different node roles (Origin), using | |||
| different RD allocation modes (RD-Mode), and different Per-Prefix | different RD allocation modes (RD-Modes), and different Per-Prefix | |||
| Label allocation modes (PP-Mode). | label-allocation modes (PP-Modes). | |||
| +--------+------+-------+-------+---------+---------+ | +--------+------+-------+-------+---------+---------+ | |||
| |EP-type |Origin|RD-Mode|PP-Mode|CT Routes|CT Labels| | |EP-type |Origin|RD-Mode|PP-Mode|CT Routes|CT Labels| | |||
| +--------+------+-------+-------+---------+---------+ | +--------+------+-------+-------+---------+---------+ | |||
| |Unicast |SN |Unique |TC,EP | 8 | 8 | | |Unicast |SN |Unique |TC,EP | 8 | 8 | | |||
| |Unicast |SN |Unique |RD,EP | 8 | 8 | | |Unicast |SN |Unique |RD,EP | 8 | 8 | | |||
| |Unicast |BN |Unique |TC,EP | 16 | 8 | | |Unicast |BN |Unique |TC,EP | 16 | 8 | | |||
| |Unicast |BN |Unique |RD,EP | 16 | 16 | | |Unicast |BN |Unique |RD,EP | 16 | 16 | | |||
| |--------|------|-------|-------|---------|---------| | |--------|------|-------|-------|---------|---------| | |||
| |Anycast |SN |Unique |TC,EP | 8 | 2 | | |Anycast |SN |Unique |TC,EP | 8 | 2 | | |||
| skipping to change at page 43, line 25 ¶ | skipping to change at line 1942 ¶ | |||
| |Anycast |SN |Same |TC,EP | 2 | 2 | | |Anycast |SN |Same |TC,EP | 2 | 2 | | |||
| |Anycast |SN |Same |RD,EP | 2 | 2 | | |Anycast |SN |Same |RD,EP | 2 | 2 | | |||
| |Anycast |BN |Unique |TC,EP | 4 | 2 | | |Anycast |BN |Unique |TC,EP | 4 | 2 | | |||
| |Anycast |BN |Unique |RD,EP | 4 | 4 | | |Anycast |BN |Unique |RD,EP | 4 | 4 | | |||
| |Anycast |BN |Same |TC,EP | 2 | 2 | | |Anycast |BN |Same |TC,EP | 2 | 2 | | |||
| |Anycast |BN |Same |RD,EP | 2 | 2 | | |Anycast |BN |Same |RD,EP | 2 | 2 | | |||
| +--------+------+-------+-------+---------+---------+ | +--------+------+-------+-------+---------+---------+ | |||
| Figure 7: Route and Path Visibility at Ingress Node | Figure 7: Route and Path Visibility at Ingress Node | |||
| In the table shown in Figure 7, route scale at ingress node PE31 is | In Figure 7, route scale at ingress node PE31 is proportional to path | |||
| proportional to path diversity in ingress domain (number of ASBRs) | diversity in the ingress domain (number of ASBRs) and point of | |||
| and point of origination of BGP CT route. TE granularity at ingress | origination of the BGP CT route. TE granularity at ingress node PE31 | |||
| node PE31 is proportional to the number of unique CT labels received, | is proportional to the number of unique CT labels received, which | |||
| which depends on PP-mode and the path diversity in ingress domain. | depends on the PP-Mode and the path diversity in the ingress domain. | |||
| Deploying unique RDs is strongly RECOMMENDED because it helps in | Deploying unique RDs is strongly RECOMMENDED because it helps in | |||
| troubleshooting by uniquely identifying the originator of a route and | troubleshooting by uniquely identifying the originator of a route and | |||
| avoids path-hiding. | avoids path hiding. | |||
| In typical deployments originating BGP CT routes at the egress node | In typical deployments, originating BGP CT routes at the egress node | |||
| (SN) is recommended. In this model, using either "RD, EP" or "TC, | (SN) is recommended. In this model, using either an "RD, EP" or "TC, | |||
| EP" Per-Prefix label allocation mode repairs traffic locally at the | EP" Per-Prefix label-allocation mode repairs traffic locally at the | |||
| nearest BN for any failures in the network, because the label value | nearest BN for any failures in the network because the label value | |||
| does not change. | does not change. | |||
| Originating at BNs with unique RDs induces more routes than when | Originating at BNs with unique RDs induces more routes than when | |||
| originating at egress SNs. In this model, use of "TC, EP" Per-Prefix | originating at egress SNs. In this model, use of the "TC, EP" Per- | |||
| label allocation mode repairs traffic locally at the nearest BN for | Prefix label-allocation mode repairs traffic locally at the nearest | |||
| any failures in the network, because the label value does not change. | BN for any failures in the network because the label value does not | |||
| change. | ||||
| The previous table in Figure 7 demonstrates that BGP CT allows an | Figure 7 demonstrates that BGP CT allows an operator to control how | |||
| operator to control how much path visibility and forwarding diversity | much path visibility and forwarding diversity is desired in the | |||
| is desired in the network, for both Unicast and Anycast endpoints. | network for both Unicast and Anycast endpoints. | |||
| 11. Deployment Considerations. | 11. Deployment Considerations | |||
| 11.1. Coordination Between Domains Using Different Community Namespaces | 11.1. Coordination Between Domains Using Different Community Namespaces | |||
| Cooperating Inter-AS Option C domains may sometimes not agree on RT, | Cooperating inter-AS option C domains may sometimes not agree on RT, | |||
| RD, Mapping community or Transport Route Target values because of | RD, Mapping Community, or Transport Class RT values because of | |||
| differences in community namespaces (e.g. during network mergers or | differences in community namespaces (e.g., during network mergers or | |||
| renumbering for expansion). Such deployments may deploy mechanisms | renumbering for expansion). Such deployments may deploy mechanisms | |||
| to map and rewrite the Route Target values on domain boundaries, | to map and rewrite the Route Target values on domain boundaries using | |||
| using per ASBR import policies. This is no different than any other | per-ASBR import policies. This is no different than any other BGP | |||
| BGP VPN family. Mechanisms used in inter-AS VPN deployments may be | VPN family. Mechanisms used in inter-AS VPN deployments may be | |||
| leveraged with the Classful Transport family also. | leveraged with the BGP CT family also. | |||
| A resolution scheme allows association with multiple Mapping | A Resolution Scheme allows association with multiple Mapping | |||
| Communities. This minimizes service disruption during renumbering, | Communities. This minimizes service disruption during renumbering, | |||
| network merger or transition scenarios. | network merger, or transition scenarios. | |||
| The Transport Class Route Target Extended Community is useful to | The Transport Class RT is useful to avoid collision with regular | |||
| avoid collision with regular Route Target namespace used by service | Route Target namespace used by service routes. | |||
| routes. | ||||
| 11.2. Managing Intent at Service and Transport layers. | 11.2. Managing Intent at Service and Transport Layers | |||
| Illustration of BGP CT Procedures (Section 8) shows multiple domains | Section 8 shows multiple domains that agree on a color namespace | |||
| that agree on a color name space (Agreeing Color Domains) and contain | (Agreeing Color Domains) and contain tunnels with an equivalent set | |||
| tunnels with equivalent set of colors (Homogenous Color Domains). | of colors (Homogenous Color Domains). | |||
| However, in the real world, this may not always be guaranteed. Two | However, in the real world, this may not always be guaranteed. Two | |||
| domains may independently manage their color namespaces; these are | domains may independently manage their color namespaces; these are | |||
| known as Non-Agreeing Color Domains. Two domains may have tunnels | known as Non-Agreeing Color Domains. Two domains may have tunnels | |||
| with unequal sets of colors; these are known as Heterogeneous Color | with unequal sets of colors; these are known as Heterogeneous Color | |||
| Domains. | Domains. | |||
| This section describes how BGP CT is deployed in such scenarios to | This section describes how BGP CT is deployed in such scenarios to | |||
| preserve end-to-end Intent. Examples described in this section use | preserve end-to-end Intent. Examples described in this section use | |||
| Inter-AS Option C domains. Similar mechanisms will work for Inter-AS | inter-AS option C domains. Similar mechanisms will work for inter-AS | |||
| Option A and Inter-AS Option B scenarios as well. | option A and inter-AS option B scenarios as well. | |||
| 11.2.1. Service Layer Color Management | 11.2.1. Service Layer Color Management | |||
| At the service layer, it is recommended that a global color namespace | At the service layer, it is recommended that a global color namespace | |||
| be maintained across multiple co-operating domains. BGP CT allows | be maintained across multiple cooperating domains. BGP CT allows | |||
| indirection using resolution schemes to be able to maintain a global | indirection using Resolution Schemes to be able to maintain a global | |||
| namespace in the service layer. This is possible even if each domain | namespace in the service layer. This is possible even if each domain | |||
| independently maintains its own local transport color namespace. | independently maintains its own local transport color namespace. | |||
| As explained in Next Hop Resolution Scheme (Section 5) , a mapping | As explained in Section 5, a Mapping Community carried on a service | |||
| community carried on a service route maps to a resolution scheme. | route maps to a Resolution Scheme. The Mapping Community values for | |||
| The mapping community values for the service route can be abstract | the service route can be abstract and are not required to match the | |||
| and are not required to match the transport color namespace. This | transport color namespace. This abstract Mapping Community value | |||
| abstract mapping community value representing a global service layer | representing a global service layer Intent is mapped to a local | |||
| intent is mapped to a local transport layer intent available in each | transport layer Intent available in each domain. | |||
| domain. | ||||
| In this manner, it is recommended to keep color namespace management | In this manner, it is recommended to keep color namespace management | |||
| at the service layer and the transport layer decoupled from each | at the service layer and the transport layer decoupled from each | |||
| other. In the following sections the service layer agrees on a | other. In the following sections, the service layer agrees on a | |||
| single global namespace. | single global namespace. | |||
| 11.2.2. Non-Agreeing Color Transport Domains | 11.2.2. Non-Agreeing Color Transport Domains | |||
| Non-agreeing color domains require a mapping community rewrite on | Non-Agreeing Color Domains require a Mapping Community rewrite on | |||
| each domain boundary. This rewrite helps to map one domain's color | each domain boundary. This rewrite helps to map one domain's color | |||
| namespace to another domain's color namespace. | namespace to another domain's color namespace. | |||
| The following example illustrates how traffic is stitched and SLA is | The following example illustrates how traffic is stitched and SLA is | |||
| preserved when domains don't use the same namespace at the transport | preserved when domains don't use the same namespace at the transport | |||
| layer. Each domain specifies the same SLA using different color | layer. Each domain specifies the same SLA using different color | |||
| values. | values. | |||
| ..................... ....................... ...................... | ..................... ....................... ..................... | |||
| : Gold(100) : : Gold(300) : : Gold(500) : | : Gold(100) : : Gold(300) : : Gold(500) : | |||
| : : : : : : | : : : : : : | |||
| : [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31-------[PE31]: | : [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31------[PE31]: | |||
| : : : : : : | : : : : : : | |||
| : AS1 : : AS2 : : AS3 : | : AS1 : : AS2 : : AS3 : | |||
| : : : : : : | : : : : : : | |||
| : Bronze(200) : : Bronze(400) : : Bronze(600) : | : Bronze(200) : : Bronze(400) : : Bronze(600) : | |||
| ..................... ....................... ...................... | ..................... ....................... ..................... | |||
| ----------- Traffic Direction --------> | ----------- Traffic Direction --------> | |||
| Figure 8: Transport Layer with Non-agreeing Color Domains | Figure 8: Transport Layer with Non-agreeing Color Domains | |||
| In the topology shown in Figure 8, we have three Autonomous Systems. | In the topology shown in Figure 8, we have three Autonomous Systems. | |||
| All the nodes in the topology support BGP CT. | All the nodes in the topology support BGP CT. | |||
| In AS1 Gold SLA is represented by color 100 and Bronze by 200. | * In AS1, the Gold SLA is represented by color 100 and Bronze by | |||
| 200. | ||||
| In AS2 Gold SLA is represented by color 300 and Bronze by 400. | * In AS2, the Gold SLA is represented by color 300 and Bronze by | |||
| 400. | ||||
| In AS3 Gold SLA is represented by color 500 and Bronze by 600. | * In AS3, the Gold SLA is represented by color 500 and Bronze by | |||
| 600. | ||||
| Though the color values are different, they map to tunnels with | Though the color values are different, they map to tunnels with | |||
| sufficiently similar TE characteristics in each domain. | sufficiently similar TE characteristics in each domain. | |||
| The service route carries an abstract mapping community that maps to | The service route carries an abstract Mapping Community that maps to | |||
| the required SLA. For example, Service routes that need to resolve | the required SLA. For example, service routes that need to resolve | |||
| over Gold transport tunnels, carry a mapping community | over Gold transport tunnels carry a Mapping Community color:0:100500. | |||
| color:0:100500. In AS3 it maps to a resolution scheme containing | In AS3, it maps to a Resolution Scheme containing TRDB with color | |||
| TRDB with color 500 whereas in AS2 it maps to a TRDB with color 300 | 500; in AS2, it maps to TRDB with color 300; and in AS1, it maps to | |||
| and in AS1 it maps to a TRDB with color 100. Coordination is needed | TRDB with color 100. Coordination is needed to provision the | |||
| to provision the resolution schemes in each domain as explained | Resolution Schemes in each domain, as explained previously. | |||
| previously. | ||||
| At the AS boundary, the transport-class route-target is rewritten for | At the AS boundary, the Transport Class RT is rewritten for the BGP | |||
| the BGP CT routes. In the previous topology, at ASBR31, the | CT routes. In the previous topology, at ASBR31, the transport- | |||
| transport-target:0:500 for Gold tunnels is rewritten to transport- | target:0:500 for Gold tunnels is rewritten to transport-target:0:300 | |||
| target:0:300 and then advertised to ASBR22. Similarly, the | and then advertised to ASBR22. Similarly, the transport-target:0:300 | |||
| transport-target:0:300 for Gold tunnels are re-written to transport- | for Gold tunnels are rewritten to transport-target:0:100 at ASBR21 | |||
| target:0:100 at ASBR21 before advertising to ASBR11. At PE11, the | before advertising to ASBR11. At PE11, the transport route received | |||
| transport route received with transport-target:0:100 will be added to | with transport-target:0:100 will be added to the color 100 TRDB. The | |||
| the color 100 TRDB. The service route received with mapping | service route received with Mapping Community color:0:100500 at PE1 | |||
| community color:0:100500 at PE1 maps to the Gold TRDB and resolves | maps to the Gold TRDB and resolves over this transport route. | |||
| over this transport route. | ||||
| Inter-domain traffic forwarding in the previous topology works as | Inter-domain traffic forwarding in the previous topology works as | |||
| explained in Section 8. | explained in Section 8. | |||
| Transport-target re-write requires co-ordination of color values | Transport Class RT rewrite requires coordination of color values | |||
| between domains in the transport layer. This method avoids the need | between domains in the transport layer. This method avoids the need | |||
| to re-write service route mapping communities, keeping the service | to rewrite service route mapping communities, keeping the service | |||
| layer homogenous and simple to manage. Coordinating Transport Class | layer homogenous and simple to manage. Coordinating Transport Class | |||
| RT between two adjacent color domains at a time is easier than | RT between two adjacent color domains at a time is easier than | |||
| coordinating service layer colors deployed in a global mesh of non- | coordinating service layer colors deployed in a global mesh of non- | |||
| adjacent color domains. This basically allows localizing the problem | adjacent color domains. This basically allows localizing the problem | |||
| to a pair of adjacent color domains and solving it. | to a pair of adjacent color domains and solving it. | |||
| 11.2.3. Heterogeneous Agreeing Color Transport Domains | 11.2.3. Heterogeneous Agreeing Color Transport Domains | |||
| In a heterogeneous domains scenario, it might not be possible to map | In a heterogeneous-domain scenario, it might not be possible to map a | |||
| a service layer intent to the matching transport color, as the color | service layer Intent to the matching transport color, as the color | |||
| might not be locally available in a domain. | might not be locally available in a domain. | |||
| The following example illustrates how traffic is stitched, when a | The following example illustrates how traffic is stitched when a | |||
| transit AS contains more shades for an SLA path compared to Ingress | transit AS contains more shades for an SLA path compared to ingress | |||
| and Egress domains. This example shows how service routes can | and egress domains. This example shows how service routes can | |||
| traverse through finer shades when available and take coarse shades | traverse through finer shades when available and take coarse shades | |||
| otherwise. | otherwise. | |||
| ..................... ....................... ...................... | ..................... ....................... ..................... | |||
| : : : Gold1(101) : : : | : : : Gold1(101) : : : | |||
| : Gold(100) : : Gold2(102) : : Gold(100) : | : Gold(100) : : Gold2(102) : : Gold(100) : | |||
| : : : : : : | : : : : : : | |||
| : [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31-------[PE31]: | : [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31------[PE31]: | |||
| : : : : : : | : : : : : : | |||
| : Metro Ingress : : Core : : Metro Egress : | : Metro Ingress : : Core : : Metro Egress : | |||
| : : : : : : | : : : : : : | |||
| : AS1 : : AS2 : : AS3 : | : AS1 : : AS2 : : AS3 : | |||
| ..................... ....................... ...................... | ..................... ....................... ..................... | |||
| ----------- Traffic Direction --------> | ----------- Traffic Direction --------> | |||
| Figure 9: Transport Layer with Heterogenous Color Domains | Figure 9: Transport Layer with Heterogeneous Color Domains | |||
| In the preceding topology shown in Figure 9, we have three Autonomous | In Figure 9, we have three Autonomous Systems. All the nodes in the | |||
| Systems. All the nodes in the topology support BGP CT. | topology support BGP CT. | |||
| In AS1 Gold SLA is represented by color 100. | * In AS1, the Gold SLA is represented by color 100. | |||
| In AS2 Gold has finer shades: Gold1 by color 101 and Gold2 by color | * In AS2, Gold has finer shades: Gold1 by color 101 and Gold2 by | |||
| 102. | color 102. | |||
| In AS3 Gold SLA is represented by color 100. | * In AS3, the Gold SLA is represented by color 100. | |||
| This problem can be solved by the two following approaches: | This problem can be solved by the two approaches described in | |||
| Sections 11.2.3.1 and 11.2.3.2. | ||||
| 11.2.3.1. Duplicate Tunnels Approach | 11.2.3.1. Duplicate Tunnels Approach | |||
| In this approach, duplicate tunnels that satisfy Gold SLA are | In this approach, duplicate tunnels that satisfy the Gold SLA are | |||
| configured in domains AS1 and AS3, but they are given fine grained | configured in domains AS1 and AS3, but they are given fine-grained | |||
| colors 101 and 102. | colors 101 and 102. | |||
| These tunnels will be installed in TRDBs corresponding to transport | These tunnels will be installed in TRDBs corresponding to transport | |||
| classes of color 101 and 102. | classes of colors 101 and 102. | |||
| Overlay routes received with mapping community (e.g.: transport- | Overlay routes received with a Mapping Community (e.g., transport- | |||
| target or color community) can resolve over these tunnels in the TRDB | target or color community) can resolve over these tunnels in the TRDB | |||
| with matching color by using resolution schemes. | with matching colors by using Resolution Schemes. | |||
| This approach consumes more resources in the transport and forwarding | This approach consumes more resources in the transport and forwarding | |||
| layer, because of the duplicate tunnels. | layer because of the duplicate tunnels. | |||
| 11.2.3.2. Customized Resolution Schemes Approach | 11.2.3.2. Customized Resolution Schemes Approach | |||
| In this approach, resolution schemes in domains AS1 and AS3 are | In this approach, Resolution Schemes in domains AS1 and AS3 are | |||
| customized to map the received mapping community (e.g., transport- | customized to map the received Mapping Community (e.g., transport- | |||
| target or color community) over available Gold SLA tunnels. This | target or color community) over available Gold SLA tunnels. This | |||
| conserves resource usage with no additional state in the transport or | conserves resource usage with no additional state in the transport or | |||
| forwarding planes. | forwarding planes. | |||
| Service routes advertised by PE31 that need to resolve over Gold1 | Service routes advertised by PE31 that need to resolve over Gold1 | |||
| transport tunnels carry a mapping community color:0:101. In AS3 and | transport tunnels carry a Mapping Community color:0:101. In AS3 and | |||
| AS1, where Gold1 is not available, it is mapped to color 100 TRDB | AS1, where Gold1 is not available, it is mapped to color 100 TRDB | |||
| using a customized resolution scheme. In AS2, Gold1 is available and | using a customized Resolution Scheme. In AS2, Gold1 is available, | |||
| it maps to color 101 TRDB. | and it maps to color 101 TRDB. | |||
| Similarly, service routes advertised by PE31 that need to resolve | Similarly, service routes advertised by PE31 that need to resolve | |||
| over Gold2 transport tunnels carry a mapping community color:0:102. | over Gold2 transport tunnels carry a Mapping Community color:0:102. | |||
| In AS3 and AS1, where Gold2 is not available, it is mapped to color | In AS3 and AS1, where Gold2 is not available, it is mapped to color | |||
| 100 TRDB using a customized resolution scheme. In AS2, Gold2 is | 100 TRDB using a customized Resolution Scheme. In AS2, Gold2 is | |||
| available and it maps to color 102 TRDB. | available, and it maps to color 102 TRDB. | |||
| To facilitate this, SN/BN in all three AS provision the transport | To facilitate this, SNs/BNs in all three ASes provision the transport | |||
| classes 100, 101 and 102. SN and BN in AS1 and AS3 are provisioned | classes 100, 101, and 102. SNs and BNs in AS1 and AS3 are | |||
| with customized resolution schemes that resolve routes with | provisioned with customized Resolution Schemes that resolve routes | |||
| transport-target:0:101 or transport-target:0:102 using color 100 | with transport-target:0:101 or transport-target:0:102 using color 100 | |||
| TRDB. | TRDB. | |||
| PE31 is provisioned to originate BGP CT route with color 101 for | PE31 is provisioned to originate BGP CT routes with color 101 for | |||
| endpoint PE31. This route is sent with NLRI RD prefix RD1:PE31 and | endpoint PE31. This route is sent with an NLRI RD prefix RD1:PE31 | |||
| route target extended community transport-target:0:101. | and Route Target extended community transport-target:0:101. | |||
| Similarly, PE31 is provisioned to originate BGP CT route with color | Similarly, PE31 is provisioned to originate BGP CT routes with color | |||
| 102 for endpoint PE31. This route is sent with NLRI RD prefix | 102 for endpoint PE31. This route is sent with an NLRI RD prefix | |||
| RD2:PE31 and route target extended community transport-target:0:102. | RD2:PE31 and Route Target extended community transport-target:0:102. | |||
| Following description explains the remaining procedures with color | The following description explains the remaining procedures with | |||
| 101 as example. | color 101 as an example. | |||
| At ASBR31, the route target "transport-target:0:101" on this BGP CT | At ASBR31, the Route Target role of transport-target:0:101 on this | |||
| route instructs to add the route to color 101 TRDB. ASBR31 is | BGP CT route gives instruction to add the route to color 101 TRDB. | |||
| provisioned with customized resolution scheme that resolves the | ASBR31 is provisioned with a customized Resolution Scheme that | |||
| routes carrying mapping community transport-target:0:101 to resolve | resolves the routes carrying Mapping Community transport-target:0:101 | |||
| using color 100 TRDB. This route is then re-advertised from color | to resolve using color 100 TRDB. This route is then readvertised | |||
| 101 TRDB to ASBR22 with route-target:0:101. | from color 101 TRDB to ASBR22 with route-target:0:101. | |||
| At ASBR22, the BGP CT routes received with transport-target:0:101 | At ASBR22, the BGP CT routes received with transport-target:0:101 | |||
| will be added to color 101 TRDB and strictly resolve over tunnel | will be added to color 101 TRDB and strictly resolve over tunnel | |||
| routes in the same TRDB. This route is re-advertised to ASBR21 with | routes in the same TRDB. This route is readvertised to ASBR21 with | |||
| transport-target:0:101. | transport-target:0:101. | |||
| Similarly, at ASBR21, the BGP CT routes received with transport- | Similarly, at ASBR21, the BGP CT routes received with transport- | |||
| target:0:101 will be added to color 101 TRDB and strictly resolve | target:0:101 will be added to color 101 TRDB and strictly resolve | |||
| over tunnel routes in the same TRDB. This route is re-advertised to | over tunnel routes in the same TRDB. This route is readvertised to | |||
| ASBR11 with transport-target:0:101. | ASBR11 with transport-target:0:101. | |||
| At ASBR11, the route target "transport-target:0:101" on this BGP CT | At ASBR11, the Route Target role of transport-target:0:101 on this | |||
| route instructs to add the route to color 101 TRDB. ASBR11 is | BGP CT route gives instruction to add the route to color 101 TRDB. | |||
| provisioned with a customized resolution scheme that resolves the | ASBR11 is provisioned with a customized Resolution Scheme that | |||
| routes carrying transport-target:0:101 to use color 100 TRDB. This | resolves the routes carrying transport-target:0:101 to use color 100 | |||
| route is then re-advertised from color 101 TRDB to PE11 with | TRDB. This route is then readvertised from color 101 TRDB to PE11 | |||
| transport-target:0:101. | with transport-target:0:101. | |||
| At PE11, the route target "transport-target:0:101" on this BGP CT | At PE11, the Route Target role of transport-target:0:101 on this BGP | |||
| route instructs to add the route to color 101 TRDB. PE11 is | CT route gives instruction to add the route to color 101 TRDB. PE11 | |||
| provisioned with a customized resolution scheme that resolves the | is provisioned with a customized Resolution Scheme that resolves the | |||
| routes carrying transport-target:0:101 to use color 100 TRDB. | routes carrying transport-target:0:101 to use color 100 TRDB. | |||
| When PE11 receives the service route with the mapping community | When PE11 receives the service route with the Mapping Community | |||
| color:0:101 it directly resolves over the BGP CT route in color 101 | color:0:101, it directly resolves over the BGP CT route in color 101 | |||
| TRDB, which in turn resolves over tunnel routes in color 100 TRDB. | TRDB, which, in turn, resolves over tunnel routes in color 100 TRDB. | |||
| Similar processing is done for color 102 routes also at ASBR31, | Similar processing is done for color 102 routes also at ASBR31, | |||
| ASBR22, ASBR21, ASBR11 and PE11. | ASBR22, ASBR21, ASBR11, and PE11. | |||
| In doing so, PE11 can forward traffic via tunnels with color 101, | In doing so, PE11 can forward traffic via tunnels with color 101, | |||
| color 102 in the core domain, and color 100 in the metro domains. | color 102 in the core domain and color 100 in the metro domains. | |||
| 11.3. Migration Scenarios. | 11.3. Migration Scenarios | |||
| 11.3.1. BGP CT Islands Connected via BGP LU Domain | 11.3.1. BGP CT Islands Connected via BGP LU Domain | |||
| This section explains how end-to-end SLA can be achieved while | This section explains how an end-to-end SLA can be achieved while | |||
| transiting a domain that does not support BGP CT. BGP LU is used in | transiting a domain that does not support BGP CT. BGP LU is used in | |||
| such domains to connect the BGP CT islands. | such domains to connect the BGP CT islands. | |||
| +----------EBGP Multihop CT-------------+ | +----------EBGP Multihop CT-------------+ | |||
| | | | | | | |||
| AS3 | AS2 | AS1 | AS3 | AS2 | AS1 | |||
| [PE31-----ASBR31]--------[ASBR22---ASBR21]-------[ASBR11---PE11] | [PE31-----ASBR31]--------[ASBR22---ASBR21]-------[ASBR11---PE11] | |||
| <--EBGP LU--> <--EBGP LU--> | <--EBGP LU--> <--EBGP LU--> | |||
| <--IBGP CT--> <--IBGP LU--> <--IBGP CT--> | <--IBGP CT--> <--IBGP LU--> <--IBGP CT--> | |||
| ---------Traffic Direction---------> | ---------Traffic Direction---------> | |||
| Figure 10: BGP CT in AS1 and AS3 connected by BGP LU in AS2 | Figure 10: BGP CT in AS1 and AS3 Connected by BGP LU in AS2 | |||
| In the preceding topology shown in Figure 10, there are three AS | In the preceding topology shown in Figure 10, there are three AS | |||
| domains. AS1 and AS3 support BGP CT, while AS2 does not support BGP | domains: AS1 and AS3 support BGP CT, while AS2 does not support BGP | |||
| CT. | CT. | |||
| Nodes in AS1, AS2, and AS3 negotiate BGP LU family on IBGP sessions | Nodes in AS1, AS2, and AS3 negotiate BGP LU family on IBGP sessions | |||
| within the domain. Nodes in AS1 and AS3 negotiate BGP CT family on | within the domain. Nodes in AS1 and AS3 negotiate BGP CT family on | |||
| IBGP sessions within the domain. ASBR11 and ASBR21 as well as ASBR22 | IBGP sessions within the domain. ASBR11 and ASBR21 as well as ASBR22 | |||
| and ASBR31 negotiate BGP LU family on the EBGP session over directly | and ASBR31 negotiate BGP LU family on the EBGP session over directly | |||
| connected inter-domain links. ASBR11 and ASBR31 have reachability to | connected inter-domain links. ASBR11 and ASBR31 have reachability to | |||
| each other’s loopbacks through BGP LU. ASBR11 and ASBR31 negotiate | each other's loopbacks through BGP LU. ASBR11 and ASBR31 negotiate | |||
| BGP CT family over a multihop EBGP session formed using BGP LU | BGP CT family over a multihop EBGP session formed using BGP LU | |||
| reachability. | reachability. | |||
| The following tunnels exist for Gold Transport Class | The following tunnels exist for the Gold Transport Class | |||
| PE11_to_ASBR11_gold - RSVP-TE tunnel | * PE11_to_ASBR11_gold - RSVP-TE tunnel | |||
| ASBR11_to_PE11_gold - RSVP-TE tunnel | * ASBR11_to_PE11_gold - RSVP-TE tunnel | |||
| PE31_to_ASBR31_gold - SRTE tunnel | * PE31_to_ASBR31_gold - SRTE tunnel | |||
| ASBR31_to_PE31_gold - SRTE tunnel | * ASBR31_to_PE31_gold - SRTE tunnel | |||
| The following tunnels exist for Bronze Transport Class | The following tunnels exist for the Bronze Transport Class | |||
| PE11_to_ASBR11_bronze - RSVP-TE tunnel | * PE11_to_ASBR11_bronze - RSVP-TE tunnel | |||
| ASBR11_to_PE11_bronze - RSVP-TE tunnel | * ASBR11_to_PE11_bronze - RSVP-TE tunnel | |||
| PE31_to_ASBR31_bronze - SRTE tunnel | * PE31_to_ASBR31_bronze - SRTE tunnel | |||
| ASBR31_to_PE31_bronze - SRTE tunnel | * ASBR31_to_PE31_bronze - SRTE tunnel | |||
| These tunnels are provisioned to belong to Transport Classes Gold and | These tunnels are provisioned to belong to Transport Classes Gold and | |||
| Bronze, and are advertised between ASBR31 and ASBR11 with Next hop | Bronze, and they are advertised between ASBR31 and ASBR11 with the | |||
| self. | next hop set to themselves. | |||
| In AS2, that does not support BGP CT, a separate loopback may be used | In AS2, which does not support BGP CT, a separate loopback may be | |||
| on ASBR22 and ASBR21 to represent Gold and Bronze SLAs, viz. | used on ASBR22 and ASBR21 to represent Gold and Bronze SLAs, namely | |||
| ASBR22_lpbk_gold, ASBR22_lpbk_bronze, ASBR21_lpbk_gold and | ASBR22_lpbk_gold, ASBR22_lpbk_bronze, ASBR21_lpbk_gold, and | |||
| ASBR21_lpbk_bronze. | ASBR21_lpbk_bronze. | |||
| Furthermore, the following tunnels exist in AS2 to satisfy the | Furthermore, the following tunnels exist in AS2 to satisfy the | |||
| different SLAs, using per SLA loopback endpoints: | different SLAs using per-SLA-loopback endpoints: | |||
| ASBR21_to_ASBR22_lpbk_gold - RSVP-TE tunnel | * ASBR21_to_ASBR22_lpbk_gold - RSVP-TE tunnel | |||
| ASBR22_to_ASBR21_lpbk_gold - RSVP-TE tunnel | * ASBR22_to_ASBR21_lpbk_gold - RSVP-TE tunnel | |||
| ASBR21_to_ASBR22_lpbk_bronze - RSVP-TE tunnel | ||||
| ASBR22_to_ASBR21_lpbk_bronze - RSVP-TE tunnel | * ASBR21_to_ASBR22_lpbk_bronze - RSVP-TE tunnel | |||
| RD:PE11 BGP CT route is originated from PE11 towards ASBR11 with | * ASBR22_to_ASBR21_lpbk_bronze - RSVP-TE tunnel | |||
| transport-target 'gold.' ASBR11 readvertises this route with next | ||||
| hop set to ASBR11_lpbk_gold on the EBGP multihop session towards | The RD:PE11 BGP CT route is originated from PE11 towards ASBR11 with | |||
| ASBR31. ASBR11 originates BGP LU route for endpoint ASBR11_lpbk_gold | transport-target 'gold.' ASBR11 readvertises this route with the | |||
| on EBGP session to ASBR21 with a 'gold SLA' community, and BGP LU | next hop set to ASBR11_lpbk_gold on the EBGP multihop session towards | |||
| route for ASBR11_lpbk_bronze with a 'bronze SLA' community. The SLA | ASBR31. ASBR11 originates a BGP LU route for endpoint | |||
| community is used by ASBR31 to publish the BGP LU routes in the | ASBR11_lpbk_gold on an EBGP session to ASBR21 with a 'gold SLA' | |||
| corresponding BGP CT TRDBs. | community and a BGP LU route for ASBR11_lpbk_bronze with a 'bronze | |||
| SLA' community. The SLA community is used by ASBR31 to publish the | ||||
| BGP LU routes in the corresponding BGP CT TRDBs. | ||||
| ASBR21 readvertises the BGP LU route for endpoint ASBR11_lpbk_gold to | ASBR21 readvertises the BGP LU route for endpoint ASBR11_lpbk_gold to | |||
| ASBR22 with next hop set by local policy config to the unique | ASBR22 with the next hop set by local policy config to the unique | |||
| loopback ASBR21_lpbk_gold by matching the 'gold SLA' community | loopback ASBR21_lpbk_gold by matching the 'gold SLA' community | |||
| received as part of BGP LU advertisement from ASBR11. ASBR22 | received as part of BGP LU advertisement from ASBR11. ASBR22 | |||
| receives this route and resolves the next hop over the | receives this route and resolves the next hop over the | |||
| ASBR22_to_ASBR21_lpbk_gold RSVP-TE tunnel. On successful resolution, | ASBR22_to_ASBR21_lpbk_gold RSVP-TE tunnel. On successful resolution, | |||
| ASBR22 readvertises this BGP LU route to ASBR31 with next hop self | ASBR22 readvertises this BGP LU route to ASBR31 with the next hop set | |||
| and a new label. | to itself and a new label. | |||
| ASBR31 adds the ASBR11_lpbk_gold route received via EBGP LU from | ASBR31 adds the ASBR11_lpbk_gold route received via EBGP LU from | |||
| ASBR22 to 'gold' TRDB based on the received 'gold SLA' community. | ASBR22 to a 'gold' TRDB based on the received 'gold SLA' community. | |||
| ASBR31 uses this 'gold' TRDB route to resolve the next hop | ASBR31 uses this 'gold' TRDB route to resolve the next hop | |||
| ASBR11_lpbk_gold received on BGP CT route with transport-target | ASBR11_lpbk_gold received on the BGP CT route with transport-target | |||
| 'gold,' for the prefix RD:PE11 received over the EBGP multihop CT | 'gold,' for the prefix RD:PE11 received over the EBGP multihop CT | |||
| session, thus preserving the end-to-end SLA. Now ASBR31 readvertises | session, thus preserving the end-to-end SLA. Now ASBR31 readvertises | |||
| the BGP CT route for RD:PE11 with next hop as self thus stitching | the BGP CT route for RD:PE11 with the next hop set to itself, thus | |||
| with the BGP LU LSP in AS2. Intra-domain traffic forwarding in AS1 | stitching with the BGP LU LSP in AS2. Intra-domain traffic | |||
| and AS3 follows the procedures as explained in Illustration of CT | forwarding in AS1 and AS3 follows the procedures as explained in | |||
| Procedures (Section 8) | Section 8. | |||
| In cases where an SLA cannot be preserved in AS2 because SLA specific | In cases where an SLA cannot be preserved in AS2 because SLA-specific | |||
| tunnels and loopbacks don't exist in AS2, traffic can be carried over | tunnels and loopbacks don't exist in AS2, traffic can be carried over | |||
| available SLAs (e.g.: best effort SLA) by rewriting the next hop to | available SLAs (e.g., best-effort SLA) by rewriting the next hop to | |||
| ASBR21 loopback assigned to the available SLA. This eases migration | an ASBR21 loopback assigned to the available SLA. This eases | |||
| in case of heterogeneous color domains as-well. | migration in case of a heterogeneous color domain as well. | |||
| 11.3.2. BGP CT - Interoperability between MPLS and Other Forwarding | 11.3.2. BGP CT: Interoperability Between MPLS and Other Forwarding | |||
| Technologies | Technologies | |||
| This section describes how nodes supporting dissimilar encapsulation | This section describes how nodes supporting dissimilar encapsulation | |||
| technologies can interoperate with each other when using BGP CT | technologies can interoperate when using the BGP CT family. | |||
| family. | ||||
| 11.3.2.1. Interop Between MPLS and SRv6 Nodes. | 11.3.2.1. Interoperation Between MPLS and SRv6 Nodes | |||
| BGP speakers may carry MPLS label and SRv6 SID in BGP CT SAFI 76 for | BGP speakers may carry MPLS labels and SRv6 SIDs in BGP CT SAFI 76 | |||
| AFIs 1 or 2 routes using protocol encoding as described in Carrying | for AFI 1 or 2 routes using protocol encoding as described in | |||
| Multiple Encapsulation information (Section 6.3) | Section 6.3. | |||
| MPLS Labels are carried using RFC 8277 encoding, and SRv6 SID is | MPLS labels are carried using the encoding described in [RFC8277], | |||
| carried using Prefix SID attribute as specified in Section 7.13. | and SRv6 SIDs are carried using the Prefix-SID attribute as specified | |||
| in Section 7.13. | ||||
| RR1---+ | RR1---+ | |||
| \ +-------R2 [MPLS + SRv6] | \ +-------R2 [MPLS + SRv6] | |||
| \ | | \ | | |||
| R1--------P-------R3 [MPLS only] | R1--------P-------R3 [MPLS only] | |||
| [MPLS + SRv6] | | [MPLS + SRv6] | | |||
| +-------R4 [SRv6 only] | +-------R4 [SRv6 only] | |||
| <---- Bidirectional Traffic -----> | <---- Bidirectional Traffic -----> | |||
| Figure 11: BGP CT Interop between MPLS and SRv6 nodes | Figure 11: BGP CT Interoperation Between MPLS and SRv6 Nodes | |||
| This example shows a provider network with a mix of devices with | This example shows a provider network with a mix of devices that have | |||
| different forwarding capabilities. R1 and R2 support forwarding both | different forwarding capabilities. R1 and R2 support forwarding both | |||
| MPLS and SRv6 packets. R3 supports forwarding MPLS packets only. R4 | MPLS and SRv6 packets. R3 supports forwarding MPLS packets only. R4 | |||
| supports forwarding SRv6 packets only. All these nodes have BGP | supports forwarding SRv6 packets only. All these nodes have a BGP | |||
| session with Route Reflector RR1 which reflects routes between these | session with Route Reflector RR1, which reflects routes between these | |||
| nodes with next hop unchanged. BGP CT family is negotiated on these | nodes with the next hop unchanged. The BGP CT family is negotiated | |||
| sessions. | on these sessions. | |||
| R1 and R2 send and receive both MPLS label and SRv6 SID in the BGP CT | R1 and R2 send and receive both MPLS labels and SRv6 SIDs in the BGP | |||
| control plane routes. This allows them to be ingress and egress for | CT control plane routes. This allows them to be ingress and egress | |||
| both MPLS and SRv6 data planes. MPLS label is carried using RFC 8277 | for both MPLS and SRv6 data planes. The MPLS label is carried using | |||
| encoding, and SRv6 SID is carried using Prefix SID attribute as | the encoding described in [RFC8277], and an SRv6 SID is carried using | |||
| specified in Section 7.13, without Transposition Scheme. In this | the Prefix-SID attribute as specified in Section 7.13 without the | |||
| way, either MPLS or SRv6 forwarding can be used between R1 and R2. | Transposition Scheme. In this way, either MPLS or SRv6 forwarding | |||
| can be used between R1 and R2. | ||||
| R1 and R3 send and receive MPLS label in the BGP CT control plane | R1 and R3 send and receive an MPLS label in the BGP CT control plane | |||
| routes using RFC 8277 encoding. This allows them to be ingress and | routes using the encoding described in [RFC8277]. This allows them | |||
| egress for MPLS data plane. R1 will carry SRv6 SID in Prefix-SID | to be ingress and egress for MPLS data plane. R1 will carry an SRv6 | |||
| attribute, which will not be used by R3. In order to interoperate | SID in the Prefix-SID attribute, which will not be used by R3. In | |||
| with MPLS only device R3, R1 MUST NOT use SRv6 Transposition scheme | order to interoperate with MPLS-only device R3, R1 MUST NOT use the | |||
| described in [RFC9252]. The encoding suggested in Section 7.13 is | SRv6 Transposition Scheme described in [RFC9252]. The encoding | |||
| used by R1. MPLS forwarding will be used between R1 and R3. | suggested in Section 7.13 is used by R1. MPLS forwarding will be | |||
| used between R1 and R3. | ||||
| R1 and R4 send and receive SRv6 SID in the BGP CT control plane | R1 and R4 send and receive SRv6 SIDs in the BGP CT control plane | |||
| routes using BGP Prefix-SID attribute, without Transposition Scheme. | routes using the BGP Prefix-SID attribute, without a Transposition | |||
| This allows them to be ingress and egress for SRv6 data plane. R4 | Scheme. This allows them to be ingress and egress for the SRv6 data | |||
| will carry the special MPLS Label with value 3 (Implicit-NULL) in RFC | plane. R4 will carry the special MPLS label with a value of 3 | |||
| 8277 encoding, which tells R1 not to push any MPLS label for this BGP | (Implicit NULL) in the encoding described in [RFC8277], which tells | |||
| CT route towards R4. The MPLS Label advertised by R1 in RFC 8277 | R1 not to push any MPLS label for this BGP CT route towards R4. The | |||
| NLRI will not be used by R4. SRv6 forwarding will be used between R1 | MPLS label advertised by R1 in an NLRI as described in [RFC8277] will | |||
| and R4. | not be used by R4. SRv6 forwarding will be used between R1 and R4. | |||
| Note in this example that R3 and R4 cannot communicate directly with | Note that, in this example, R3 and R4 cannot communicate directly | |||
| each other, because they don't support a common forwarding | with each other because they don't support a common forwarding | |||
| technology. The BGP CT routes received at R3, R4 from each other | technology. The BGP CT routes received at R3 and R4 from each other | |||
| will remain unusable, due to incompatible forwarding technology. | will remain unusable due to incompatible forwarding technology. | |||
| 11.3.2.2. Interop Between Nodes Supporting MPLS and UDP Tunneling | 11.3.2.2. Interop Between Nodes Supporting MPLS and UDP Tunneling | |||
| This section describes how nodes supporting MPLS forwarding can | This section describes how nodes supporting MPLS forwarding can | |||
| interoperate with other nodes supporting UDP (or IP) tunneling, when | interoperate with other nodes supporting UDP (or IP) tunneling when | |||
| using BGP CT family. | using BGP CT family. | |||
| MPLS Labels are carried using RFC 8277 encoding, and UDP (or IP) | MPLS labels are carried using the encoding described in [RFC8277], | |||
| tunneling information is carried using TEA attribute or the | and UDP (or IP) tunneling information is carried using the TEA | |||
| Encapsulation Extended Community as specified in [RFC9012]. | attribute or the Encapsulation extended community as specified in | |||
| [RFC9012]. | ||||
| RR1---+ | RR1---+ | |||
| \ +-------R2 [MPLS + UDP] | \ +-------R2 [MPLS + UDP] | |||
| \ | | \ | | |||
| R1--------P-------R3 [MPLS only] | R1--------P-------R3 [MPLS only] | |||
| [MPLS + UDP] | | [MPLS + UDP] | | |||
| +-------R4 [UDP only] | +-------R4 [UDP only] | |||
| <---- Bidirectional Traffic -----> | <---- Bidirectional Traffic -----> | |||
| Figure 12: BGP CT Interop between MPLS and UDP tunneling nodes | Figure 12: BGP CT Interop Between MPLS and UDP Tunneling Nodes | |||
| In this example, R1 and R2 support forwarding both MPLS and UDP | In this example, R1 and R2 support forwarding both MPLS and UDP | |||
| tunneled packets. R3 supports forwarding MPLS packets only. R4 | tunneled packets. R3 supports forwarding MPLS packets only. R4 | |||
| supports forwarding UDP tunneled packets only. All these nodes have | supports forwarding UDP tunneled packets only. All these nodes have | |||
| BGP session with Route Reflector RR1 which reflects routes between | BGP session with Route Reflector RR1, which reflects routes between | |||
| these nodes with next hop unchanged. BGP CT family is negotiated on | these nodes with the next hop unchanged. The BGP CT family is | |||
| these sessions. | negotiated on these sessions. | |||
| R1 and R2 send and receive both MPLS label and UDP tunneling info in | R1 and R2 send and receive both MPLS labels and UDP tunneling info in | |||
| the BGP CT control plane routes. This allows them to be ingress and | the BGP CT control plane routes. This allows them to be ingress and | |||
| egress for both MPLS and UDP tunneling data planes. MPLS label is | egress for both MPLS and UDP tunneling data planes. The MPLS label | |||
| carried using RFC 8277 encoding. As specified in [RFC9012], UDP | is carried using the encoding described in [RFC8277]. As specified | |||
| tunneling information is carried using TEA attribute (code 23) or the | in [RFC9012], UDP tunneling information is carried using the Tunnel | |||
| "barebones" Tunnel TLV carried in Encapsulation Extended Community. | Encapsulation Attribute (attribute code 23) or the "barebones" Tunnel | |||
| Either MPLS or UDP tunneled forwarding can be used between R1 and R2. | TLV carried in Encapsulation extended community. Either MPLS or UDP | |||
| tunnel forwarding can be used between R1 and R2. | ||||
| R1 and R3 send and receive MPLS label in the BGP CT control plane | R1 and R3 send and receive MPLS labels in the BGP CT control plane | |||
| routes using RFC 8277 encoding. This allows them to be ingress and | routes using the encoding described in [RFC8277]. This allows them | |||
| egress for MPLS data plane. R1 will carry UDP tunneling info in TEA | to be ingress and egress for MPLS data plane. R1 will carry UDP | |||
| attribute, which will not be used by R3. MPLS forwarding will be | tunneling info in the TEA, which will not be used by R3. MPLS | |||
| used between R1 and R3. | forwarding will be used between R1 and R3. | |||
| R1 and R4 send and receive UDP tunneling info in the BGP CT control | R1 and R4 send and receive UDP tunneling info in the BGP CT control | |||
| plane routes using BGP TEA attribute. This allows them to be ingress | plane routes using the BGP TEA. This allows them to be ingress and | |||
| and egress for UDP tunneled data plane. R4 will carry special MPLS | egress for UDP tunneled data plane. R4 will carry MPLS special label | |||
| Label with value 3 (Implicit-NULL) in RFC 8277 encoding, which tells | 3 (Implicit NULL) in the encoding described in [RFC8277], which tells | |||
| R1 not to push any MPLS label for this BGP CT route towards R4. The | R1 not to push any MPLS label for this BGP CT route towards R4. The | |||
| MPLS Label advertised by R1 will not be used by R4. UDP tunneled | MPLS label advertised by R1 will not be used by R4. UDP tunneled | |||
| forwarding will be used between R1 and R4. | forwarding will be used between R1 and R4. | |||
| Note in this example that R3 and R4 cannot communicate directly with | Note that, in this example, R3 and R4 cannot communicate directly | |||
| each other, because they don't support a common forwarding | with each other because they don't support a common forwarding | |||
| technology. The BGP CT routes received at R3, R4 from each other | technology. The BGP CT routes received at R3 and R4 from each other | |||
| will remain unusable, due to incompatible forwarding technology. | will remain unusable due to incompatible forwarding technology. | |||
| 11.4. MTU Considerations | 11.4. MTU Considerations | |||
| Operators should coordinate the MTU of the intra-domain tunnels used | Operators should coordinate the MTU of the intra-domain tunnels used | |||
| to prevent Path MTU discovery problems that could appear in | to prevent Path MTU discovery problems that could appear in | |||
| deployments. The encapsulation overhead due to the MPLS label stack | deployments. The encapsulation overhead due to the MPLS label stack | |||
| or equivalent tunnel header in different forwarding architecture | or equivalent tunnel header in different forwarding architecture | |||
| should also be considered when determining the Path MTU of the end- | should also be considered when determining the Path MTU of the end- | |||
| to-end BGP CT tunnel. | to-end BGP CT tunnel. | |||
| The document [INTAREA-TUNNELS] discusses these considerations in more | [INTAREA-TUNNELS] discusses these considerations in more detail. | |||
| detail. | ||||
| 11.5. Use of DSCP | 11.5. Use of DSCP | |||
| BGP CT specifies procedures for Intent Driven Service Mapping in a | BGP CT specifies procedures for Intent Driven Service Mapping in a | |||
| service provider network, and defines 'Transport Class' construct to | service provider network and defines the 'Transport Class' construct | |||
| represent an Intent. | to represent an Intent. | |||
| It may be desirable to allow a CE device to indicate in the data | It may be desirable to allow a CE device to indicate in the data | |||
| packet it sends what treatment it desires (the Intent) when the | packet it sends what treatment it desires (the Intent) when the | |||
| packet is forwarded within the provider network. | packet is forwarded within the provider network. | |||
| Such an indication can be in form of DSCP code point [RFC2474] in the | Such an indication can be in the form of a DSCP (see [RFC2474]) in | |||
| IP header. | the IP header. | |||
| In RFC2474, a Forwarding Class Selector maps to a PHB (Per-hop | In [RFC2474], a Forwarding Class Selector maps to a PHB (Per-hop | |||
| Behavior). The Transport Class construct is a PHB at transport | Behavior). The Transport Class construct is a PHB at the transport | |||
| layer. | layer. | |||
| ----Gold-----> | ----Gold-----> | |||
| [CE1]-----[PE1]---[P]----[PE2]-----[CE2] | [CE1]-----[PE1]---[P]----[PE2]-----[CE2] | |||
| ---Bronze----> | ---Bronze----> | |||
| 203.0.113.11 203.0.113.22 | 203.0.113.11 203.0.113.22 | |||
| -----Traffic direction----> | -----Traffic direction----> | |||
| Figure 13: Example Topology with DSCP on PE-CE Links | Figure 13: Example Topology with DSCP on PE-CE Links | |||
| Let PE1 be configured to map DSCP1 to Gold Transport class, and DSCP2 | Let PE1 be configured to map DSCP1 to the Gold TC and DSCP2 to the | |||
| to Bronze Transport class. Based on the DSCP code point received on | Bronze TC. Based on the DSCP received on the IP traffic from the CE | |||
| the IP traffic from CE device, PE1 forwards the IP packet over a Gold | device, PE1 forwards the IP packet over a Gold or Bronze TC tunnel. | |||
| or Bronze TC tunnel. Thus, the forwarding is not based on just the | Thus, the forwarding is not based on just the destination IP address | |||
| destination IP address, but also the DSCP code point. This is known | but also the DSCP. This is known as Class-Based Forwarding (CBF). | |||
| as Class Based Forwarding (CBF). | ||||
| CBF is configured at the PE1 device, mapping the DSCP values to | CBF is configured at the PE1 device, mapping the DSCP values to | |||
| respective Transport Classes. This mapping (DSCP peering agreement) | respective Transport Classes. This mapping (DSCP peering agreement) | |||
| is communicated to CE device by out of band mechanisms. This allows | is communicated to CE devices by out-of-band mechanisms. This allows | |||
| the administrator of CE1 to discover what transport classes exist in | the administrator of CE1 to discover what Transport Classes exist in | |||
| the provider network, and which DSCP codepoint to encode so that | the provider network and which DSCP to encode so that traffic is | |||
| traffic is forwarded using the desired Transport Class in the | forwarded using the desired Transport Class in the provided network. | |||
| provided network. When the IP packet exits the provider network to | When the IP packet exits the provider network to CE2, PE2 resets the | |||
| CE2, PE2 resets the DSCP code point based on DSCP peering agreement | DSCP based on the DSCP peering agreement with CE2. | |||
| with CE2. | ||||
| 12. Applicability to Network Slicing | 12. Applicability to Network Slicing | |||
| In Network Slicing, the Network Slice Controller (IETF NSC) is | In Network Slicing, the IETF Network Slice Controller (NSC) is | |||
| responsible for customizing and setting up the underlying transport | responsible for customizing and setting up the underlying transport | |||
| (e.g. RSVP-TE, SRTE tunnels with desired characteristics) and | (e.g., RSVP-TE, SRTE tunnels with desired characteristics) and | |||
| resources (e.g., polices/shapers) in a transport network to create an | resources (e.g., policies/shapers) in a transport network to create | |||
| IETF Network Slice. | an IETF Network Slice. | |||
| The Transport Class construct described in this document can be used | The Transport Class construct described in this document can be used | |||
| to realize the "IETF Network Slice" described in Section 4 of | to realize the "IETF Network Slice" described in Section 4 of | |||
| [RFC9543] | [RFC9543]. | |||
| The NSC can use the Transport Class Identifier (Color value) to | The NSC can use the Transport Class Identifier (Color value) to | |||
| provision a transport tunnel in a specific IETF Network Slice. | provision a transport tunnel in a specific IETF Network Slice. | |||
| Furthermore, the NSC can use the Mapping Community on the service | Furthermore, the NSC can use the Mapping Community on the service | |||
| route to map traffic to the desired IETF Network Slice. | route to map traffic to the desired IETF Network Slice. | |||
| 13. IANA Considerations | 13. IANA Considerations | |||
| This document makes the following requests of IANA. | ||||
| 13.1. New BGP SAFI | 13.1. New BGP SAFI | |||
| IANA has assigned a BGP SAFI code for "Classful Transport". Value | IANA has assigned BGP SAFI code 76 for the "Classful Transport (CT)" | |||
| 76. IANA is requested to update the reference to this document. | SAFI. | |||
| Registry Group: Subsequent Address Family Identifiers (SAFI) Parameters | Registry Group: Subsequent Address Family Identifiers (SAFI) | |||
| Parameters | ||||
| Registry Name: SAFI Values | Registry Name: SAFI Values | |||
| Value Description | +=======+=========================+===========+ | |||
| -------------+-------------------------- | | Value | Description | Reference | | |||
| 76 Classful Transport SAFI | +=======+=========================+===========+ | |||
| | 76 | Classful Transport (CT) | RFC 9832 | | ||||
| +-------+-------------------------+-----------+ | ||||
| This will be used to create new AFI,SAFI pairs for IPv4, IPv6 | Table 1 | |||
| Classful Transport families. viz: | ||||
| * "IPv4, Classful Transport". AFI/SAFI = "1/76" for carrying IPv4 | This will be used to create new AFI/SAFI pairs for IPv4 and IPv6 BGP | |||
| Classful Transport prefixes. | CT families, namely: | |||
| * "IPv6, Classful Transport". AFI/SAFI = "2/76" for carrying IPv6 | * IPv4 BGP CT: AFI/SAFI = 1/76, for carrying IPv4 prefixes. | |||
| Classful Transport prefixes. | ||||
| * IPv6 BGP CT: AFI/SAFI = 2/76, for carrying IPv6 prefixes. | ||||
| 13.2. New Format for BGP Extended Community | 13.2. New Format for BGP Extended Community | |||
| IANA has assigned a Format type (Type high = 0xa) of Extended | IANA has assigned a Format type (Type high = 0xa) of Extended | |||
| Community EXT-COMM [RFC4360] for Transport Class from the following | Community [RFC4360] for the Transport Class from the following | |||
| registries: | registries in the "Border Gateway Protocol (BGP) Extended | |||
| Communities" registry group: | ||||
| the "BGP Transitive Extended Community Types" registry, and | * the "BGP Transitive Extended Community Types" registry and | |||
| the "BGP Non-Transitive Extended Community Types" registry. | * the "BGP Non-Transitive Extended Community Types" registry. | |||
| The same low-order six bits have been assigned for both allocations. | The same low-order six bits have been assigned for both allocations. | |||
| IANA is requested to update the reference to this document. | ||||
| This document uses this new Format with subtype 0x2 (route target), | This document uses this new Format with subtype 0x2 (route target), | |||
| as a transitive extended community. The Route Target thus formed is | as a transitive extended community. The Route Target thus formed is | |||
| called "Transport Class" route target extended community. | called "Transport Class Route Target extended community". | |||
| The Non-Transitive Transport Class Extended community with subtype | The non-transitive Transport Class extended community with subtype | |||
| 0x2 (route target) is called the "Non-Transitive Transport Class | 0x2 (route target) is called the "Non-Transitive Transport Class | |||
| route target extended community". | Route Target extended community". | |||
| Taking reference of [RFC7153] , the following assignments have been | Following [RFC7153], assignments in the following subsections have | |||
| made: | been made. | |||
| 13.2.1. Existing Registries | 13.2.1. Existing Registries | |||
| 13.2.1.1. Registries for the "Type" Field | 13.2.1.1. Registries for the "Type" Field | |||
| 13.2.1.1.1. Transitive Types | 13.2.1.1.1. Transitive Types | |||
| This registry contains values of the high-order octet (the "Type" | This registry contains values of the high-order octet (the "Type" | |||
| field) of a Transitive Extended Community. | field) of a Transitive Extended Community. | |||
| Registry Group: Border Gateway Protocol (BGP) Extended Communities | Registry Group: Border Gateway Protocol (BGP) Extended Communities | |||
| Registry Name: BGP Transitive Extended Community Types | Registry Name: BGP Transitive Extended Community Types | |||
| Type Value Name | +============+=================+ | |||
| --------------+--------------- | | Type Value | Name | | |||
| 0x0a Transport Class | +============+=================+ | |||
| | 0x0a | Transport Class | | ||||
| +------------+-----------------+ | ||||
| (Sub-Types are defined in the | Table 2 | |||
| "Transitive Transport Class Extended Community Sub-Types" | ||||
| registry) | (Sub-Types are defined in the "Transitive Transport Class Extended | |||
| Community Sub-Types" registry.) | ||||
| 13.2.1.1.2. Non-Transitive Types | 13.2.1.1.2. Non-Transitive Types | |||
| This registry contains values of the high-order octet (the "Type" | This registry contains values of the high-order octet (the "Type" | |||
| field) of a Non-transitive Extended Community. | field) of a Non-Transitive Extended Community. | |||
| Registry Group: Border Gateway Protocol (BGP) Extended Communities | Registry Group: Border Gateway Protocol (BGP) Extended Communities | |||
| Registry Name: BGP Non-Transitive Extended Community Types | Registry Name: BGP Non-Transitive Extended Community Types | |||
| Type Value Name | +============+================================+ | |||
| --------------+-------------------------------- | | Type Value | Name | | |||
| 0x4a Non-Transitive Transport Class | +============+================================+ | |||
| | 0x4a | Non-Transitive Transport Class | | ||||
| +------------+--------------------------------+ | ||||
| (Sub-Types are defined in the | Table 3 | |||
| "Non-Transitive Transport Class Extended Community Sub-Types" | ||||
| registry) | (Sub-Types are defined in the "Non-Transitive Transport Class | |||
| Extended Community Sub-Types" registry.) | ||||
| 13.2.2. New Registries | 13.2.2. New Registries | |||
| 13.2.2.1. Transitive Transport Class Extended Community Sub-Types | 13.2.2.1. Transitive Transport Class Extended Community Sub-Types | |||
| Registry | Registry | |||
| IANA is requested to add the following subregistry under the “Border | IANA has added the following subregistry under the "Border Gateway | |||
| Gateway Protocol (BGP) Extended Communities”: | Protocol (BGP) Extended Communities" registry group: | |||
| Registry Group: Border Gateway Protocol (BGP) Extended Communities | Registry Group: Border Gateway Protocol (BGP) Extended Communities | |||
| Registry Name: Transitive Transport Class Extended Community Sub-Types | Registry Name: Transitive Transport Class Extended Community Sub- | |||
| Types | ||||
| Note: | Note: This registry contains values of the second octet (the "Sub- | |||
| This registry contains values of the second octet (the | Type" field) of an extended community when the value of the first | |||
| "Sub-Type" field) of an extended community when the value of the | octet (the "Type" field) is 0x0a. | |||
| first octet (the "Type" field) is 0x0a. | ||||
| Range Registration Procedures | +===========+=========================+ | |||
| -----------------+---------------------------- | | Range | Registration Procedure | | |||
| 0x00-0xBF First Come First Served | +===========+=========================+ | |||
| 0xC0-0xFF IETF Review | | 0x00-0xbf | First Come First Served | | |||
| +-----------+-------------------------+ | ||||
| | 0xc0-0xff | IETF Review | | ||||
| +-----------+-------------------------+ | ||||
| Sub-Type Value Name | Table 4 | |||
| -----------------+-------------- | ||||
| 0x02 Route Target | +----------------+--------------+ | |||
| | Sub-Type Value | Name | | ||||
| +----------------+--------------+ | ||||
| | 0x02 | Route Target | | ||||
| +----------------+--------------+ | ||||
| Table 5 | ||||
| 13.2.2.2. Non-Transitive Transport Class Extended Community Sub-Types | 13.2.2.2. Non-Transitive Transport Class Extended Community Sub-Types | |||
| Registry | Registry | |||
| IANA is requested to add the following subregistry under the “Border | IANA has added the following subregistry under the "Border Gateway | |||
| Gateway Protocol (BGP) Extended Communities”: | Protocol (BGP) Extended Communities" registry group: | |||
| Registry Group: Border Gateway Protocol (BGP) Extended Communities | Registry Group: Border Gateway Protocol (BGP) Extended Communities | |||
| Registry Name: Non-Transitive Transport Class Extended Community Sub-Types | Registry Name: Non-Transitive Transport Class Extended Community | |||
| Sub-Types | ||||
| Note: | Note: This registry contains values of the second octet (the "Sub- | |||
| This registry contains values of the second octet (the | Type" field) of an extended community when the value of the first | |||
| "Sub-Type" field) of an extended community when the value of the | octet (the "Type" field) is 0x4a. | |||
| first octet (the "Type" field) is 0x4a. | ||||
| Range Registration Procedures | +===========+=========================+ | |||
| -----------------+---------------------------- | | Range | Registration Procedure | | |||
| 0x00-0xBF First Come First Served | +===========+=========================+ | |||
| 0xC0-0xFF IETF Review | | 0x00-0xbf | First Come First Served | | |||
| +-----------+-------------------------+ | ||||
| | 0xc0-0xff | IETF Review | | ||||
| +-----------+-------------------------+ | ||||
| Sub-Type Value Name | Table 6 | |||
| -----------------+-------------- | ||||
| 0x02 Route Target | +================+==============+ | |||
| | Sub-Type Value | Name | | ||||
| +================+==============+ | ||||
| | 0x02 | Route Target | | ||||
| +----------------+--------------+ | ||||
| Table 7 | ||||
| 13.3. MPLS OAM Code Points | 13.3. MPLS OAM Code Points | |||
| The following two code points have been assigned for Target FEC Stack | The following two code points have been assigned for Target FEC Stack | |||
| sub-TLVs: | sub-TLVs: | |||
| * IPv4 BGP Classful Transport | * IPv4 BGP Classful Transport | |||
| * IPv6 BGP Classful Transport | * IPv6 BGP Classful Transport | |||
| Registry Group: Multiprotocol Label Switching (MPLS) | Registry Group: Multiprotocol Label Switching (MPLS) Label Switched | |||
| Label Switched Paths (LSPs) Ping Parameters | Paths (LSPs) Ping Parameters | |||
| Registry Name: Sub-TLVs for TLV Types 1, 16, and 21 | ||||
| Sub-Type Name | Registry Name: Sub-TLVs for TLV Types 1, 16, and 21 | |||
| -----------------+------------------------------ | ||||
| 31744 IPv4 BGP Classful Transport | ||||
| 31745 IPv6 BGP Classful Transport | ||||
| IANA is requested to update the reference to this document. | +==========+=============================+ | |||
| | Sub-Type | Name | | ||||
| +==========+=============================+ | ||||
| | 31744 | IPv4 BGP Classful Transport | | ||||
| +----------+-----------------------------+ | ||||
| | 31745 | IPv6 BGP Classful Transport | | ||||
| +----------+-----------------------------+ | ||||
| 14. Registries maintained by this document | Table 8 | |||
| 14.1. Transport Class ID | 14. Transport Class ID Registry | |||
| This document reserves the Transport class ID value 0 to represent | This RFC documents the "Transport Class ID" registry and its assigned | |||
| "Best Effort Transport Class ID". This is used in the 'Transport | values. The value ranges in this registry are either assigned by | |||
| Class ID' field of Transport Route Target extended community that | this document or reserved for Private Use. Because the registry is | |||
| represents best effort transport class. | complete, it is being published in this RFC rather than as an IANA- | |||
| maintained registry. However, note that IANA-related terminology | ||||
| [BCP26] is used here. | ||||
| Since all value ranges in this registry are already assigned or | Registry Name: Transport Class ID | |||
| Private use, this registry will be maintained by this document. IANA | ||||
| does not need to maintain this registry. | ||||
| Registry Group: BGP Classful Transport (BGP CT) | The Registration Procedures are as follows: | |||
| Registry Name: Transport Class ID | +==============+========================+ | |||
| | Value | Registration Procedure | | ||||
| +==============+========================+ | ||||
| | 0 | IETF Review | | ||||
| +--------------+------------------------+ | ||||
| | 1-4294967295 | Private Use | | ||||
| +--------------+------------------------+ | ||||
| Value Name | Table 9 | |||
| -----------------+-------------------------------- | ||||
| 0 Best Effort Transport Class ID | ||||
| 1-4294967295 Private Use | ||||
| Reference: This document. | As shown in the table below, the Transport Class ID value 0 is | |||
| Reserved to represent the "Best-Effort Transport Class ID". This is | ||||
| used in the 'Transport Class ID' field of a Transport Class RT that | ||||
| represents the Best-Effort Transport Class. | ||||
| Registration Procedure(s) | +==============+================================+ | |||
| | Value | Name | | ||||
| +==============+================================+ | ||||
| | 0 | Best-Effort Transport Class ID | | ||||
| +--------------+--------------------------------+ | ||||
| | 1-4294967295 | Private Use | | ||||
| +--------------+--------------------------------+ | ||||
| Value Registration Procedure | Table 10 | |||
| -----------------+-------------------------------- | ||||
| 0 IETF Review | ||||
| 1-4294967295 Private Use | ||||
| As noted in Sec 4 and Sec 7.10, 'Transport Class ID' is | As noted in Sections 4 and 7.10, 'Transport Class ID' is | |||
| interchangeable with 'Color'. For purposes of backward compatibility | interchangeable with 'Color'. For purposes of backward compatibility | |||
| with usage of 'Color' field in Color extended community as specified | with usage of a 'Color' field in a Color extended community as | |||
| in [RFC9012] and [RFC9256], the range 1-4294967295 uses 'Private Use' | specified in [RFC9012] and [RFC9256], the range 1-4294967295 uses | |||
| as Registration Procedure. | 'Private Use' as the Registration Procedure. | |||
| 15. Security Considerations | 15. Security Considerations | |||
| This document uses [RFC4760] mechanisms to define new BGP address | This document uses the mechanisms from [RFC4760] to define new BGP | |||
| families (AFI/SAFI : 1/76 and 2/76) that carry transport layer | address families (AFI/SAFI : 1/76 and 2/76) that carry transport | |||
| endpoints. These address families are explicitly configured and | layer endpoints. These address families are explicitly configured | |||
| negotiated between BGP speakers, which confines the propagation scope | and negotiated between BGP speakers, which confines the propagation | |||
| of this reachability information. These routes stay in the part of | scope of this reachability information. These routes stay in the | |||
| network where the new address family is negotiated, and don't leak | part of network where the new address family is negotiated and don't | |||
| out into the Internet. | leak out into the Internet. | |||
| Furthermore, procedures defined in Section 9.1 mitigate the risk of | Furthermore, procedures defined in Section 9.1 mitigate the risk of | |||
| unintended propagation of BGP CT routes across Inter-AS boundaries | unintended propagation of BGP CT routes across inter-AS boundaries | |||
| even when BGP CT family is negotiated. BGP import and export | even when a BGP CT family is negotiated. BGP import and export | |||
| policies are used to control the BGP CT reachability information | policies are used to control the BGP CT reachability information | |||
| exchanged across AS boundaries. This mitigates the risk of | exchanged across AS boundaries. This mitigates the risk of | |||
| advertising internal loopback addresses outside the administrative | advertising internal loopback addresses outside the administrative | |||
| control of the provider network. | control of the provider network. | |||
| This document does not change the underlying security issues inherent | This document does not change the underlying security issues inherent | |||
| in the existing BGP protocol, such as those described in [RFC4271] | in the existing BGP protocol, such as those described in [RFC4271] | |||
| and [RFC4272]. | and [RFC4272]. | |||
| Additionally, BGP sessions SHOULD be protected using TCP | Additionally, BGP sessions SHOULD be protected using the TCP | |||
| Authentication Option [RFC5925] and the Generalized TTL Security | Authentication Option [RFC5925] and the Generalized TTL Security | |||
| Mechanism [RFC5082]. | Mechanism [RFC5082]. | |||
| Using a separate BGP family and new RT (Transport Class RT) minimizes | Using a separate BGP family and new RT (Transport Class RT) minimizes | |||
| the possibility of these routes mixing with service routes. | the possibility of these routes mixing with service routes. | |||
| If redistributing between SAFI 76 and SAFI 4 routes for AFIs 1 or 2, | If redistributing between SAFI 76 and SAFI 4 routes for AFIs 1 or 2, | |||
| there is a possibility of SAFI 4 routes mixing with SAFI 1 service | there is a possibility of SAFI 4 routes mixing with SAFI 1 service | |||
| routes. To avoid such scenarios, it is RECOMMENDED that | routes. To avoid such scenarios, it is RECOMMENDED that | |||
| implementations support keeping SAFI 76 and SAFI 4 transport routes | implementations support keeping SAFI 76 and SAFI 4 transport routes | |||
| in separate transport RIBs, distinct from service RIB that contain | in separate transport RIBs, distinct from service RIB that contain | |||
| SAFI 1 service routes. | SAFI 1 service routes. | |||
| BGP CT routes distribute label binding using [RFC8277] for MPLS | BGP CT routes distribute label binding using [RFC8277] for the MPLS | |||
| dataplane and hence its security considerations apply. | data plane; hence, its security considerations apply. | |||
| BGP CT routes distribute SRv6 SIDs for SRv6 dataplanes and hence | BGP CT routes distribute SRv6 SIDs for SRv6 data planes; hence, the | |||
| security considerations of Section 9.3 of [RFC9252] apply. Moreover, | security considerations of Section 9.3 of [RFC9252] apply. Moreover, | |||
| SRv6 SID transposition scheme is disabled in BGP CT, as described in | the SRv6 SID Transposition Scheme is disabled in BGP CT, as described | |||
| Section 7.13, to mitigate the risk of misinterpreting transposed SRv6 | in Section 7.13, to mitigate the risk of misinterpreting transposed | |||
| SID information as an MPLS label. | SRv6 SID information as an MPLS label. | |||
| As [RFC4272] discusses, BGP is vulnerable to traffic-diversion | As [RFC4272] discusses, BGP is vulnerable to traffic-diversion | |||
| attacks. This SAFI routes adds a new means by which an attacker | attacks. This SAFI route adds a new means by which an attacker could | |||
| could cause the traffic to be diverted from its normal path. | cause the traffic to be diverted from its normal path. Potential | |||
| Potential consequences include "hijacking" of traffic (insertion of | consequences include "hijacking" of traffic (insertion of an | |||
| an undesired node in the path, which allows for inspection or | undesired node in the path, which allows for inspection or | |||
| modification of traffic, or avoidance of security controls) or denial | modification of traffic, or avoidance of security controls) or denial | |||
| of service (directing traffic to a node that doesn't desire to | of service (directing traffic to a node that doesn't desire to | |||
| receive it). | receive it). | |||
| In order to mitigate the risk of the diversion of traffic from its | In order to mitigate the risk of the diversion of traffic from its | |||
| intended destination, BGPsec solutions ([RFC8205] and Origin | intended destination, BGPsec solutions ([RFC8205] and Origin | |||
| Validation [RFC8210][RFC6811]) may be extended in future to work for | Validation [RFC8210][RFC6811]) may be extended in future to work for | |||
| non-Internet SAFIs (SAFIs other than 1). | non-Internet SAFIs (SAFIs other than 1). | |||
| The restriction of the applicability of the BGP CT SAFI 76 to its | The restriction of the applicability of the BGP CT SAFI 76 to its | |||
| skipping to change at page 64, line 26 ¶ | skipping to change at line 2939 ¶ | |||
| "The BGP Tunnel Encapsulation Attribute", RFC 9012, | "The BGP Tunnel Encapsulation Attribute", RFC 9012, | |||
| DOI 10.17487/RFC9012, April 2021, | DOI 10.17487/RFC9012, April 2021, | |||
| <https://www.rfc-editor.org/info/rfc9012>. | <https://www.rfc-editor.org/info/rfc9012>. | |||
| [RFC9252] Dawra, G., Ed., Talaulikar, K., Ed., Raszuk, R., Decraene, | [RFC9252] Dawra, G., Ed., Talaulikar, K., Ed., Raszuk, R., Decraene, | |||
| B., Zhuang, S., and J. Rabadan, "BGP Overlay Services | B., Zhuang, S., and J. Rabadan, "BGP Overlay Services | |||
| Based on Segment Routing over IPv6 (SRv6)", RFC 9252, | Based on Segment Routing over IPv6 (SRv6)", RFC 9252, | |||
| DOI 10.17487/RFC9252, July 2022, | DOI 10.17487/RFC9252, July 2022, | |||
| <https://www.rfc-editor.org/info/rfc9252>. | <https://www.rfc-editor.org/info/rfc9252>. | |||
| [SRTE] Talaulikar, Ed. and S. Previdi, "Advertising Segment | [RFC9830] Previdi, S., Filsfils, C., Talaulikar, K., Ed., Mattes, | |||
| Routing Policies in BGP", 7 November 2024, | P., and D. Jain, "Advertising Segment Routing Policies in | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr- | BGP", RFC 9830, DOI 10.17487/RFC9830, September 2025, | |||
| policy-safi-10>. | <https://www.rfc-editor.org/info/rfc9830>. | |||
| 16.2. Informative References | 16.2. Informative References | |||
| [BGP-CT-SRv6] | [BCP26] Best Current Practice 26, | |||
| Vairavakkalai, Ed. and Venkataraman, Ed., "BGP CT - | <https://www.rfc-editor.org/info/bcp26>. | |||
| Adaptation to SRv6 dataplane", 25 April 2024, | At the time of writing, this BCP comprises the following: | |||
| <https://tools.ietf.org/html/draft-ietf-idr-bgp-ct- | ||||
| srv6-05>. | ||||
| [BGP-CT-UPDATE-PACKING-TEST] | Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Vairavakkalai, Ed., "BGP CT Update packing Test Results", | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| 25 June 2023, <https://raw.githubusercontent.com/ietf-wg- | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| idr/draft-ietf-idr-bgp- | <https://www.rfc-editor.org/info/rfc8126>. | |||
| ct/1a75d4d10d4df0f1fd7dcc041c2c868704b092c7/update- | ||||
| packing-test-results.txt>. | [BGP-CT-SRv6] | |||
| Vairavakkalai, K., Ed. and N. Venkataraman, Ed., "BGP CT - | ||||
| Adaptation to SRv6 dataplane", Work in Progress, Internet- | ||||
| Draft, draft-ietf-idr-bgp-ct-srv6-07, 22 August 2025, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp- | ||||
| ct-srv6-07>. | ||||
| [BGP-FWD-RR] | [BGP-FWD-RR] | |||
| Vairavakkalai, Ed. and Venkataraman, Ed., "BGP Route | Vairavakkalai, K., Ed. and N. Venkataraman, Ed., "BGP | |||
| Reflector in Forwarding Path", 17 March 2024, | Route Reflector with Next Hop Self", Work in Progress, | |||
| <https://tools.ietf.org/html/draft-ietf-idr-bgp-fwd-rr- | Internet-Draft, draft-ietf-idr-bgp-fwd-rr-04, 22 August | |||
| 02>. | 2025, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
| idr-bgp-fwd-rr-04>. | ||||
| [BGP-LU-EPE] | [BGP-LU-EPE] | |||
| Gredler, Ed., "Egress Peer Engineering using BGP-LU", 16 | Gredler, H., Ed., Vairavakkalai, K., Ed., R, C., | |||
| June 2023, <https://datatracker.ietf.org/doc/html/draft- | Rajagopalan, B., Aries, E., and L. Fang, "Egress Peer | |||
| gredler-idr-bgplu-epe-15>. | Engineering using BGP-LU", Work in Progress, Internet- | |||
| Draft, draft-gredler-idr-bgplu-epe-16, 14 October 2024, | ||||
| <https://datatracker.ietf.org/doc/html/draft-gredler-idr- | ||||
| bgplu-epe-16>. | ||||
| [FLOWSPEC-REDIR-IP] | [FLOWSPEC-REDIR-IP] | |||
| Simpson, Ed., "BGP Flow-Spec Redirect to IP Action", 8 | Haas, J., Henderickx, W., and A. Simpson, "BGP Flow-Spec | |||
| September 2024, <https://datatracker.ietf.org/doc/html/ | Redirect-to-IP Action", Work in Progress, Internet-Draft, | |||
| draft-ietf-idr-flowspec-redirect-ip-03>. | draft-ietf-idr-flowspec-redirect-ip-04, 2 September 2025, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-idr- | ||||
| flowspec-redirect-ip-04>. | ||||
| [INTAREA-TUNNELS] | [INTAREA-TUNNELS] | |||
| Touch, Ed. and Townsley, Ed., "IP Tunnels in the Internet | Touch, J. D. and M. Townsley, "IP Tunnels in the Internet | |||
| Architecture", 26 March 2023, | Architecture", Work in Progress, Internet-Draft, draft- | |||
| <https://datatracker.ietf.org/doc/draft-ietf-intarea- | ietf-intarea-tunnels-15, 9 May 2025, | |||
| tunnels/13/>. | <https://datatracker.ietf.org/doc/html/draft-ietf-intarea- | |||
| tunnels-15>. | ||||
| [Intent-Routing-Color] | [Intent-Routing-Color] | |||
| Hegde, Ed., "Intent-aware Routing using Color", 23 October | Hegde, S., Rao, D., Uttaro, J., Bogdanov, A., and L. | |||
| 2023, <https://datatracker.ietf.org/doc/html/draft-hr- | Jalil, "Problem statement for Inter-domain Intent-aware | |||
| spring-intentaware-routing-using-color-03>. | Routing using Color", Work in Progress, Internet-Draft, | |||
| draft-hr-spring-intentaware-routing-using-color-04, 31 | ||||
| January 2025, <https://datatracker.ietf.org/doc/html/ | ||||
| draft-hr-spring-intentaware-routing-using-color-04>. | ||||
| [MNH] Vairavakkalai, Ed., "BGP MultiNexthop Attribute", 17 March | [MNH] Vairavakkalai, K., Ed., Jeganathan, J. M., Nanduri, M., | |||
| 2024, <https://datatracker.ietf.org/doc/html/draft-ietf- | and A. R. Lingala, "BGP MultiNexthop Attribute", Work in | |||
| idr-multinexthop-attribute-00>. | Progress, Internet-Draft, draft-ietf-idr-multinexthop- | |||
| attribute-04, 25 March 2025, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-idr- | ||||
| multinexthop-attribute-04>. | ||||
| [MPLS-NS] Vairavakkalai, Ed., "BGP signalled MPLS namespaces", 9 | [MPLS-NS] Vairavakkalai, K., Ed., Jeganathan, J. M., Ramadenu, P., | |||
| November 2024, <https://datatracker.ietf.org/doc/html/ | and I. Means, "BGP Signaled MPLS Namespaces", Work in | |||
| draft-kaliraj-bess-bgp-sig-private-mpls-labels-09>. | Progress, Internet-Draft, draft-kaliraj-bess-bgp-mpls- | |||
| namespaces-01, 21 August 2025, | ||||
| <https://datatracker.ietf.org/doc/html/draft-kaliraj-bess- | ||||
| bgp-mpls-namespaces-01>. | ||||
| [PACKING-TEST] | ||||
| "update-packing-test-results.txt", 1a75d4d, 25 June 2023, | ||||
| <https://github.com/ietf-wg-idr/draft-ietf-idr-bgp- | ||||
| ct/blob/main/update-packing-test-results.txt>. | ||||
| [PCEP-RSVP-COLOR] | [PCEP-RSVP-COLOR] | |||
| Rajagopalan, Ed. and Pavan. Beeram, Ed., "Path Computation | Rajagopalan, B., Beeram, V. P., Peng, S., Koldychev, M., | |||
| Element Protocol(PCEP) Extension for RSVP Color", 17 | and G. S. Mishra, "Path Computation Element Protocol | |||
| February 2025, <https://datatracker.ietf.org/doc/html/ | (PCEP) Extension for Color", Work in Progress, Internet- | |||
| draft-ietf-pce-pcep-color-11>. | Draft, draft-ietf-pce-pcep-color-12, 26 February 2025, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-pce- | ||||
| pcep-color-12>. | ||||
| [PCEP-SRPOLICY] | [PCEP-SRPOLICY] | |||
| Koldychev, Ed., Sivabalan, Ed., and Barth, Ed., "PCEP | Koldychev, M., Sivabalan, S., Sidor, S., Barth, C., Peng, | |||
| Extensions for SR Policy Candidate Paths", 9 February | S., and H. Bidgoli, "Path Computation Element | |||
| 2024, <https://www.ietf.org/archive/id/draft-ietf-pce- | Communication Protocol (PCEP) Extensions for Segment | |||
| segment-routing-policy-cp-14.html>. | Routing (SR) Policy Candidate Paths", Work in Progress, | |||
| Internet-Draft, draft-ietf-pce-segment-routing-policy-cp- | ||||
| 27, 4 April 2025, <https://datatracker.ietf.org/doc/html/ | ||||
| draft-ietf-pce-segment-routing-policy-cp-27>. | ||||
| [RFC6890] Cotton, M., Vegoda, L., Bonica, R., Ed., and B. Haberman, | [RFC6890] Cotton, M., Vegoda, L., Bonica, R., Ed., and B. Haberman, | |||
| "Special-Purpose IP Address Registries", BCP 153, | "Special-Purpose IP Address Registries", BCP 153, | |||
| RFC 6890, DOI 10.17487/RFC6890, April 2013, | RFC 6890, DOI 10.17487/RFC6890, April 2013, | |||
| <https://www.rfc-editor.org/info/rfc6890>. | <https://www.rfc-editor.org/info/rfc6890>. | |||
| [RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | [RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol | |||
| Specification", RFC 8205, DOI 10.17487/RFC8205, September | Specification", RFC 8205, DOI 10.17487/RFC8205, September | |||
| 2017, <https://www.rfc-editor.org/info/rfc8205>. | 2017, <https://www.rfc-editor.org/info/rfc8205>. | |||
| skipping to change at page 66, line 35 ¶ | skipping to change at line 3070 ¶ | |||
| and A. Gulko, "IGP Flexible Algorithm", RFC 9350, | and A. Gulko, "IGP Flexible Algorithm", RFC 9350, | |||
| DOI 10.17487/RFC9350, February 2023, | DOI 10.17487/RFC9350, February 2023, | |||
| <https://www.rfc-editor.org/info/rfc9350>. | <https://www.rfc-editor.org/info/rfc9350>. | |||
| [RFC9543] Farrel, A., Ed., Drake, J., Ed., Rokui, R., Homma, S., | [RFC9543] Farrel, A., Ed., Drake, J., Ed., Rokui, R., Homma, S., | |||
| Makhijani, K., Contreras, L., and J. Tantsura, "A | Makhijani, K., Contreras, L., and J. Tantsura, "A | |||
| Framework for Network Slices in Networks Built from IETF | Framework for Network Slices in Networks Built from IETF | |||
| Technologies", RFC 9543, DOI 10.17487/RFC9543, March 2024, | Technologies", RFC 9543, DOI 10.17487/RFC9543, March 2024, | |||
| <https://www.rfc-editor.org/info/rfc9543>. | <https://www.rfc-editor.org/info/rfc9543>. | |||
| Appendix A. Extensibility considerations | Appendix A. Extensibility Considerations | |||
| A.1. Signaling Intent over PE-CE Attachment Circuit | A.1. Signaling Intent over a PE-CE Attachment Circuit | |||
| It may be desirable to allow a CE device to indicate in the data | It may be desirable to allow a CE device to indicate in the data | |||
| packet it sends what treatment it desires (the Intent) when the | packet it sends what treatment it desires (the Intent) when the | |||
| packet is forwarded within the provider network. | packet is forwarded within the provider network. | |||
| Section A.10 in BGP MultiNexthop Attribute [MNH] describes some | Appendix A.10 of [MNH] describes some mechanisms that enable such | |||
| mechanisms that enable such signaling. | signaling. | |||
| A.2. BGP CT Egress TE | A.2. BGP CT Egress TE | |||
| Mechanisms described in [BGP-LU-EPE] also applies to BGP CT family. | Mechanisms described in [BGP-LU-EPE] also apply to the BGP CT family. | |||
| The Peer/32 or Peer/128 EPE route MAY be originated in BGP CT family | The Peer/32 or Peer/128 EPE route MAY be originated in the BGP CT | |||
| with appropriate Mapping Community (e.g. transport-target:0:100), | family with the appropriate Mapping Community (e.g., transport- | |||
| thus allowing an EPE path to the peer that satisfies the desired SLA. | target:0:100), thus allowing an EPE path to the peer that satisfies | |||
| the desired SLA. | ||||
| Appendix B. Applicability to Intra-AS and different Inter-AS | Appendix B. Applicability to Intra-AS and Different Inter-AS | |||
| deployments. | Deployments | |||
| As described in BGP VPN [RFC4364] Section 10, in an Option C network, | As described in Section 10 of [RFC4364], in an option C network, | |||
| service routes (VPN-IPv4) are neither maintained nor distributed by | service routes (VPN-IPv4) are neither maintained nor distributed by | |||
| the ASBRs. Transport routes are maintained in the ASBRs and | the ASBRs. Transport routes are maintained in the ASBRs and | |||
| propagated in BGP LU or BGP CT. | propagated in BGP LU or BGP CT. | |||
| Illustration of CT Procedures (Section 8) illustrates how constructs | Section 8 illustrates how constructs of BGP CT work in an inter-AS | |||
| of BGP CT work in an inter-AS Option C deployment. The BGP CT | option C deployment. The BGP CT constructs: AFI/SAFI 1/76, Transport | |||
| constructs: AFI/SAFI 1/76, Transport Class and Resolution Scheme are | Class, and Resolution Scheme are used in an inter-AS option C | |||
| used in an inter-AS Option C deployment. | deployment. | |||
| In Intra-AS and Inter-AS option A, option B scenarios, AFI/SAFI 1/76 | In intra-AS and inter-AS option A and option B scenarios, AFI/SAFI | |||
| may not be used, but the Transport Class and Resolution Scheme | 1/76 may not be used, but the Transport Class and Resolution Scheme | |||
| mechanisms are used to provide service mapping. | mechanisms are used to provide service mapping. | |||
| This section illustrates how BGP CT constructs work in Intra-AS and | This section illustrates how BGP CT constructs work in intra-AS and | |||
| Inter-AS Option A, B deployment scenarios. | inter-AS option A and option B deployment scenarios. | |||
| B.1. Intra-AS usecase | B.1. Intra-AS Use Case | |||
| B.1.1. Topology | B.1.1. Topology | |||
| [RR11] | [RR11] | |||
| | | | | |||
| + | + | |||
| [CE21]---[PE11]-------[P1]------[PE12]------[CE31] | [CE21]---[PE11]-------[P1]------[PE12]------[CE31] | |||
| : : | : : | |||
| AS2 : ...AS1... : AS3 | AS2 : ...AS1... : AS3 | |||
| : : | : : | |||
| 203.0.113.21 ---- Traffic Direction ----> 203.0.113.31 | 203.0.113.21 ---- Traffic Direction ----> 203.0.113.31 | |||
| Figure 14: BGP CT Intra-AS | Figure 14: BGP CT Intra-AS | |||
| This example in Figure 14 shows a provider network Autonomous system | Figure 14 shows a provider network Autonomous System, AS1. It serves | |||
| AS1. It serves customers AS2, AS3. Traffic direction being | customers AS2 and AS3. Traffic direction being described is CE21 to | |||
| described is CE21 to CE31. CE31 may request a specific SLA (e.g. | CE31. CE31 may request a specific SLA (e.g., Gold for this traffic) | |||
| Gold for this traffic), when traversing this provider network. | when traversing this provider network. | |||
| B.1.2. Transport Layer | B.1.2. Transport Layer | |||
| AS1 uses RSVP-TE intra-domain tunnels between PE11 and PE12. And LDP | AS1 uses RSVP-TE intra-domain tunnels between PE11 and PE12. And it | |||
| tunnels for best effort traffic. | uses LDP tunnels for best-effort traffic. | |||
| The network has two Transport classes: Gold with Transport Class ID | The network has two TCs: Gold with TC ID 100 and Bronze with TC ID | |||
| 100, Bronze with Transport Class ID 200. These transport classes are | 200. These TCs are provisioned at the PEs. This creates the | |||
| provisioned at the PEs. This creates the Resolution Schemes for | Resolution Schemes for these TCs at these PEs. | |||
| these transport classes at these PEs. | ||||
| Following tunnels exist for Gold transport class. | The following tunnels exist for the Gold TC: | |||
| PE11_to_PE12_gold - RSVP-TE tunnel | * PE11_to_PE12_gold - RSVP-TE tunnel | |||
| PE12_to_PE11_gold - RSVP-TE tunnel | * PE12_to_PE11_gold - RSVP-TE tunnel | |||
| Following tunnels exist for Bronze transport class. | The following tunnels exist for Bronze TC: | |||
| PE11_to_PE12_bronze - RSVP-TE tunnel | * PE11_to_PE12_bronze - RSVP-TE tunnel | |||
| PE11_to_PE12_bronze - RSVP-TE tunnel | * PE11_to_PE12_bronze - RSVP-TE tunnel | |||
| These tunnels are provisioned to belong to transport class 100 or | These tunnels are provisioned to belong to Transport Class 100 or | |||
| 200. | 200. | |||
| B.1.3. Service Layer route exchange | B.1.3. Service Layer Route Exchange | |||
| Service nodes PE11, PE12 negotiate service families (AFI/SAFI 1/128) | Service nodes PE11 and PE12 negotiate service families (AFI/SAFI | |||
| on the BGP session with RR11. Service helper RR11 reflects service | 1/128) on the BGP session with RR11. Service helper RR11 reflects | |||
| routes between the two PEs with next hop unchanged. There are no | service routes between the two PEs with the next hop unchanged. | |||
| tunnels for transport-class 100 or 200 from RR11 to the PEs. | There are no tunnels for Transport Class 100 or 200 from RR11 to the | |||
| PEs. | ||||
| Forwarding happens using service routes at service nodes PE11, PE12. | Forwarding happens using service routes at service nodes PE11 and | |||
| Routes received from CEs are not present in any other nodes' FIB in | PE12. Routes received from CEs are not present in any other nodes' | |||
| the provider network. | FIB in the provider network. | |||
| CE31 advertises a route for example prefix 203.0.113.31 with next hop | CE31 advertises a route, for example, prefix 203.0.113.31 with the | |||
| self to PE12. CE31 can attach a Mapping Community Color:0:100 on | next hop set to itself to PE12. CE31 can attach a Mapping Community | |||
| this route, to indicate its request for Gold SLA. Or, PE12 can | color:0:100 on this route to indicate its request for a Gold SLA. | |||
| attach the same using locally configured policies. | Or, PE12 can attach the same using locally configured policies. | |||
| Consider, CE31 is getting VPN service from PE12. The RD:203.0.113.31 | Consider CE31 getting VPN service from PE12. The RD:203.0.113.31 | |||
| route is readvertised in AFI/SAFI 1/128 by PE12 with next hop self | route is readvertised in AFI/SAFI 1/128 by PE12 with the next hop set | |||
| (192.0.2.12) and label V-L1, to RR11 with the Mapping Community | to itself (192.0.2.12) and label V-L1 to RR11 with the Mapping | |||
| Color:0:100 attached. This AFI/SAFI 1/128 route reaches PE11 via | Community color:0:100 attached. This AFI/SAFI 1/128 route reaches | |||
| RR11 with the next hop unchanged as PE12 and label V-L1. Now PE11 | PE11 via RR11 with the next hop unchanged as PE12 and label V-L1. | |||
| can resolve the PNH 192.0.2.12 using PE11_to_PE12_gold RSVP TE LSP. | Now PE11 can resolve the PNH 192.0.2.12 using the PE11_to_PE12_gold | |||
| RSVP TE LSP. | ||||
| The IP FIB at PE11 VRF will have a route for 203.0.113.31 with a next | The IP FIB at PE11 VRF will have a route for 203.0.113.31 with a next | |||
| hop when resolved using Resolution Scheme belonging to the mapping | hop when resolved using the Resolution Scheme belonging to the | |||
| community Color:0:100, points to a PE11_to_PE12_gold tunnel. | Mapping Community color:0:100, points to a PE11_to_PE12_gold tunnel. | |||
| BGP CT AFI/SAFI 1/76 is not used in this Intra-AS deployment. But | BGP CT AFI/SAFI 1/76 is not used in this intra-AS deployment. But | |||
| the Transport class and Resolution Scheme constructs are used to | the Transport Class and Resolution Scheme constructs are used to | |||
| preserve end-to-end SLA. | preserve end-to-end SLA. | |||
| B.2. Inter-AS option A usecase | B.2. Inter-AS Option A Use Case | |||
| B.2.1. Topology | B.2.1. Topology | |||
| [RR11] [RR21] | [RR11] [RR21] | |||
| | | | | | | |||
| + + | + + | |||
| [CE31]---[PE11]----[P1]----[ASBR11]---[ASBR21]---[P2]---[PE21]----[CE41] | [CE31]---[PE11]---[P1]---[ASBR11]---[ASBR21]---[P2]---[PE21]---[CE41] | |||
| : : : | : : : | |||
| AS3 : ..AS1.. : ..AS2.. : AS4 | AS3 : ..AS1.. : ..AS2.. : AS4 | |||
| : : : | : : : | |||
| 203.0.113.31 -------Traffic Direction------> 203.0.113.41 | 203.0.113.31 -------Traffic Direction------> 203.0.113.41 | |||
| Figure 15: BGP CT Inter-AS option A | Figure 15: BGP CT Inter-AS option A | |||
| This example in Figure 15 shows two provider network Autonomous | This example in Figure 15 shows two provider network Autonomous | |||
| systems AS1, AS2. They serve L3VPN customers AS3, AS4 respectively. | systems AS1, AS2. They serve L3VPN customers AS3, AS4 respectively. | |||
| The ASBRs ASBR11 and ASBR21 have IP VRFs connected directly. The | The ASBRs ASBR11 and ASBR21 have IP VRFs connected directly. The | |||
| inter-AS link is IP enabled with no MPLS forwarding. | inter-AS link is IP enabled with no MPLS forwarding. | |||
| Traffic direction being described is CE31 to CE41. CE41 may request | Traffic direction being described is CE31 to CE41. CE41 may request | |||
| a specific SLA (e.g. Gold for this traffic), when traversing these | a specific SLA (e.g., Gold for this traffic), when traversing these | |||
| provider core networks. | provider core networks. | |||
| B.2.2. Transport Layer | B.2.2. Transport Layer | |||
| AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR11. And | AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR11. And | |||
| LDP tunnels for best effort traffic. AS2 uses SRTE intra-domain | LDP tunnels for best-effort traffic. AS2 uses SRTE intra-domain | |||
| tunnels between ASBR21 and PE21, and L-ISIS for best effort tunnels. | tunnels between ASBR21 and PE21, and L-ISIS for best-effort tunnels. | |||
| The networks have two Transport classes: Gold with Transport Class ID | The networks have two TCs: Gold with TC ID 100, Bronze with TC ID | |||
| 100, Bronze with Transport Class ID 200. These transport classes are | 200. These TCs are provisioned at the PEs and ASBRs. This creates | |||
| provisioned at the PEs and ASBRs. This creates the Resolution | the Resolution Schemes for these TCs at these PEs and ASBRs. | |||
| Schemes for these transport classes at these PEs and ASBRs. | ||||
| Following tunnels exist for Gold transport class. | Following tunnels exist for Gold TC. | |||
| PE11_to_ASBR11_gold - RSVP-TE tunnel | * PE11_to_ASBR11_gold - RSVP-TE tunnel | |||
| ASBR11_to_PE11_gold - RSVP-TE tunnel | * ASBR11_to_PE11_gold - RSVP-TE tunnel | |||
| PE21_to_ASBR21_gold - SRTE tunnel | * PE21_to_ASBR21_gold - SRTE tunnel | |||
| ASBR21_to_PE21_gold - SRTE tunnel | ||||
| Following tunnels exist for Bronze transport class. | * ASBR21_to_PE21_gold - SRTE tunnel | |||
| PE11_to_ASBR11_bronze - RSVP-TE tunnel | Following tunnels exist for Bronze TC. | |||
| ASBR11_to_PE11_bronze - RSVP-TE tunnel | * PE11_to_ASBR11_bronze - RSVP-TE tunnel | |||
| PE21_to_ASBR21_bronze - SRTE tunnel | * ASBR11_to_PE11_bronze - RSVP-TE tunnel | |||
| ASBR21_to_PE21_bronze - SRTE tunnel | * PE21_to_ASBR21_bronze - SRTE tunnel | |||
| These tunnels are provisioned to belong to transport class 100 or | * ASBR21_to_PE21_bronze - SRTE tunnel | |||
| 200. | ||||
| B.2.3. Service Layer route exchange | These tunnels are provisioned to belong to TC 100 or 200. | |||
| B.2.3. Service Layer Route Exchange | ||||
| Service nodes PE11, ASBR11 negotiate service family (AFI/SAFI 1/128) | Service nodes PE11, ASBR11 negotiate service family (AFI/SAFI 1/128) | |||
| on the BGP session with RR11. Service helper RR11 reflects service | on the BGP session with RR11. Service helper RR11 reflects service | |||
| routes between the PE11 and ASBR11 with next hop unchanged. | routes between the PE11 and ASBR11 with next hop unchanged. | |||
| Similarly, in AS2 PE21, ASBR21 negotiate service family (AFI/SAFI | Similarly, in AS2 PE21, ASBR21 negotiate service family (AFI/SAFI | |||
| 1/128) on the BGP session with RR21, which reflects service routes | 1/128) on the BGP session with RR21, which reflects service routes | |||
| between the PE21 and ASBR21 with next hop unchanged. | between the PE21 and ASBR21 with next hop unchanged. | |||
| CE41 advertises a route for example prefix 203.0.113.41 with next hop | CE41 advertises a route for example prefix 203.0.113.41 with next hop | |||
| self to PE21 VRF. CE41 can attach a Mapping Community Color:0:100 on | self to PE21 VRF. CE41 can attach a Mapping Community color:0:100 on | |||
| this route, to indicate its request for Gold SLA. Or, PE21 can | this route, to indicate its request for Gold SLA. Or, PE21 can | |||
| attach the same using locally configured policies. | attach the same using locally configured policies. | |||
| Consider, CE41 is getting VPN service from PE21. The RD:203.0.113.41 | Consider, CE41 is getting VPN service from PE21. The RD:203.0.113.41 | |||
| route is readvertised in AFI/SAFI 1/128 by PE21 with next hop self | route is readvertised in AFI/SAFI 1/128 by PE21 with next hop self | |||
| (203.0.113.21) and label V-L1 to RR21 with the Mapping Community | (203.0.113.21) and label V-L1 to RR21 with the Mapping Community | |||
| Color:0:100 attached. This AFI/SAFI 1/128 route reaches ASBR21 via | color:0:100 attached. This AFI/SAFI 1/128 route reaches ASBR21 via | |||
| RR21 with the next hop unchanged as PE21 and label V-L1. Now ASBR21 | RR21 with the next hop unchanged as PE21 and label V-L1. Now ASBR21 | |||
| can resolve the PNH 203.0.113.21 using ASBR21_to_PE21_gold SRTE LSP. | can resolve the PNH 203.0.113.21 using ASBR21_to_PE21_gold SRTE LSP. | |||
| The IP FIB at ASBR21 VRF will have a route for 203.0.113.41 with a | The IP FIB at ASBR21 VRF will have a route for 203.0.113.41 with a | |||
| next hop resolved using Resolution Scheme associated with mapping | next hop resolved using Resolution Scheme associated with mapping | |||
| community Color:0:100, pointing to ASBR21_to_PE21_gold tunnel. | community color:0:100, pointing to ASBR21_to_PE21_gold tunnel. | |||
| This route is readvertised with next hop self by ASBR21 to ASBR11 on | This route is readvertised with the next hop set to itself by ASBR21 | |||
| BGP session in the VRF. The single-hop EBGP session endpoints are | to ASBR11 on a BGP session in the VRF. The single-hop EBGP session | |||
| interface addresses. ASBR21 and ASBR11 act like a CE to each other. | endpoints are interface addresses. ASBR21 and ASBR11 act like a CE | |||
| The previously mentioned process repeats in AS1, until the route | to each other. The previously mentioned process repeats in AS1 until | |||
| reaches PE11 and resolves over PE11_to_ASBR11_gold RSVP TE tunnel. | the route reaches PE11 and resolves over the PE11_to_ASBR11_gold RSVP | |||
| TE tunnel. | ||||
| Traffic traverses as unlabeled IP packet on the following legs: | Traffic traverses as an unlabeled IP packet on the following legs: | |||
| CE31-PE11, ASBR11-ASBR21, PE21-CE41. And uses MPLS forwarding inside | CE31-PE11, ASBR11-ASBR21, PE21-CE41. And it uses MPLS forwarding | |||
| AS1, AS2 core. | inside the AS1 and AS2 core. | |||
| BGP CT AFI/SAFI 1/76 is not used in this Inter-AS Option B | BGP CT AFI/SAFI 1/76 is not used in this inter-AS option B | |||
| deployment. But the Transport class and Resolution Scheme constructs | deployment. But the Transport Class and Resolution Scheme constructs | |||
| are used to preserve end-to-end SLA. | are used to preserve an end-to-end SLA. | |||
| B.3. Inter-AS option B usecase | B.3. Inter-AS Option B Use Case | |||
| B.3.1. Topology | B.3.1. Topology | |||
| [RR13] [RR23] | [RR13] [RR23] | |||
| | | | | | | |||
| + + | + + | |||
| [CE31]---[PE11]----[P1]----[ASBR12]---[ASBR21]---[P2]---[PE22]----[CE41] | [CE31]---[PE11]---[P1]---[ASBR12]---[ASBR21]---[P2]---[PE22]---[CE41] | |||
| : : : | : : : | |||
| AS3 : ..AS1.. : ..AS2.. : AS4 | AS3 : ..AS1.. : ..AS2.. : AS4 | |||
| : : : | : : : | |||
| 203.0.113.31 ---- Traffic Direction ----> 203.0.113.41 | 203.0.113.31 ---- Traffic Direction ----> 203.0.113.41 | |||
| Figure 16: BGP CT Inter-AS option B | Figure 16: BGP CT Inter-AS option B | |||
| This example in Figure 16 shows two provider network Autonomous | Figure 16 shows two provider network Autonomous Systems: AS1 and AS2. | |||
| systems AS1 and AS2. They serve L3VPN customers AS3 and AS4 | They serve L3VPN customers AS3 and AS4, respectively. The ASBRs | |||
| respectively. The ASBRs ASBR12 and ASBR21 don't have any IP VRFs. | ASBR12 and ASBR21 don't have any IP VRFs. The inter-AS link is MPLS- | |||
| The inter-AS link is MPLS forwarding enabled. | forwarding enabled. | |||
| Traffic direction being described is CE31 to CE41. CE41 may request | Traffic direction being described is CE31 to CE41. CE41 may request | |||
| a specific SLA (e.g. Gold for this traffic), when traversing these | a specific SLA (e.g., Gold for this traffic) when traversing these | |||
| provider core networks. | provider core networks. | |||
| B.3.2. Transport Layer | B.3.2. Transport Layer | |||
| AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR21. And | AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR21 and LDP | |||
| LDP tunnels for best effort traffic. AS2 uses SRTE intra-domain | tunnels for best-effort traffic. AS2 uses SRTE intra-domain tunnels | |||
| tunnels between ASBR21 and PE22, and L-ISIS for best effort tunnels. | between ASBR21 and PE22 along with L-ISIS for best-effort tunnels. | |||
| The networks have two Transport classes: Gold with Transport Class ID | The networks have two TCs: Gold with TC ID 100 and Bronze with TC ID | |||
| 100, Bronze with Transport Class ID 200. These transport classes are | 200. These TCs are provisioned at the PEs and ASBRs. This creates | |||
| provisioned at the PEs and ASBRs. This creates the Resolution | the Resolution Schemes for these Transport Classes at these PEs and | |||
| Schemes for these transport classes at these PEs and ASBRs. | ASBRs. | |||
| Following tunnels exist for Gold transport class. | The following tunnels exist for Gold TC: | |||
| PE11_to_ASBR12_gold - RSVP-TE tunnel | * PE11_to_ASBR12_gold - RSVP-TE tunnel | |||
| ASBR12_to_PE11_gold - RSVP-TE tunnel | ||||
| PE22_to_ASBR21_gold - SRTE tunnel | * ASBR12_to_PE11_gold - RSVP-TE tunnel | |||
| ASBR21_to_PE22_gold - SRTE tunnel | * PE22_to_ASBR21_gold - SRTE tunnel | |||
| Following tunnels exist for Bronze transport class. | * ASBR21_to_PE22_gold - SRTE tunnel | |||
| PE11_to_ASBR12_bronze - RSVP-TE tunnel | The following tunnels exist for Bronze TC: | |||
| ASBR12_to_PE11_bronze - RSVP-TE tunnel | * PE11_to_ASBR12_bronze - RSVP-TE tunnel | |||
| PE22_to_ASBR21_bronze - SRTE tunnel | * ASBR12_to_PE11_bronze - RSVP-TE tunnel | |||
| ASBR21_to_PE22_bronze - SRTE tunnel | * PE22_to_ASBR21_bronze - SRTE tunnel | |||
| These tunnels are provisioned to belong to transport class 100 or | * ASBR21_to_PE22_bronze - SRTE tunnel | |||
| 200. | ||||
| B.3.3. Service Layer route exchange | These tunnels are provisioned to belong to TC 100 or 200. | |||
| Service nodes PE11, ASBR12 negotiate service family (AFI/SAFI 1/128) | B.3.3. Service Layer Route Exchange | |||
| on the BGP session with RR13. Service helper RR13 reflects service | ||||
| routes between the PE11 and ASBR12 with next hop unchanged. | ||||
| Similarly, in AS2 PE22, ASBR21 negotiate service family (AFI/SAFI | Service nodes PE11 and ASBR12 negotiate service family (AFI/SAFI | |||
| 1/128) on the BGP session with RR13. Service helper RR13 reflects | ||||
| service routes between the PE11 and ASBR12 with the next hop | ||||
| unchanged. | ||||
| Similarly, in AS2 PE22, ASBR21 negotiates service family (AFI/SAFI | ||||
| 1/128) on the BGP session with RR23, which reflects service routes | 1/128) on the BGP session with RR23, which reflects service routes | |||
| between the PE22 and ASBR21 with next hop unchanged. | between PE22 and ASBR21 with the next hop unchanged. | |||
| ASBR21 and ASBR12 negotiate AFI/SAFI 1/128 between them, and | ASBR21 and ASBR12 negotiate AFI/SAFI 1/128 between them and | |||
| readvertise L3VPN routes with next hop self, allocating new labels. | readvertise L3VPN routes with the next hop set to themselves, | |||
| The single-hop EBGP session endpoints are interface addresses. | allocating new labels. The single-hop EBGP session endpoints are | |||
| interface addresses. | ||||
| CE41 advertises a route for example prefix 203.0.113.41 with next hop | CE41 advertises a route, for example, prefix 203.0.113.41 with the | |||
| self to PE22 VRF. CE41 can attach a Mapping Community Color:0:100 on | next hop set to itself to PE22 VRF. CE41 can attach a Mapping | |||
| this route, to indicate its request for Gold SLA. Or, PE22 can | Community color:0:100 on this route to indicate its request for the | |||
| attach the same using locally configured policies. | Gold SLA. Or, PE22 can attach the same using locally configured | |||
| policies. | ||||
| Consider, CE41 is getting VPN service from PE22. The RD:203.0.113.41 | Consider CE41 getting VPN service from PE22. The RD:203.0.113.41 | |||
| route is readvertised in AFI/SAFI 1/128 by PE22 with next hop self | route is readvertised in AFI/SAFI 1/128 by PE22 with the next hop set | |||
| (192.0.2.22) and label V-L1 to RR23 with the Mapping Community | to itself (192.0.2.22) and label V-L1 to RR23 with the Mapping | |||
| Color:0:100 attached. This AFI/SAFI 1/128 route reaches ASBR21 via | Community color:0:100 attached. This AFI/SAFI 1/128 route reaches | |||
| RR23 with the next hop unchanged as PE22 and label V-L1. Now ASBR21 | ASBR21 via RR23 with the next hop unchanged as PE22 and label V-L1. | |||
| can resolve the PNH 192.0.2.22 using ASBR21_to_PE22_gold SRTE LSP. | Now ASBR21 can resolve the PNH 192.0.2.22 using ASBR21_to_PE22_gold | |||
| SRTE LSP. | ||||
| Next, ASBR21 readvertises the RD:203.0.113.41 route with next hop | Next, ASBR21 readvertises the RD:203.0.113.41 route with the next hop | |||
| self to ASBR12 with a newly allocated MPLS label V-L2. Forwarding | set to itself to ASBR12 with a newly allocated MPLS label V-L2. | |||
| for this label is installed to Swap V-L1, and Push labels for | Forwarding for this label is installed to Swap V-L1, and Push labels | |||
| ASBR21_to_PE22_gold tunnel. | for ASBR21_to_PE22_gold tunnel. | |||
| ASBR12 further readvertises the RD:203.0.113.41 route via RR13 to | ASBR12 further readvertises the RD:203.0.113.41 route via RR13 to | |||
| PE11 with next hop self 192.0.2.12. PE11 resolves the next hop | PE11 with the next hop set to itself, 192.0.2.12. PE11 resolves the | |||
| 192.0.2.12 over PE11_to_ASBR12_gold RSVP TE tunnel. | next hop 192.0.2.12 over PE11_to_ASBR12_gold RSVP TE tunnel. | |||
| Traffic traverses as IP packet on the following legs: CE31-PE11 and | Traffic traverses as the IP packet on the following legs: CE31-PE11 | |||
| PE21-CE41. And uses MPLS forwarding on ASBR11-ASBR21 link, and | and PE21-CE41. And it uses MPLS forwarding on the ASBR11-ASBR21 link | |||
| inside AS1-AS2 core. | and inside the AS1-AS2 core. | |||
| BGP CT AFI/SAFI 1/76 is not used in this Inter-AS Option B | BGP CT AFI/SAFI 1/76 is not used in this inter-AS option B | |||
| deployment. But the Transport class and Resolution Scheme constructs | deployment. But the Transport Class and Resolution Scheme constructs | |||
| are used to preserve end-to-end SLA. | are used to preserve an end-to-end SLA. | |||
| Appendix C. Why reuse RFC 8277 and RFC 4364? | Appendix C. Why reuse RFCs 8277 and 4364? | |||
| RFC 4364 is one of the key design patterns produced by networking | [RFC4364] is one of the key design patterns produced by the | |||
| industry. It introduced virtualization and allowed sharing of | networking industry. It introduced virtualization and allowed | |||
| resources in service provider space with multiple tenant networks, | sharing of resources in the service provider space with multiple | |||
| providing isolated and secure Layer3 VPN services. This design | tenant networks, providing isolated and secure Layer 3 VPN services. | |||
| pattern has been reused since to provide other service layer | This design pattern has been reused since to provide other service | |||
| virtualizations like Layer2 virtualization (VPLS, L2VPN, EVPN), ISO | layer virtualizations like Layer 2 virtualization (VPLS, L2VPN, | |||
| virtualization, ATM virtualization, Flowspec VPN. | EVPN), ISO virtualization, ATM virtualization, and Flowspec VPN. | |||
| It is to be noted that these services have different NLRI encoding. | It is to be noted that these services have different NLRI encodings. | |||
| L3VPN Service family that binds MPLS label to an IP prefix use RFC | The L3VPN service family that binds the MPLS label to an IP prefix | |||
| 8277 encoding, and others define different NLRI encodings. | uses the encoding described in [RFC8277] and others define different | |||
| NLRI encodings. | ||||
| BGP CT reuses RFC 4364 procedures to slice a transport network into | BGP CT reuses the procedures described in [RFC4364] to slice a | |||
| multiple transport planes that different service routes can bind to, | transport network into multiple transport planes that different | |||
| using color. | service routes can bind to using color. | |||
| BGP CT reuses RFC 8277 because it precisely fits the purpose. viz. In | BGP CT reuses [RFC8277] because it precisely fits the purpose. That | |||
| a MPLS network, BGP CT needs to bind MPLS label for transport | is, in an MPLS network, BGP CT needs to bind the MPLS label for | |||
| endpoints which are IPv4 or IPv6 endpoints, and disambiguate between | transport endpoints, which are IPv4 or IPv6 endpoints, and | |||
| multiple instances of those endpoints in multiple transport planes. | disambiguate between multiple instances of those endpoints in | |||
| Hence, use of RD:IP_Prefix and carrying a Label for it as specified | multiple transport planes. Hence, use of the RD:IP_Prefix and | |||
| in RFC 8277 works well for this purpose. | carrying a Label for it as specified in [RFC8277] works well for this | |||
| purpose. | ||||
| Another advantage of using the precise encoding as defined in RFC | Another advantage of using the precise encoding as defined in | |||
| 4364 and RFC 8277 is that it allows to interoperate with BGP speakers | [RFC4364] and [RFC8277] is that it allows interoperation with BGP | |||
| that support SAFI 128 for AFIs 1 or 2. This can be useful during | speakers that support SAFI 128 for AFIs 1 or 2. This can be useful | |||
| transition, until all BGP speakers in the network support BGP CT. | during transition until all BGP speakers in the network support BGP | |||
| CT. | ||||
| In future, if RFC 8277 evolves into a typed NLRI, that does not carry | In the future, if [RFC8277] evolves into a typed NLRI that does not | |||
| Label in the NLRI, BGP CT will be compatible with that as-well. In | carry Label in the NLRI, BGP CT will be compatible with that as well. | |||
| essence, BGP CT encoding is compatible with existing deployed | In essence, BGP CT encoding is compatible with existing deployed | |||
| technologies (RFC 4364, RFC 8277) and will adapt to any changes RFC | technologies ([RFC4364] and [RFC8277]) and will adapt to any changes | |||
| 8277 mechanisms undergo in future. | mechanisms from [RFC8277] undergo in future. | |||
| This approach leverages the benefits of time tested design patterns | This approach leverages the benefits of time-tested design patterns | |||
| proposed in RFC 4364 and RFC 8277. Moreover, this approach greatly | proposed in [RFC4364] and [RFC8277]. Moreover, this approach greatly | |||
| reduces operational training costs and protocol compatibility | reduces operational training costs and protocol compatibility | |||
| considerations, as it complements and works well with existing | considerations as it complements and works well with existing | |||
| protocol machineries. This problem does not need reinventing the | protocol machinery: this problem does not need a brand new NLRI and | |||
| wheel with brand new NLRI and procedures. | procedures. | |||
| BGP CT design also avoids overloading RFC 8277 NLRI MPLS Label field | BGP CT design also avoids overloading the NLRI MPLS label field from | |||
| with information related to non MPLS data plane, because it leads to | [RFC8277] with information related to the non-MPLS data plane because | |||
| backward compatibility issues. | it leads to backward-compatibility issues. | |||
| C.1. Update packing considerations | C.1. Update Packing Considerations | |||
| BGP CT carries transport class as an attribute. This means routes | BGP CT carries Transport Class as an attribute. This means routes | |||
| that don't share the same transport class cannot be packed into same | that don't share the same Transport Class cannot be packed into the | |||
| Update message. Update packing in BGP CT will be similar to RFC 8277 | same BGP UPDATE message. Update packing in BGP CT will be similar to | |||
| family routes carrying attributes like communities or extended | family routes from [RFC8277] carrying attributes like communities or | |||
| communities. Service families like AFI/SAFI 1/128 have considerably | extended communities. Service families like AFI/SAFI 1/128 have | |||
| more scale than transport families like AFI/SAFI 1/4 or AFI/SAFI | considerably more scale than transport families like AFI/SAFI 1/4 or | |||
| 1/76, which carry only loopbacks. Update packing mechanisms that | AFI/SAFI 1/76, which carry only loopbacks. Update packing mechanisms | |||
| scale for AFI/SAFI 1/128 routes will scale similarly for AFI/SAFI | that scale for AFI/SAFI 1/128 routes will scale similarly for AFI/ | |||
| 1/76 routes also. | SAFI 1/76 routes. | |||
| Section 6.3.2.1 of [Intent-Routing-Color] suggests scaling numbers | Section 6.3.2.1 of [Intent-Routing-Color] suggests scaling numbers | |||
| for transport network where BGP CT can be deployed. Experiments were | for a transport network where BGP CT can be deployed. Experiments | |||
| conducted with this scale to find the convergence time with BGP CT | were conducted with this scale to find the convergence time with BGP | |||
| for those scaling numbers. Scenarios involving BGP CT carrying IPv4 | CT for those scaling numbers. Scenarios involving BGP CT carrying | |||
| and IPv6 endpoints with MPLS label were tested. Tests with BGP CT | IPv4 and IPv6 endpoints with an MPLS label were tested. Tests with | |||
| IPv6 endpoints and SRv6 SID are planned. | BGP CT IPv6 endpoints and SRv6 SID are planned. | |||
| Tests were conducted with 1.9 million BGP CT route scale (387K | Tests were conducted with a 1.9 million BGP CT route scale (387K | |||
| endpoints in 5 transport classes). Initial convergence time for all | endpoints in 5 TCs). Initial convergence time for all cases was less | |||
| cases was less than 2 minutes, which compares favorably with user | than 2 minutes, which compares favorably with user expectation for | |||
| expectation for such a scale. This experiment proves that carrying | such a scale. This experiment proves that carrying Transport Class | |||
| transport class information as an attribute keeps BGP convergence | information as an attribute keeps BGP convergence within an | |||
| within acceptable range. Details of the experiment and test results | acceptable range. Details of the experiment and test results are | |||
| are available in BGP CT Update packing Test Results | available in [PACKING-TEST]. | |||
| [BGP-CT-UPDATE-PACKING-TEST]. | ||||
| Furthermore, even in today's BGP LU deployments each egress node | Furthermore, even in today's BGP LU deployments, each egress node | |||
| originates BGP LU route for it's loopback, with some attributes like | originates a BGP LU route for its loopback, with some attributes like | |||
| community identifying the originating node or region, and AIGP | community identifying the originating node or region and an AIGP | |||
| attribute. These attributes may be unique per egress node, thus do | attribute. These attributes may be unique per egress node; thus, | |||
| not help with update packing in transport family routes. | they do not help with update packing in transport family routes. | |||
| Appendix D. Scaling using BGP MPLS Namespaces | Appendix D. Scaling Using BGP MPLS Namespaces | |||
| This document considers scaling scenario suggested in Section 6.3.2.1 | This document considers the scaling scenario suggested in | |||
| of [Intent-Routing-Color] where 300K nodes exist in the network with | Section 6.3.2.1 of [Intent-Routing-Color] where 300K nodes exist in | |||
| 5 transport classes. | the network with 5 TCs. | |||
| This may result in 1.5M transport layer routes and MPLS transit | This may result in 1.5M transport layer routes and MPLS transit | |||
| routes in all Border Nodes in the network, which may overwhelm the | routes in all Border Nodes in the network, which may overwhelm the | |||
| nodes' MPLS forwarding resources. | nodes' MPLS-forwarding resources. | |||
| Section 6.2 of [MPLS-NS] describes how MPLS Namespaces mechanism is | Section 6.2 of [MPLS-NS] describes how MPLS Namespaces mechanism is | |||
| used to scale such a network. This approach reduces the number of | used to scale such a network. This approach reduces the number of | |||
| PNHs that are globally visible in the network, thus reducing | PNHs that are globally visible in the network, thus reducing | |||
| forwarding resource usage network wide. Service route state is kept | forwarding resource usage network wide. Service route state is kept | |||
| confined closer to network edge, and any churn is confined within the | confined closer to network edge, and any churn is confined within the | |||
| region containing the point of failure, which improves convergence | region containing the point of failure, which improves convergence | |||
| also. | also. | |||
| Acknowledgements | ||||
| The authors thank Jeff Haas, John Scudder, Susan Hares, Dongjie | ||||
| (Jimmy), Moses Nagarajah, Jeffrey (Zhaohui) Zhang, Joel Halpern, | ||||
| Jingrong Xie, Mohamed Boucadair, Greg Skinner, Simon Leinen, | ||||
| Navaneetha Krishnan, Ravi M R, Chandrasekar Ramachandran, Shradha | ||||
| Hegde, Colby Barth, Vishnu Pavan Beeram, Sunil Malali, William J | ||||
| Britto, R Shilpa, Ashish Kumar (FE), Sunil Kumar Rawat, Abhishek | ||||
| Chakraborty, Richard Roberts, Krzysztof Szarkowicz, John E Drake, | ||||
| Srihari Sangli, Jim Uttaro, Luay Jalil, Keyur Patel, Ketan | ||||
| Talaulikar, Dhananjaya Rao, Swadesh Agarwal, Robert Raszuk, Ahmed | ||||
| Darwish, Aravind Srinivas Srinivasa Prabhakar, Moshiko Nayman, Chris | ||||
| Tripp, Gyan Mishra, Vijay Kestur, and Santosh Kolenchery for all the | ||||
| valuable discussions, constructive criticisms, and review comments. | ||||
| The decision to not reuse SAFI 128 and create a new address family to | ||||
| carry these transport routes was based on suggestion made by Richard | ||||
| Roberts and Krzysztof Szarkowicz. | ||||
| Thanks to John Scudder for showing us with example how the Figures | ||||
| can be enhanced using SVG format. | ||||
| Contributors | Contributors | |||
| Co-Authors | The following people contributed substantially to the content of this | |||
| document and should be considered coauthors: | ||||
| Reshma Das | Reshma Das | |||
| Juniper Networks, Inc. | Juniper Networks, Inc. | |||
| 1133 Innovation Way, | 1133 Innovation Way | |||
| Sunnyvale, CA 94089 | Sunnyvale, CA 94089 | |||
| United States of America | United States of America | |||
| Email: dreshma@juniper.net | Email: dreshma@juniper.net | |||
| Israel Means | Israel Means | |||
| AT&T | AT&T | |||
| 2212 Avenida Mara, | 2212 Avenida Mara | |||
| Chula Vista, California 91914 | Chula Vista, California 91914 | |||
| United States of America | United States of America | |||
| Email: israel.means@att.com | Email: israel.means@att.com | |||
| Csaba Mate | Csaba Mate | |||
| KIFU, Hungarian NREN | KIFU, Hungarian NREN | |||
| Budapest | Budapest | |||
| 35 Vaci street, | 35 Vaci Street | |||
| 1134 | 1134 | |||
| Hungary | Hungary | |||
| Email: ietf@nop.hu | Email: ietf@nop.hu | |||
| Deepak J Gowda | Deepak J Gowda | |||
| Extreme Networks | Extreme Networks | |||
| 55 Commerce Valley Drive West, Suite 300, | 55 Commerce Valley Drive West, Suite 300 | |||
| Thornhill, Toronto, Ontario L3T 7V9 | Thornhill, Toronto Ontario L3T 7V9 | |||
| Canada | Canada | |||
| Email: dgowda@extremenetworks.com | Email: dgowda@extremenetworks.com | |||
| Other Contributors | We also acknowledge the contribution of the following individuals: | |||
| Balaji Rajagopalan | Balaji Rajagopalan | |||
| Juniper Networks, Inc. | Juniper Networks, Inc. | |||
| Electra, Exora Business Park~Marathahalli - Sarjapur Outer Ring Road, | Electra, Exora Business Park~Marathahalli - Sarjapur Outer Ring Road | |||
| Bangalore 560103 | Bangalore 560103 | |||
| KA | KA | |||
| India | India | |||
| Email: balajir@juniper.net | Email: balajir@juniper.net | |||
| Rajesh M | Rajesh M | |||
| Juniper Networks, Inc. | Juniper Networks, Inc. | |||
| Electra, Exora Business Park~Marathahalli - Sarjapur Outer Ring Road, | Electra, Exora Business Park~Marathahalli - Sarjapur Outer Ring Road | |||
| Bangalore 560103 | Bangalore 560103 | |||
| KA | KA | |||
| India | India | |||
| Email: mrajesh@juniper.net | Email: mrajesh@juniper.net | |||
| Chaitanya Yadlapalli | Chaitanya Yadlapalli | |||
| AT&T | AT&T | |||
| 200 S Laurel Ave, | 200 S Laurel Ave | |||
| Middletown,, NJ 07748 | Middletown, NJ 07748 | |||
| United States of America | United States of America | |||
| Email: cy098d@att.com | Email: cy098d@att.com | |||
| Mazen Khaddam | Mazen Khaddam | |||
| Cox Communications Inc. | Cox Communications Inc. | |||
| Atlanta, GA | Atlanta, GA | |||
| United States of America | United States of America | |||
| Email: mazen.khaddam@cox.com | Email: mazen.khaddam@cox.com | |||
| Rafal Jan Szarecki | Rafal Jan Szarecki | |||
| Google. | ||||
| 1160 N Mathilda Ave, Bldg 5, | 1160 N Mathilda Ave, Bldg 5 | |||
| Sunnyvale,, CA 94089 | Sunnyvale, CA 94089 | |||
| United States of America | United States of America | |||
| Email: szarecki@google.com | Email: szarecki@google.com | |||
| Xiaohu Xu | Xiaohu Xu | |||
| China Mobile | China Mobile | |||
| Beijing | Beijing | |||
| China | China | |||
| Email: xuxiaohu@cmss.chinamobile.com | Email: xuxiaohu@cmss.chinamobile.com | |||
| Acknowledgements | ||||
| The authors thank Jeff Haas, John Scudder, Susan Hares, Dongjie | ||||
| (Jimmy), Moses Nagarajah, Jeffrey (Zhaohui) Zhang, Joel Halpern, | ||||
| Jingrong Xie, Mohamed Boucadair, Greg Skinner, Simon Leinen, | ||||
| Navaneetha Krishnan, Ravi M R, Chandrasekar Ramachandran, Shradha | ||||
| Hegde, Colby Barth, Vishnu Pavan Beeram, Sunil Malali, William J | ||||
| Britto, R Shilpa, Ashish Kumar (FE), Sunil Kumar Rawat, Abhishek | ||||
| Chakraborty, Richard Roberts, Krzysztof Szarkowicz, John E Drake, | ||||
| Srihari Sangli, Jim Uttaro, Luay Jalil, Keyur Patel, Ketan | ||||
| Talaulikar, Dhananjaya Rao, Swadesh Agarwal, Robert Raszuk, Ahmed | ||||
| Darwish, Aravind Srinivas Srinivasa Prabhakar, Moshiko Nayman, Chris | ||||
| Tripp, Gyan Mishra, Vijay Kestur, Santosh Kolenchery for all the | ||||
| valuable discussions, constructive criticisms, and review comments. | ||||
| The decision to not reuse SAFI 128 and create a new address-family to | ||||
| carry these transport-routes was based on suggestion made by Richard | ||||
| Roberts and Krzysztof Szarkowicz. | ||||
| Thanks to John Scudder for showing us with example how the Figures | ||||
| can be enhanced using SVG format. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Kaliraj Vairavakkalai (editor) | Kaliraj Vairavakkalai (editor) | |||
| Juniper Networks, Inc. | Juniper Networks, Inc. | |||
| 1133 Innovation Way, | 1133 Innovation Way | |||
| Sunnyvale, CA 94089 | Sunnyvale, CA 94089 | |||
| United States of America | United States of America | |||
| Email: kaliraj@juniper.net | Email: kaliraj@juniper.net | |||
| Natrajan Venkataraman (editor) | Natrajan Venkataraman (editor) | |||
| Juniper Networks, Inc. | Juniper Networks, Inc. | |||
| 1133 Innovation Way, | 1133 Innovation Way | |||
| Sunnyvale, CA 94089 | Sunnyvale, CA 94089 | |||
| United States of America | United States of America | |||
| Email: natv@juniper.net | Email: natv@juniper.net | |||
| End of changes. 676 change blocks. | ||||
| 1890 lines changed or deleted | 1978 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||