RFC 1965
Autonomous System Confederations for BGP
RFC 1965: Autonomous System Confederations for BGP π
Okay bestie, let's start with the title block π This is an Experimental doc by P. Traina from cisco Systems, dated June 1996. It was filed under the Network Working Group, and it's numbered RFC 1965. Its header has no Obsoletes or Updates line, so it doesn't list anything it replaces or changes πΈ
Status of This Memo π
So this doc defines an Experimental Protocol for the Internet community. It is not an Internet standard of any kind, and they literally want feedback and suggestions for improvement, so speak up if you have ideas π Distribution is unlimited too π¦
Abstract β¨
The Border Gateway Protocol [1] is an inter-autonomous system routing protocol made for TCP/IP networks, aka the thing that routes between big networks π
This doc describes an extension to BGP that lets you make a confederation of autonomous systems. From the outside, that whole group looks like one single autonomous system to any BGP peer that isn't part of the confederation π«Ά
The goal is to help with policy administration and cut down on the management headaches of running a really big autonomous system π
And the best part: this extension is already widely deployed across the Internet today π₯
Introduction π§
Okay so, an autonomous system with a super large number of BGP speakers might want to split into smaller domains. The reason is controlling routing policy using the info in the BGP AS_PATH attribute. For example, you might want to treat every BGP speaker in one geographic region as a single entity πΊοΈ
Also, the usual way to deploy BGP among speakers in the same autonomous system is a full mesh of TCP connections between all of them, so they can swap exterior routing info. Inside an autonomous system, the number of intra-domain connections each border router has to keep up can get seriously big π
Splitting up a large autonomous system cuts the total number of intra-domain BGP connections a lot, because the connectivity needs end up looking like the model already used for inter-domain connections. Iconic efficiency, honestly π
BUT, splitting an autonomous system can make policy routing based on AS_PATH info harder for everyone on the Internet. It also means more maintenance work to coordinate external peering whenever the internal topology of that collection of autonomous systems changes π
Also, dividing a large AS can unnecessarily make the sequence portions of the AS_PATH attribute longer. Lots of common BGP implementations use the number of "hops" needed to reach a destination as part of path selection. It's not the best way to decide route preference, but without other in-band info it's a reasonable default, and lots of the Internet uses it. So splitting an autonomous system into separate systems could hurt optimal routing of packets across the Internet π¬
Here's the good news though. There's usually no need to expose the internal topology of the divided autonomous system. That means a collection of autonomous systems under common administration can be treated as a single entity or autonomous system when viewed from outside the confederation itself π¦
Terms and Definitions π
- AS Confederation: a collection of autonomous systems advertised as a single AS number to BGP speakers that aren't members of the confederation.
- AS Confederation Identifier: an externally visible autonomous system number that identifies the confederation as a whole.
- Member-AS: an autonomous system that's contained in a given AS confederation.
Overview πΈ
IDRP [2] already has the concept of a routing domain confederation. An IDRP routing domain confederation looks like a single administrative entity to IDRP speakers outside the confederation. This extension is built on that work π«Ά
In IDRP, routing domain confederations can be nested inside each other, or be disjoint portions of even larger confederations. The algorithm BGP defines for additions to the AS_PATH attribute adds one more restriction: AS confederations have to be strictly hierarchical in nature π³
AS_CONFED segment type extension π
Right now BGP says the AS_PATH attribute is a well-known mandatory attribute, made up of a sequence of AS path segments. Each AS path segment is represented by a type/length/value triple π
In [1], the path segment type is a 1-octet long field, with two values defined:
Value Segment Type
1 AS_SET: unordered set of ASs a route in the
UPDATE message has traversed
2 AS_SEQUENCE: ordered set of ASs a route in
the UPDATE message has traversed
This doc reserves two more segment types π§
3 AS_CONFED_SET: unordered set of ASs in the local
confederation that the UPDATE message
has traversed
4 AS_CONFED_SEQUENCE: ordered set of ASs in the
local confederation that the UPDATE
message has traversed
Operation βοΈ
Okay so a member of a BGP confederation uses its confederation identifier in all transactions with peers that aren't members of its confederation. That confederation identifier counts as the "externally visible" AS number, and it's the number used in OPEN messages and advertised in the AS_PATH attribute π
A member of a BGP confederation uses its routing domain identifier (the internally visible AS number) in all transactions with peers that are members of the same confederation as the router π«Ά
Finally, a BGP speaker that receives an AS_PATH attribute containing a confederation ID matching its own confederation shall treat that path the same way it would treat a path containing its own AS number. Main character energy for your own AS number β¨
AS_PATH modification rules π¦
Section 5.1.2 of [1] is replaced with the following text. The vibe is: read this one carefully, bestie π
When a BGP speaker propagates a route it learned from another BGP speaker's UPDATE message, it shall modify the route's AS_PATH attribute based on where the BGP speaker that the route will be sent to is located:
- a) When a given BGP speaker advertises the route to another BGP speaker located in its own autonomous system, the advertising speaker shall not modify the
AS_PATHattribute associated with the route. - b) When a given BGP speaker advertises the route to a BGP speaker located in a neighboring autonomous system that is a member of the local autonomous system confederation, then the advertising speaker shall update the
AS_PATHattribute as follows:- 1) if the first path segment of the
AS_PATHis of typeAS_CONFED_SEQUENCE, the local system shall prepend its own AS number as the last element of the sequence (put it in the leftmost position). - 2) if the first path segment of the
AS_PATHis not of typeAS_CONFED_SEQUENCE, the local system shall prepend a new path segment of typeAS_CONFED_SEQUENCEto theAS_PATH, including its own confederation identifier in that segment.
- 1) if the first path segment of the
- c) When a given BGP speaker advertises the route to a BGP speaker located in a neighboring autonomous system that is not a member of the current routing domain confederation, then the advertising speaker shall update the
AS_PATHattribute as follows:- 1) if the first path segment of the
AS_PATHis of typeAS_CONFED_SEQUENCE, that segment and any immediately following segments of the typeAS_CONFED_SETare removed from theAS_PATHattribute, leaving the sanitizedAS_PATHattribute to be operated on by steps 2 or 3. - 2) if the first path segment of the remaining
AS_PATHis of typeAS_SEQUENCE, the local system shall prepend its own confederation identifier as the last element of the sequence (put it in the leftmost position). - 3) if there are no path segments following the removal of the first
AS_CONFED_SET/AS_CONFED_SEQUENCEsegments, or if the first path segment of the remainingAS_PATHis of typeAS_SET, the local system shall prepend a new path segment of typeAS_SEQUENCEto theAS_PATH, including its own confederation identifier in that segment.
- 1) if the first path segment of the
When a BGP speaker originates a route, here's what happens π
- a) The originating speaker shall include an empty
AS_PATHattribute in all UPDATE messages sent to BGP speakers located in its own autonomous system. (An emptyAS_PATHattribute is one whose length field contains the value zero.) - b) The originating speaker shall include its own AS number in an
AS_CONFED_SEQUENCEsegment of theAS_PATHattribute of all UPDATE messages sent to BGP speakers located in neighboring autonomous systems that are members of the local confederation. (In this case, the AS number of the originating speaker's member autonomous system will be the only entry in theAS_PATHattribute.) - c) The originating speaker shall include its own confederation identifier in an
AS_SEQUENCEsegment of theAS_PATHattribute of all UPDATE messages sent to BGP speakers located in neighboring autonomous systems that are not members of the local confederation. (In this case, the confederation identifier of the originating speaker's member confederation will be the only entry in theAS_PATHattribute.)
Common Administration Issues π
It's reasonable for member ASs of a confederation to share a common administration and IGP information for the entire confederation π«Ά
It shall be legal for a BGP speaker to advertise an unchanged NEXT_HOP and MULTI_EXIT_DISCRIMINATOR attribute to peers in a neighboring AS within the same confederation. On top of that, the restriction against sending the LOCAL_PREFERENCE attribute to peers in a neighboring AS within the same confederation is removed π₯ Path selection criteria for information received from members inside a confederation may follow the same rules used for information received from members inside the same autonomous system.
Compatibility π§Έ
All BGP speakers participating in a confederation must recognize the AS_CONFED_SET and AS_CONFED_SEQUENCE segment type extensions to the AS_PATH attribute π
Any BGP speaker that doesn't support these extensions will generate a notification message specifying an "UPDATE Message Error" with a sub-code of "Malformed AS_PATH" π
This compatibility issue means that all BGP speakers participating in a confederation must support BGP confederations. BGP speakers outside the confederation, however, don't need to support these extensions πΈ
Compatibility Discussion π
We looked at using a distinct, optional, transitive attribute to carry AS confederation information, instead of defining new types in the existing AS path attribute. That would relax the requirement that all BGP speakers participating in a confederation must recognize the new segment types, so legacy units could still be used as long as they have no external (i.e. neither inter-AS nor intra-confederation) connectivity π§
At the time of writing, an implementation of this extension as documented is widely deployed throughout the Internet. So the value of any change that's incompatible with this document must be weighed against the benefit gained from relaxing this restriction π
References π
okay so here are the receipts, bestie π
- [1] Rekhter, Y., and T. Li, "A Border Gateway Protocol 4 (BGP-4)", RFC 1771, March 1995.
- [2] Kunzinger, C. Editor, "Inter-Domain Routing Protocol", ISO/IEC 10747, October 1993.
Security Considerations π
okay this one's short but it's giving serious π Security issues are not discussed in this memo. So don't assume this doc has your back on security. You'll need to look for that somewhere else π
Acknowledgments π«Ά
Major shoutout to Ravi Chandra and Yakov Rekhter, who reviewed this document and gave constructive and valuable comments. Iconic reviewers, no cap π
Author's Address π
and here's who wrote it β¨
Paul Traina
cisco Systems, Inc.
170 W. Tasman Dr.
San Jose, CA 95134
EMail: pst@cisco.com
π¦ where this page comes from
- ietf: rfc1965 1996-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms