RFC 7313
Enhanced Route Refresh Capability for BGP-4
Part 1 of 2 ๐
RFC 7313: Enhanced Route Refresh Capability for BGP-4 โจ
okay bestie, this is RFC 7313 ๐ฆ a Standards Track doc from the IETF, published July 2014 (ISSN 2070-1721). the authors are K. Patel, E. Chen, and B. Venkatachalapathy, all from Cisco Systems ๐ . it updates RFC 2918, which is the original route refresh spec, and its header doesn't list anything it obsoletes. the whole vibe is BGP-4 route refresh getting a glow-up ๐
Abstract ๐ธ
in this doc, we level up the existing BGP route refresh stuff so there's a clear start and end marker for a route refresh ๐ฉ that makes it way easier to fix BGP Routing Information Base (RIB) inconsistencies without disrupting anything. this doc also updates RFC 2918 ๐
Status of This Memo ๐
this is an Internet Standards Track document ๐ซถ
it's a product of the Internet Engineering Task Force (IETF) and 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 5741 ๐
for info on the current status of this doc, any errata, and how to give feedback, go to http://www.rfc-editor.org/info/rfc7313 โจ
Copyright Notice ยฉ๏ธ
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved. ๐
this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stood on the publication date. read those carefully, because they spell out your rights and restrictions for this doc ๐ any Code Components pulled out of this doc have to include the Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Simplified BSD License says ๐
Table of Contents ๐๏ธ
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Requirements Language . . . . . . . . . . . . . . . . . . . . 2
3. Protocol Extensions . . . . . . . . . . . . . . . . . . . . . 2
3.1. Enhanced Route Refresh Capability . . . . . . . . . . . . 3
3.2. Subtypes for ROUTE-REFRESH Message . . . . . . . . . . . 3
4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5. Error Handling . . . . . . . . . . . . . . . . . . . . . . . 5
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
7. Security Considerations . . . . . . . . . . . . . . . . . . . 7
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7
9. Normative References . . . . . . . . . . . . . . . . . . . . 7
1. Introduction โจ
sometimes you NEED to check that BGP routing is consistent between speakers, like making sure no route withdrawals got lost along the way [RFC4271] ๐ต๏ธโโ๏ธ right now that's usually an offline, manual process, which is tedious and eats up so much time ๐ญ
so this doc upgrades the existing BGP route refresh mechanisms [RFC2918] with a clear beginning and ending for a route refresh. a route refresh here means the full re-advertisement of the Adj-RIB-Out to a peer, subject to routing policies ๐ง the upgrade makes it possible to do online, non-disruptive consistency checks on BGP routing updates, which is so iconic ๐
this doc updates [RFC2918] by redefining a field in the ROUTE-REFRESH message that used to be marked as Reserved ๐
2. Requirements Language ๐
okay so the BCP 14 key words, "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL", mean what [RFC2119] says only when they're written in all caps ๐ in lowercase or mixed case they're just regular English words with no normative meaning at all ๐
3. Protocol Extensions ๐ฆ
this doc adds two things to BGP: a brand new BGP capability called the "Enhanced Route Refresh Capability", and the message subtypes for the ROUTE-REFRESH message ๐
3.1. Enhanced Route Refresh Capability ๐ธ
the "Enhanced Route Refresh Capability" is a new BGP capability [RFC5492] ๐ฅ IANA gave it Capability Code 70, and the Capability Length field for it is zero ๐
when a BGP speaker advertises this capability to a peer, it's basically saying "hey, I support the ROUTE-REFRESH message subtypes and the related procedures in this doc" ๐ซถ
3.2. Subtypes for ROUTE-REFRESH Message ๐
the "Reserved" field in the ROUTE-REFRESH message from [RFC2918] got redefined as the "Message Subtype" field, with these values:
0 - Normal route refresh request [RFC2918]
with/without Outbound Route Filtering (ORF) [RFC5291]
1 - Demarcation of the beginning of a route refresh
(BoRR) operation
2 - Demarcation of the ending of a route refresh
(EoRR) operation
255 - Reserved
every other subtype value is reserved for future use, so check Section 6 ("IANA Considerations") for that ๐ฎ and the way the new subtypes actually get used is in Section 4 ("Operation") ๐
4. Operation ๐ ๏ธ
okay the vibe here: any BGP speaker that supports the ROUTE-REFRESH subtypes and the related procedures SHOULD advertise the "Enhanced Route Refresh Capability" โจ
the procedures below only apply if a BGP speaker has received the "Enhanced Route Refresh Capability" from a peer ๐
before a speaker starts a route refresh, whether it's started locally or as a reply to a "normal route refresh request" from the peer, the speaker MUST send a BoRR message ๐ฉ once it's finished re-advertising the entire Adj-RIB-Out to the peer, it MUST send an EoRR message ๐
conceptually, the "entire Adj-RIB-Out" for a peer means every route entry in that peer's Adj-RIB-Out at the moment the route refresh starts ๐ง those entries cover both the reachability info and the unreachability info ๐
when a route entry in the Adj-RIB-Out changes, only the modified entry needs to get advertised ๐ฆ no need to resend the whole thing, bestie ๐
when a BGP speaker processes a ROUTE-REFRESH message from a peer, it MUST look at the "message subtype" field and take the right actions ๐ the processing rules for subtype 0 are in [RFC2918] and [RFC5291] ๐ a BGP speaker can get a BoRR message from a peer at any time, either because the peer is answering a ROUTE-REFRESH message or because the peer decided to start a route refresh on its own ๐ค
when a BGP speaker gets a BoRR message from a peer, it MUST mark every route with that Address Family Identifier and Subsequent Address Family Identifier, <AFI, SAFI> [RFC2918], from that peer as stale ๐ซฅ as the peer's re-advertisement of its Adj-RIB-Out comes in, those new routes replace any matching stale routes โป๏ธ when the speaker gets an EoRR message from a peer, it MUST immediately remove any routes from that peer still marked as stale for that <AFI, SAFI> ๐๏ธ those purged routes MAY be logged for future analysis ๐ a BGP speaker MAY ignore any EoRR message it gets without first receiving an associated BoRR message ๐ those messages MAY be logged for future analysis too ๐
an implementation MAY set a locally configurable upper bound on how long it keeps stale routes โณ once that bound is hit, the implementation MAY remove any routes from the peer that are still stale for that <AFI, SAFI>, without waiting for an EoRR message ๐จ
the next bit is about making this play nice with BGP Graceful Restart [RFC4724]. the point is to keep the End-of-RIB (EoR) from Graceful Restart and the EoRR from this spec separate, so stale routes don't get cleaned up too early ๐ฅบ
for a BGP speaker that supports BGP Graceful Restart, it MUST NOT send a BoRR for an <AFI, SAFI> to a neighbor before it sends that neighbor the EoR for the same <AFI, SAFI> ๐ซ and a BGP speaker that got the Graceful Restart Capability from its neighbor MUST ignore any BoRRs for an <AFI, SAFI> from that neighbor until it has received the EoR for that <AFI, SAFI> from the neighbor ๐ the BGP speaker SHOULD log an error for that condition so it can be analyzed later ๐
Part 2 is coming next, bestie ๐ง
7. Security Considerations ๐
okay so bestie, security considerations are given in [RFC4272] ๐ซถ, but ngl that doc doesn't cover Route-Refresh or a bunch of other BGP extensions ๐ญ. this document doesn't really change the underlying security issues for Route-Refresh ๐ , although better error handling may help with operational security โจ. not me being dramatic but the security story is a whole vibe, go read the older stuff ๐
8. Acknowledgements ๐
the authors wanna give a big shoutout to Pedro Marques, Pradosh Mohapatra, Robert Raszuk, Pranav Mehta, Shyam Sethuram, Bruno Decraene, Martin Djernaes, Jeff Haas, Ilya Varlashkin, Rob Shakir, Paul Jakma, Jie Dong, Qing Zeng, Albert Tian, Jakob Heitz, and Chris Hall for reviewing and leaving comments ๐ธ. they also thank John Scudder for his review and contribution to this document ๐ literally iconic behavior ๐
9. Normative References ๐
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [RFC2918] Chen, E., "Route Refresh Capability for BGP-4", RFC 2918, September 2000.
- [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway Protocol 4 (BGP-4)", RFC 4271, January 2006.
- [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", RFC 4272, January 2006.
- [RFC4724] Sangli, S., Chen, E., Fernando, R., Scudder, J., and Y. Rekhter, "Graceful Restart Mechanism for BGP", RFC 4724, January 2007.
- [RFC5291] Chen, E. and Y. Rekhter, "Outbound Route Filtering Capability for BGP-4", RFC 5291, August 2008.
- [RFC5492] Scudder, J. and R. Chandra, "Capabilities Advertisement with BGP-4", RFC 5492, February 2009.
Authors' Addresses ๐
Keyur Patel
Cisco Systems
170 W. Tasman Drive
San Jose, CA 95134
USA
EMail: keyupate@cisco.com
Enke Chen
Cisco Systems
170 W. Tasman Drive
San Jose, CA 95134
USA
EMail: enkechen@cisco.com
Balaji Venkatachalapathy
EMail: balaji_pv@hotmail.com
that's the whole RFC, bestie ๐๐ฆ you did amazing, go touch some grass and then read it again ๐ โจ
๐ฆ where this page comes from
- ietf: rfc7313 2014-07
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms