RFC 8821

PCE-Based Traffic Engineering (TE) in Native IP Networks

๐Ÿ“… published April 2021, from ietf

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 (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.

10.2. Informative References

These are the bonus reads ๐Ÿง ๐Ÿ’œ. Helpful background, but not strictly required.


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