RFC 8821
PCE-Based Traffic Engineering (TE) in Native IP Networks
RFC 8821: PCE-Based Traffic Engineering (TE) in Native IP Networks โจ
Okay bestie, let's get into this one ๐
๐ธ It's an Informational RFC, which means it's published for information and is not an Internet Standards Track spec. It was written by A. Wang (China Telecom), B. Khasanov (Yandex LLC), Q. Zhao (Etheric Networks), and H. Chen (Futurewei), and it landed in April 2021 ๐ฆ. It doesn't obsolete or update any other RFCs, so it's a clean slate, no drama ๐. The ISSN is 2070-1721.
Status of This Memo ๐
Quick vibe check first: this doc is not an Internet Standards Track specification, it's just published for info ๐. It's a product of the IETF, it reflects consensus from the IETF community, got public review, and was approved for publication by the IESG. Not everything the IESG approves is a candidate for Internet Standard status, so check Section 2 of RFC 7841 if you're curious about that โจ.
Want the latest status, errata, or a place to leave feedback? Head to https://www.rfc-editor.org/info/rfc8821 ๐ซถ.
Copyright Notice ๐
Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved ๐.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) as they were on the day it was published. Please actually read those, because they explain your rights and restrictions for this doc ๐. Any Code Components pulled out of this document have to include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty as described in that license ๐.
Table of Contents ๐ง
1. Introduction
2. Terminology
3. CCDR Architecture in a Simple Topology
4. CCDR Architecture in a Large-Scale Topology
5. CCDR Multiple BGP Sessions Strategy
6. PCEP Extension for Critical Parameters Delivery
7. Deployment Considerations
7.1. Scalability
7.2. High Availability
7.3. Incremental Deployment
7.4. Loop Avoidance
7.5. E2E Path Performance Monitoring
8. Security Considerations
9. IANA Considerations
10. References
10.1. Normative References
10.2. Informative References
Acknowledgments
Authors' Addresses
1. Introduction ๐
Okay so, [RFC8283] took the PCE and made it a central controller, which is a way bigger job than it used to be ๐. It's based on the PCE architecture from [RFC4655], and PCEP is still the protocol between the PCE and the Path Computation Client (PCC) ๐ . This doc builds on that and uses a PCE for centralized control in a native IP network. The goal is end-to-end (E2E) performance assurance and QoS for traffic ๐ฅ. The trick is that it mixes distributed routing protocols with a centralized controller, called Centralized Control Dynamic Routing (CCDR) โจ.
[RFC8735] lays out the scenarios and simulation results for traffic engineering in a native IP network using a CCDR architecture ๐ฆ. According to [RFC8735], a traffic engineering architecture for native IP networks should meet these criteria:
- Same solution for native IPv4 and IPv6 traffic ๐.
- Support for intra-domain and inter-domain scenarios ๐ธ.
- Achieve E2E traffic assurance, with determined QoS behavior, for traffic requiring a service assurance (prioritized traffic) ๐ฅ.
- No changes in a router's forwarding behavior ๐.
- Based on centralized control through a distributed network control plane ๐ง.
- Support different network requirements such as high traffic volume and prefix scaling ๐.
- Ability to adjust the optimal path dynamically upon the changes of network status. No need for reserving resources for physical links in advance โญ.
This doc takes those requirements and builds an architecture around them. It uses a strategy of multiple BGP sessions plus a PCE as the centralized controller ๐. The PCE does the job of computing the optimal path, while the dynamic routing behavior of IGP and BGP handles forwarding the traffic ๐ซถ.
2. Terminology ๐
This doc uses these terms from [RFC5440]:
- PCE: Path Computation Element
- PCEP: PCE Protocol
- PCC: Path Computation Client
Other terms that show up in this doc:
- CCDR: Centralized Control Dynamic Routing
- E2E: End to End
- ECMP: Equal-Cost Multipath
- RR: Route Reflector
- SDN: Software-Defined Network
3. CCDR Architecture in a Simple Topology ๐ฆ
Figure 1 shows the CCDR setup for traffic engineering in a simple topology ๐ง. There are four devices here: SW1, SW2, R1, and R2 ๐ . R1 and R2 have multiple physical links between them ๐ฅ. Traffic between PF11 (on SW1) and PF21 (on SW2) is normal traffic. Traffic between PF12 (on SW1) and PF22 (on SW2) is priority traffic, so it should get treated accordingly โจ.
+-----+
+----------+ PCE +--------+
| +-----+ |
| |
| BGP Session 1(lo11/lo21)|
+-------------------------+
| |
| BGP Session 2(lo12/lo22)|
+-------------------------+
PF12 | | PF22
PF11 | | PF21
+---+ +-----+-----+ +-----+-----+ +---+
|SW1+---------+(lo11/lo12)+-------------+(lo21/lo22)+-----------+SW2|
+---+ | R1 +-------------+ R2 | +---+
+-----------+ +-----------+
Figure 1: CCDR Architecture in a Simple Topology
In the intra-domain scenario, IGP and BGP plus a PCE are deployed between R1 and R2 ๐ธ. In the inter-domain scenario, only native BGP is deployed ๐. The traffic between each address pair can change in real time, and the source and destination addresses can also change dynamically ๐.
Here are the key ideas of the CCDR architecture for this simple topology ๐:
- Build two BGP sessions between R1 and R2 using different loopback addresses on these routers. lo11 and lo12 are R1's loopback addresses, and lo21 and lo22 are R2's ๐.
- Using the PCE, set the explicit peer route on R1 and R2 for the BGP next hop to different physical link addresses between R1 and R2 ๐ซถ. The explicit peer route can be configured as a static route, which is different from a route learned from IGP โญ.
- Send different prefixes over the established BGP sessions. For example, send PF11/PF21 via BGP session 1 and PF12/PF22 via BGP session 2 ๐ฅ.
After all that, the bidirectional traffic between PF11 and PF21, and between PF12 and PF22, goes through different physical links between R1 and R2 โจ. No cap, that's the whole magic trick ๐ช.
If there's more traffic between PF12 and PF22 that needs assured transport, you can add more physical links between R1 and R2 to reach the next hop for BGP session 2 ๐ง. The prefixes advertised by the BGP peers don't need to change in that case ๐ .
Say there's bidirectional priority traffic from another address pair, like PF13/PF23, and the total priority volume doesn't exceed the capacity of the links you already provisioned. Then you only need to advertise the new source and destination prefixes over BGP session 2 ๐ฆ. The bidirectional traffic between PF13/PF23 goes through the same assigned, dedicated physical links as PF12/PF22 ๐ธ.
This decoupling of the IGP/BGP traffic link from the physical link gives you flexible control over network traffic, which meets the QoS assurance that applications need ๐. The router only needs to support native IP and multiple BGP sessions set up via different loopback addresses ๐ซถ.
4. CCDR Architecture in a Large-Scale Topology ๐ธ
When priority traffic spans a large-scale network, like the one in Figure 2, you can't establish the multiple BGP sessions hop by hop inside one autonomous system ๐ญ. For that case, this doc proposes using a Route Reflector (RR) [RFC4456] to get a similar effect ๐. Every edge router establishes two BGP sessions with the RR, each via different loopback addresses ๐. The other steps for traffic differentiation are the same as in the simple-topology CCDR architecture ๐ฅ.
In Figure 2, if we pick R3 as the RR, every edge router (R1 and R7 in this example) builds two BGP sessions with the RR โจ. If the PCE selects the dedicated path R1-R2-R4-R7, the operator should set explicit peer routes via PCEP on these routers respectively. Those routes point the BGP next hop (the loopback addresses of R1 and R7, which are used to send the priority traffic prefix) to the selected forwarding address ๐ง.
+-----+
+----------------+ PCE +------------------+
| +--+--+ |
| | |
| | |
| +--+---+ |
+----------------+R3(RR)+-----------------+
PF12 | +--+---+ | PF22
PF11 | | PF21
+---+ ++-+ +--+ +--+ +-++ +---+
|SW1+-------+R1+----------+R5+----------+R6+---------+R7+-------+SW2|
+---+ ++-+ +--+ +--+ +-++ +---+
| |
| |
| +--+ +--+ |
+------------+R2+----------+R4+-----------+
+--+ +--+
Figure 2: CCDR Architecture in a Large-Scale Network
Part 1 of 3. Next up: Section 5, the CCDR Multiple BGP Sessions Strategy! ๐๐
5. CCDR Multiple BGP Sessions Strategy โจ
okay so different apps want different things from the network ๐ like:
- traffic that needs low latency and doesn't care about packet loss ๐๏ธ
- traffic that needs low packet loss and can handle higher latency ๐ก๏ธ
- traffic that needs low jitter ๐
all of this is summed up in Table 1, and it's giving very clear ๐ญ
+================+=========+=============+============+
| Prefix Set No. | Latency | Packet Loss | Jitter |
+================+=========+=============+============+
| 1 | Low | Normal | Don't care |
+----------------+---------+-------------+------------+
| 2 | Normal | Low | Don't care |
+----------------+---------+-------------+------------+
| 3 | Normal | Normal | Low |
+----------------+---------+-------------+------------+
Table 1: Traffic Requirement Criteria
so for Prefix Set No.1, we can take the shortest distance path ๐ฃ๏ธ. For Prefix Set No.2, we can pick the path with E2E under-loaded links ๐. For Prefix Set No.3, we can let the traffic pass over one determined single path, because no ECMP distribution on the parallel links is wanted ๐ซ๐.
ngl, it is almost impossible to build an E2E path efficiently with latency, jitter, and packet loss constraints in a large-scale IP network if you only use a distributed routing protocol ๐ฉ. BUT these requirements can be met with help from a PCE, as described in [RFC4655] and [RFC8283] ๐ฆ. The PCE gets the overall network view, the ability to collect the real-time network topology, and the network performance info about the underlying network ๐. So the PCE can pick the right path for the different traffic needs. main character energy ๐
here's how the architecture to implement the CCDR multiple BGP sessions strategy works ๐ง:
The PCE is responsible for the optimal path computation for the different priority classes of traffic ๐:
- PCE collects topology information via BGP-LS [RFC7752] and link utilization information via the existing Network Monitoring System (NMS) from the underlying network ๐ก.
- PCE calculates the appropriate path based upon the application's requirements and sends the key parameters to edge/RR routers (R1, R7, and R3 in Figure 3) to establish multiple BGP sessions ๐ค. The loopback addresses used for the BGP sessions should be planned in advance and distributed in the domain ๐บ๏ธ.
- PCE sends the route information to the routers (R1, R2, R4, and R7 in Figure 3) on the forwarding path via PCEP to build the path to the BGP next hop of the advertised prefixes ๐ค๏ธ. The path to these BGP next hops will also be learned via IGP, but the route from the PCEP has the higher preference ๐ฅ. Such a design can assure the IGP path to the BGP next hop can be used to protect the path assigned by PCE ๐ก๏ธ.
- PCE sends the prefix information to the PCC (edge routers that have established BGP sessions) for advertising different prefixes via the specified BGP session ๐ฎ.
- The priority traffic may share some links or nodes if the path the shared links or nodes can meet the requirement of application ๐ซฑ๐ซฒ. When the priority traffic prefixes are changed, but the total volume of priority traffic does not exceed the physical capacity of the previous E2E path, the PCE needs only change the prefixes advertised via the edge routers (R1 and R7 in Figure 3) โจ.
- If the volume of priority traffic exceeds the capacity of the previous calculated path, the PCE can recalculate and add the appropriate paths to accommodate the exceeding traffic ๐. After that, the PCE needs to update the on-path routers to build the forwarding path hop by hop ๐ช.
here's the picture, bestie ๐ผ๏ธ:
+------------+
| Application|
+------+-----+
|
+--------+---------+
+----------+SDN Controller/PCE+-----------+
| +--------^---------+ |
| | |
| | |
PCEP | BGP-LS|PCEP | PCEP
| | |
| +--v---+ |
+----------------+R3(RR)+-----------------+
PF12 | +------+ | PF22
PF11 | | PF21
+---+ +v-+ +--+ +--+ +-v+ +---+
|SW1+-------+R1+----------+R5+----------+R6+---------+R7+-------+SW2|
+---+ ++-+ +--+ +--+ +-++ +---+
| |
| |
| +--+ +--+ |
+------------+R2+----------+R4+-----------+
+--+ +--+
Figure 3: CCDR Architecture for Multi-BGP Sessions Deployment
6. PCEP Extension for Critical Parameters Delivery ๐
PCEP needs to be extended to transfer the following critical parameters ๐ง:
- Peer information that is used to build the BGP session ๐คณ.
- Explicit route information for BGP next hop of advertised prefixes ๐บ๏ธ.
- Advertised prefixes and their associated BGP session ๐ฆ.
once the router gets this info, it should establish the BGP session with the peer appointed in the PCEP message, build the E2E dedicated path hop by hop, and advertise the prefixes contained in the corresponding PCEP message ๐.
the dedicated path wins because the explicit route created by the PCE has the higher priority (lower route preference) than the route information created by other dynamic protocols ๐.
all of the dynamically created states (BGP sessions, explicit routes, and advertised prefixes) get cleared when the state timeout interval expires ๐งน. This is based on the existing stateful PCE [RFC8231] and PCE as a Central Controller (PCECC) [RFC8283] mechanisms ๐.
the BGP session itself is no different from one configured manually or via Network Configuration Protocol (NETCONF) and YANG ๐งโ๐ป. Different BGP sessions are mainly used to clarify the network prefixes, which can be differentiated via the different BGP next hop ๐ท๏ธ. So with this strategy, if we manipulate the path to the BGP next hop, the path to the prefixes advertised with those BGP sessions changes accordingly ๐ช. Details of communications between the PCEP and BGP subsystems in the router's control plane are out of scope of this document ๐.
7. Deployment Considerations ๐
7.1. Scalability ๐
in the CCDR architecture, only the edge routers that connect with the PCE are responsible for the prefix advertisement via the multiple BGP sessions deployment ๐ซถ. The route information for these prefixes within the on-path routers is distributed via BGP ๐ฌ.
for multiple domain deployment, the PCE, or the pool of PCEs responsible for these domains, only needs to control the edge router to build the multiple External BGP (EBGP) sessions ๐. All other procedures are the same as within one domain โ .
the on-path router only needs to keep the specific policy routes for the BGP next hop of the differentiated prefixes, not the specific routes to the prefixes themselves ๐ง . This lightens the table size burden of policy-based routes for the on-path routers, and it has more expandability compared with BGP Flowspec or OpenFlow solutions ๐ฑ. For example, if we want to differentiate 1,000 prefixes from the normal traffic, CCDR needs only one explicit peer route in every on-path router, whereas the BGP Flowspec or OpenFlow solutions need 1,000 policy routes on them ๐คฏ๐ .
7.2. High Availability ๐
the CCDR architecture is based on the use of native IP ๐. If the PCE fails, the forwarding plane will not be impacted, as the BGP sessions between all the devices will not flap, and the forwarding table remains unchanged ๐ช.
if one node on the optimal path fails, the priority traffic will fall over to the best-effort forwarding path ๐ช. One can even design several paths to load balance or to create a hot standby of the priority traffic to meet a path failure situation ๐.
for ensuring high availability of a PCE/SDN-controllers architecture, an operator should rely on existing high availability solutions for SDN controllers, such as clustering technology and deployment ๐งฉ.
7.3. Incremental Deployment ๐
not every router in the network needs to support the necessary PCEP extension ๐ โโ๏ธ. For these situations, routers on the edge of a domain can be upgraded first, and then the traffic can be prioritized between different domains ๐ช. Within each domain, the traffic will be forwarded along the best-effort path ๐ข. A service provider can selectively upgrade the routers on each domain in sequence ๐.
7.4. Loop Avoidance ๐
a PCE needs to make sure it calculates the E2E path based on the status of the network and the service requirements in real time โฑ๏ธ.
the PCE needs to consider the explicit route deployment order (for example, from tail router to head router) to eliminate any possible transient traffic loop ๐๐ซ.
7.5. E2E Path Performance Monitoring ๐
it is necessary to deploy the corresponding E2E path performance monitoring mechanism to make sure that the delay, jitter, or packet loss index meets the original path performance aim ๐ฏ. The performance monitoring results should give feedback to the PCE so it can run the re-optimization process and send the update control message to the related PCC if necessary ๐. Traditional OAM methods (ping, trace) can be used ๐.
8. Security Considerations ๐
okay this part is SERIOUS bestie ๐ค๐จ. The setup of BGP sessions, prefix advertisement, and explicit peer route establishment are all controlled by the PCE. See [RFC4271] and [RFC4272] for BGP security considerations ๐ก๏ธ. The Security Considerations found in Section 10 of [RFC5440] and Section 10 of [RFC8231] should be considered ๐. To stop a bogus PCE from sending harmful messages to the network nodes, the network devices should authenticate the validity of the PCE and make sure there is a secure communication channel between them ๐๐. Mechanisms described in [RFC8253] should be used ๐.
The CCDR architecture does not require changes to the forwarding behavior of the underlay devices, so there are no additional security impacts on these devices ๐ซง.
9. IANA Considerations ๐ธ
This document has no IANA actions ๐.
10. References ๐
10.1. Normative References
These are the must-reads, bestie ๐โจ. Anything in here is required to understand the spec.
- [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, DOI 10.17487/RFC4271, January 2006,
<https://www.rfc-editor.org/info/rfc4271>. - [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", RFC 4272, DOI 10.17487/RFC4272, January 2006,
<https://www.rfc-editor.org/info/rfc4272>. - [RFC4456] Bates, T., Chen, E., and R. Chandra, "BGP Route Reflection: An Alternative to Full Mesh Internal BGP (IBGP)", RFC 4456, DOI 10.17487/RFC4456, April 2006,
<https://www.rfc-editor.org/info/rfc4456>. - [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation Element (PCE) Communication Protocol (PCEP)", RFC 5440, DOI 10.17487/RFC5440, March 2009,
<https://www.rfc-editor.org/info/rfc5440>. - [RFC7752] Gredler, H., Ed., Medved, J., Previdi, S., Farrel, A., and S. Ray, "North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP", RFC 7752, DOI 10.17487/RFC7752, March 2016,
<https://www.rfc-editor.org/info/rfc7752>. - [RFC8231] Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path Computation Element Communication Protocol (PCEP) Extensions for Stateful PCE", RFC 8231, DOI 10.17487/RFC8231, September 2017,
<https://www.rfc-editor.org/info/rfc8231>. - [RFC8253] Lopez, D., Gonzalez de Dios, O., Wu, Q., and D. Dhody, "PCEPS: Usage of TLS to Provide a Secure Transport for the Path Computation Element Communication Protocol (PCEP)", RFC 8253, DOI 10.17487/RFC8253, October 2017,
<https://www.rfc-editor.org/info/rfc8253>. - [RFC8283] Farrel, A., Ed., Zhao, Q., Ed., Li, Z., and C. Zhou, "An Architecture for Use of PCE and the PCE Communication Protocol (PCEP) in a Network with Central Control", RFC 8283, DOI 10.17487/RFC8283, December 2017,
<https://www.rfc-editor.org/info/rfc8283>.
10.2. Informative References
These are the bonus reads ๐ง ๐. Helpful background, but not strictly required.
- [RFC4655] Farrel, A., Vasseur, J.-P., and J. Ash, "A Path Computation Element (PCE)-Based Architecture", RFC 4655, DOI 10.17487/RFC4655, August 2006,
<https://www.rfc-editor.org/info/rfc4655>. - [RFC8735] Wang, A., Huang, X., Kou, C., Li, Z., and P. Mi, "Scenarios and Simulation Results of PCE in a Native IP Network", RFC 8735, DOI 10.17487/RFC8735, February 2020,
<https://www.rfc-editor.org/info/rfc8735>.
Acknowledgments ๐ซถ๐ธ
The author wants to give a huge shout-out to Deborah Brungard, Adrian Farrel, Vishnu Beeram, Lou Berger, Dhruv Dhody, Raghavendra Mallya, Mike Koldychev, Haomian Zheng, Penghui Mi, Shaofu Peng, Donald Eastlake, Alvaro Retana, Martin Duke, Magnus Westerlund, Benjamin Kaduk, Roman Danyliw, รric Vyncke, Murray Kucherawy, Erik Kline, and Jessica Chen ๐. Thank you all for the support and comments on this document. Literally the real MVPs ๐.
Authors' Addresses ๐
Meet the crew! Here's where to find each author.
Aijun Wang
China Telecom
Changping District
Beiqijia Town
Beijing
102209
China
Email: wangaj3@chinatelecom.cn
Boris Khasanov
Yandex LLC
Ulitsa Lva Tolstogo 16
Moscow
Russian Federation
Email: bhassanov@yahoo.com
Quintin Zhao
Etheric Networks
1009 S Claremont St
San Mateo, CA 94402
United States of America
Email: qzhao@ethericnetworks.com
Huaimo Chen
Futurewei
Boston, MA
United States of America
Email: huaimo.chen@futurewei.com
๐ฆ where this page comes from
- ietf: rfc8821 2021-04
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms