RFC 9107
BGP Optimal Route Reflection (BGP ORR)
RFC 9107: BGP Optimal Route Reflection (BGP ORR) π¦
Okay bestie, this is an IETF doc, so it's from the Internet Engineering Task Force, and it's an Internet Standards Track document, which means it went through public review and got approved by the IESG. π The main authors are R. Raszuk (NTT Network Innovations, listed as Ed.), B. Decraene (Orange, also Ed.), C. Cassar, E. Γ man, and K. Wang (Juniper Networks). The header I have doesn't give affiliations for Cassar or Γ man, so I'm not guessing. It was published in August 2021 with ISSN 2070-1721. The title block doesn't list anything it obsoletes or updates, so this one stands alone. πΈ
Abstract πΈ
Okay so this doc extends BGP route reflectors. On a route reflector, BGP route selection gets tweaked so it picks the best route from its clients' point of view, not its own. β¨ Depending on how much scale and precision you need, the selection can be specific to one client, shared across a group of clients, or shared across every client of the route reflector. π§ This is especially useful with centralized route reflectors, where choosing the best route based on the route reflector's own IGP location is suboptimal. It makes stuff like a "best exit point" policy ("hot potato routing") way easier. π₯
The whole thing relies on every route reflector learning all the paths that are eligible for consideration. Then the route selection happens on the route reflectors, based on IGP cost from configured locations in the link-state IGP. Iconic. π
Status of This Memo π
This is an Internet Standards Track document. π
It's a product of the Internet Engineering Task Force (IETF), which means it represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check Section 2 of RFC 7841. π
For the current status, any errata, and how to give feedback, go to https://www.rfc-editor.org/info/rfc9107. β¨
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 stand on the date of publication. Please read these carefully, because they spell out your rights and restrictions for this document. π Code Components pulled out of this document must include the Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License. π
Table of Contents πΊοΈ
1. Introduction
2. Terminology
3. Modifications to BGP Route Selection
3.1. Route Selection from a Different IGP Location
3.1.1. Restriction when the BGP Next Hop Is a BGP Route
3.2. Multiple Route Selections
4. Deployment Considerations
5. Security Considerations
6. IANA Considerations
7. References
7.1. Normative References
7.2. Informative References
Acknowledgments
Contributors
Authors' Addresses
1. Introduction β¨
Okay so there are three kinds of BGP deployments inside Autonomous Systems (ASes) right now: full mesh, confederations, and route reflection. π¦ Route reflection [RFC4456] is the most popular way to spread BGP routes between BGP speakers in the same AS. But in some situations it leads to non-optimal path selection, which is a bit of a vibe killer. π
[RFC4456] says that, because the IGP cost to a given point in the network varies across routers, "the route reflection approach may not yield the same route selection result as that of the full IBGP mesh approach." ("IBGP" stands for "Internal BGP".) π One practical result is that route reflection can thwart your ability to do "hot potato routing." Hot potato routing tries to send traffic to the closest AS exit point, unless a higher-priority policy says otherwise. π₯ Because of how route reflection works, a route reflector and its clients end up with whichever exit point is optimal for the route reflector, not necessarily the one that's optimal for the clients. Not it. π
Section 11 of [RFC4456] describes a deployment approach and a set of constraints that, if they're satisfied, make route reflection give the same results as the IBGP full mesh approach. π This approach is what makes route reflection compatible with a hot potato routing policy. Following these design rules, route reflectors often ended up in the forwarding path, carefully placed on the boundaries between the Point of Presence (POP) and the network core. π
The evolving model of intra-domain network design has allowed route reflectors to be deployed outside the forwarding path. π§ At first this was only used for new services, like IP VPNs [RFC4364]. Over time it spread to other BGP services too, including the IPv4 and IPv6 Internet. In these environments, a hot potato routing policy is still desirable. β¨
Route reflectors outside the forwarding path can sit on the boundaries between the POP and the network core, but they're often put in arbitrary spots in the core of big networks. π
Here's the critical drawback with these deployments. A route reflector that knows about multiple paths for a route will usually pick its best path and only advertise that best path to its clients. π If that best path was picked on the basis of an IGP tie-break, the advertised path will be the exit point closest to the route reflector. The problem is that the clients are in a different place in the network topology than the route reflector is. π When the route reflectors aren't in the forwarding path, that gap is even bigger. π
It gets messier too. Some service providers want more control over which exit points their clients use, based on things like traffic type, traffic load, and so on. π That makes it even less likely the route reflector picks the best path from the client's perspective. So the best path the route reflector chooses isn't necessarily the one the client would have chosen if it had looked at the same set of candidate paths as the route reflector. Main character problem, honestly. πΈ
2. Terminology π
This memo uses the terms defined in [RFC4271] and [RFC4456]. π
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. Modifications to BGP Route Selection π¦
The core of this solution is letting an operator specify the IGP location that the route reflector uses to calculate interior cost to the next hop. π§ An IGP location is a node in the IGP topology. It's identified by an IP address of that node (for example, a loopback address). It can be configured per route reflector, per set of clients, or per client. β¨ With that config, the route reflector can select and distribute routes to a given set of clients using the shortest distance to the next hops from the selected IGP location. This gives you freedom about where the route reflector physically lives, and lets you move this control plane function, temporarily or permanently, to an arbitrary location with no impact on IP transit. π
The operator picks the granularity: route reflector, set of clients, or client. π An implementation counts as compliant with this document if it supports at least one of those grouping categories. π
For route selection, a client's perspective can differ from that of a route reflector or another client in two distinct ways:
- It has a different position in the IGP topology.
- It can have a different routing policy.
These two factors match the issues we just went over. π
This document defines two changes to the BGP route selection algorithm for BGP route reflectors [RFC4456]:
- The first change, introduced in Section 3.1, is related to the IGP cost to the BGP next hop in the BGP Decision Process. It uses the IGP cost from a different IGP location than the route reflector itself. π₯
- The second change, introduced in Section 3.2, extends the granularity of the BGP Decision Process so you can run multiple Decision Processes, each using a different perspective or policy. π
A route reflector can implement either or both of these modifications, so it can choose the best path for its clients that the clients themselves would have picked from the same set of candidate paths. π«Ά
A big perk here is that the route reflector's clients don't need to be modified at all. Iykyk, that's huge. πΈ
3.1. Route Selection from a Different IGP Location π§
In this approach, "optimal" refers to the decision where the interior cost of a route is determined during step e) of Section 9.1.2.2 ("Breaking Ties (Phase 2)") of [RFC4271]. It doesn't apply to path selection preference based on other policy steps and provisions. π
On top of the change specified in Section 9 of [RFC4456], the text in step e) of Section 9.1.2.2 of [RFC4271] is modified. π¦
RFC 4271 reads:
e) Remove from consideration any routes with less-preferred interior cost. The interior cost of a route is determined by calculating the metric to the NEXT_HOP for the route using the Routing Table.
This document modifies this text to read:
e) Remove from consideration any routes with less-preferred interior cost. The interior cost of a route is determined by calculating the metric from the selected IGP location to the NEXT_HOP for the route using the shortest IGP path tree rooted at the selected IGP location.
To compute the shortest path tree rooted at the selected IGP locations, you need knowledge of the IGP topology for the area or level that includes each of those locations. π§ You can get that from a link-state IGP, like IS-IS [ISO10589] or OSPF [RFC2328] [RFC5340], or through the Border Gateway Protocol - Link State (BGP-LS) [RFC7752]. β¨ When you specify the logical location of a route reflector for a group of clients, one or more backup IGP locations SHOULD be allowed to be specified for redundancy. π More deployment considerations are coming up in Section 4. π
Okay that's the first chunk, bestie π«Ά Part 2 picks up right where we left off, with Section 3.1.1 (the restriction when the BGP Next Hop is a BGP route) and then 3.2, Deployment Considerations, Security, IANA, and the references. π
3.1.1. Restriction when the BGP Next Hop Is a BGP Route
Okay so, when the BGP next hop is a BGP route itself πΈ, the IGP metric of the route used to resolve it SHOULD be the final IGP cost to reach that next hop π . If an implementation can't tell BGP the final IGP metric to a recursive next hop, it MUST treat those paths as least preferred during next-hop metric comparisons π. BUT, those paths MUST still be considered valid for BGP Phase 2 route selection β¨. They're not out of the running, bestie π.
3.2. Multiple Route Selections
A BGP route reflector as per [RFC4456] runs a single BGP Decision Process π¦. BGP Optimal Route Reflection (BGP ORR) may require multiple BGP Decision Processes, or subsets of the Decision Process, so it can consider different IGP locations or BGP policies for different sets of clients. This is very similar to what is defined in [RFC7947], Section 2.3.2.1 π.
If the required routing optimization is limited to the IGP cost to the BGP next hop, only step e) and subsequent steps as defined in [RFC4271], Section 9.1.2.2 need to be run multiple times π§.
If the routing optimization requires different BGP policies for different sets of clients, a larger part of the Decision Process needs to be run multiple times, up to the whole Decision Process as defined in Section 9.1 of [RFC4271] π. This is the case, for example, when you need different policies to compute different degrees of preference during Phase 1. It's needed for traffic engineering use cases, or for dedicating certain exit points to certain clients π. In the latter case, the user may specify and apply a general policy on the route reflector for a set of clients. Regular path selection, including IGP perspectives for a set of clients as per Section 3.1, is then applied to the candidate paths to select the final paths to advertise to the clients β¨.
4. Deployment Considerations π
BGP ORR gives us a model for bringing the client's perspective into the BGP route selection Decision Process for route reflectors π. More specifically, the choice of BGP path takes into account either the IGP cost between the client and the next hop (rather than the IGP cost from the route reflector to the next hop) or other user-configured policies π.
Getting optimal routing between clients of different clusters relies on all route reflectors learning all paths that are eligible for consideration. To meet that requirement, BGP ADD-PATH [RFC7911] needs to be deployed between route reflectors π₯.
This solution can be deployed in hop-by-hop forwarding networks as well as in end-to-end tunneled environments π¦. To avoid routing loops in networks with multiple route reflectors and hop-by-hop forwarding without encapsulation, it is essential that the network topology be carefully considered when designing a route reflection topology (see also Section 11 of [RFC4456]) π«Ά.
As discussed in Section 11 of [RFC4456], the IGP locations of BGP route reflectors matter a lot and have routing implications π. The same goes for the choice of the IGP locations configured on optimal route reflectors. If a backup location is provided, it is used when the primary IGP location disappears from the IGP (i.e., fails). Just like the failure of a route reflector [RFC4456], this may change the paths selected and advertised to the clients, and in general, the post-failure paths are expected to be less optimal. How much this matters depends on the IGP topologies and the IGP distance between the primary and backup IGP locations: the smaller the distance, the smaller the potential impact πΈ.
After selecting N suitable IGP locations, an operator can choose to enable route selection for all of them on all or on a subset of their route reflectors. The operator may instead deploy single or multiple (backup case) route reflectors for each IGP location, or create any design in between π . That choice may depend on the operational model (centralized vs. per region), an acceptable blast radius in case of failure, an acceptable number of IBGP sessions for the mesh between the route reflectors, performance, and the configuration granularity of the equipment β¨.
With this approach, an ISP can apply a hot potato routing policy even if route reflection has been moved out of the forwarding plane and hop-by-hop forwarding has been replaced by end-to-end MPLS or IP encapsulation π§. Compared with deploying ADD-PATH on all routers, BGP ORR reduces the amount of state that needs to be pushed to the edge of the network in order to perform hot potato routing π.
Modifying the IGP location of BGP ORR does not interfere with policies enforced before IGP tie-breaking (step e) of [RFC4271], Section 9.1.2.2) in the BGP Decision Process π.
Calculating routes for different IGP locations requires multiple Shortest Path First (SPF) calculations and multiple (subsets of) BGP Decision Processes. That means more computing resources π». This document allows for different granularity, such as one Decision Process per route reflector, per set of clients, or per client. Finer granularity may translate into more optimal hot potato routing, at the cost of more computing power π¦. Configuring an IGP location per client gives the highest precision, since each client can be associated with its ideal (own) IGP location. However, doing so may affect performance (as explained above) π. Using an IGP location per set of clients means some loss of precision, but it reduces the impact on the performance of the route reflector π. If one IGP location is selected for the whole routing instance, you get the lowest precision, but the impact on performance is minimal π. In that last mode of operation, both precision and performance are equal to route reflection as described in [RFC4456] π. Whether fine-grained computations are feasible depends on the platform and hardware deployed, the number of clients, the number of BGP routes, and the size of the IGP topology. In essence, sizing considerations are similar to those for deploying BGP route reflectors π«Ά.
5. Security Considerations π
The extension specified in this document provides a new metric value, using additional information, for computing routes for BGP route reflectors. Any improperly used metric value could impact the resiliency of the network, so please be careful π¨. That said, this extension does not change the underlying security issues inherent in the existing IBGP per [RFC4456] π.
This document does not introduce requirements for any new protection measures π‘οΈ.
6. IANA Considerations πΈ
This document has no IANA actions β¨.
7. References π
7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[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>.
[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>.
[RFC7911] Walton, D., Retana, A., Chen, E., and J. Scudder,
"Advertisement of Multiple Paths in BGP", RFC 7911,
DOI 10.17487/RFC7911, July 2016,
<https://www.rfc-editor.org/info/rfc7911>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
7.2. Informative References
[ISO10589] International Organization for Standardization,
"Intermediate system to Intermediate system intra-domain
routeing information exchange protocol for use in
conjunction with the protocol for providing the
connectionless-mode Network Service (ISO 8473)", ISO/IEC
10589:2002, Second Edition, November 2002.
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
DOI 10.17487/RFC2328, April 1998,
<https://www.rfc-editor.org/info/rfc2328>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
2006, <https://www.rfc-editor.org/info/rfc4364>.
[RFC5340] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
<https://www.rfc-editor.org/info/rfc5340>.
[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>.
[RFC7947] Jasinska, E., Hilliard, N., Raszuk, R., and N. Bakker,
"Internet Exchange BGP Route Server", RFC 7947,
DOI 10.17487/RFC7947, September 2016,
<https://www.rfc-editor.org/info/rfc7947>.
Acknowledgments π«Ά
The authors would like to thank Keyur Patel, Eric Rosen, Clarence Filsfils, Uli Bornhauser, Russ White, Jakob Heitz, Mike Shand, Jon Mitchell, John Scudder, Jeff Haas, Martin DjernΓ¦s, Daniele Ceccarelli, Kieran Milne, Job Snijders, Randy Bush, Alvaro Retana, Francesca Palombini, Benjamin Kaduk, Zaheduzzaman Sarker, Lars Eggert, Murray Kucherawy, Tom Petch, and Nick Hilliard for their valuable input π.
Contributors π·
The following persons contributed substantially to the current format of the document π :
Stephane Litkowski
Cisco Systems
Email: slitkows.ietf@gmail.com
Adam Chappell
GTT Communications, Inc.
Aspira Business Centre
Bucharova 2928/14a
158 00 Prague 13 StodΕ―lky
Czech Republic
Email: adam.chappell@gtt.net
Authors' Addresses π
Robert Raszuk (editor)
NTT Network Innovations
Email: robert@raszuk.net
Bruno Decraene (editor)
Orange
Email: bruno.decraene@orange.com
Christian Cassar
Email: cassar.christian@gmail.com
Erik Γ
man
Email: erik.aman@aman.se
Kevin Wang
Juniper Networks
10 Technology Park Drive
Westford, MA 01886
United States of America
Email: kfwang@juniper.net
π¦ where this page comes from
- ietf: rfc9107 2021-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms