RFC 3765

NOPEER Community for Border Gateway Protocol (BGP) Route Scope Control

๐Ÿ“… published April 2004, from ietf

RFC 3765: NOPEER Community for Border Gateway Protocol (BGP) Route Scope Control ๐ŸŽ€

okay bestie, so this is RFC 3765, and it's giving informational vibes ๐Ÿ’… It was written by G. Huston from Telstra and dated April 2004. The title block doesn't list any RFCs it obsoletes or updates, so it's just doing its own thing ๐Ÿฆ‹


Status of This Memo โœจ

this memo is here to give info to the internet community ๐ŸŒ it does not specify an internet standard of any kind, and distribution of it is unlimited ๐Ÿ’–

Copyright (C) The Internet Society (2004). All Rights Reserved. ๐Ÿ’œ

Abstract ๐ŸŒธ

okay so this doc describes how to use a scope control Border Gateway Protocol (BGP) community ๐Ÿ›ฃ๏ธ it's a well-known advisory transitive community, and it lets an origin AS decide how far a specific route should get propagated outside its network ๐ŸŒ the star of the show is NOPEER, which lets an origin AS say that a route with this attribute doesn't need to be advertised across bilateral peer connections ๐Ÿ™ˆ


1. Introduction ๐Ÿงš

so BGP today has a limited number of commonly defined mechanisms for letting a route get propagated across some subset of the routing system ๐Ÿ˜ญ the NOEXPORT community lets a BGP speaker say that redistribution should only stretch to the neighbouring AS ๐Ÿซถ providers also tend to define a bunch of communities so their neighbours can say how advertised routes should get re-advertised ๐Ÿ’… right now, the operational practice is that these communities get defined on an AS by AS basis. they let an AS influence re-advertisement of routes passed from a neighbouring AS, but they don't let that scope definition get passed along transitively to a remote AS ๐Ÿšซ

advertisement scope specification is most useful for setting the boundary conditions of route propagation โœจ it can look like a bunch of different things: an AS transit hop count, a set of target ASs, the presence of a particular route object, or a particular characteristic of the inter-AS connection ๐ŸŽ€

there are a bunch of reasons to control the scope of advertising route prefixes ๐ŸŒˆ like supporting limited transit services where advertisements are restricted to certain transit providers, and different kinds of selective transit in a multi-homed environment ๐Ÿ‘‘

this memo doesn't try to cover all of those scope control motivations. it focuses on the situation of both multi-homing and traffic engineering ๐Ÿ”ฅ the commonly adopted operational technique is that the originating AS advertises an encompassing aggregate route to all multi-home neighbours, and also selectively advertises a collection of more specific routes. this makes a form of destination-based traffic engineering with some level of fail over protection ๐Ÿ›Ÿ the more specific routes usually stop being useful for any traffic engineering outcome beyond a certain radius of redistribution. so a way of saying those routes don't need to be distributed beyond that point is worth a lot, because it helps moderate one of the factors behind continued route table growth ๐Ÿ“ˆ

analysis of BGP routing tables shows a big use of advertising more specific prefixes alongside a covering aggregate ๐Ÿ‘€ to help with the overall growth of BGP routing tables across the Internet, plus the burden of globally propagating dynamic changes in reachability of those more specific prefixes, this memo describes a transitive BGP route attribute ๐Ÿ’– it lets more specific route table entries get discarded from BGP tables under appropriate conditions. specifically, NOPEER lets a remote AS not advertise a route object to a neighbour AS when the two ASs are interconnected under some form of sender keep all arrangement, as opposed to some form of provider / customer arrangement ๐Ÿค


2. NOPEER Attribute ๐Ÿฆ„

this memo defines the use of a new well-known BGP transitive community, NOPEER ๐ŸŽ€

the semantics here are that an AS can interpret the presence of this community as an advisory qualification on readvertising a route prefix. it lets an AS not readvertise the route prefix to all external bilateral peer neighbour ASs ๐Ÿ™Œ it's consistent with these semantics that an AS may filter received prefixes that come across a peering session the receiver regards as a bilateral peer session ๐Ÿ”

3. Motivation ๐Ÿ’ซ

the size of the BGP routing table has been growing at an accelerating rate since late 1998 ๐Ÿ“ˆ๐Ÿš€ when this memo was published, the BGP forwarding table had over 118,000 entries. the three year growth rate of this table shows a trend that can be correlated to a compound growth rate of no less than 10% per year [2] ๐Ÿ˜ณ

one thing about the current BGP routing table is how widespread it is to advertise both an aggregate and a bunch of more specific address prefixes ๐Ÿ“ for example, the table might have a routing entry for the prefix 10.0.0.0/23 and also entries for the prefixes 10.0.0.0/24 and 10.0.1.0/24. here the specific routes fully cover the aggregate announcement ๐Ÿ™Œ sparse coverage of aggregates with more specifics is also observed. for example, routing entries for 10.0.0.0/8 and 10.0.1.0/24 can both exist in the routing table ๐Ÿ‘€ all together, these more specific route entries take up some 51% of the routing table. so more than half the routing table doesn't add any new address reachability info to the routing system. instead, it's used to impose a finer level of detail on existing reachability info ๐Ÿ’…

there are a bunch of reasons to have both an aggregate route and a number of more specific routes in the routing table, including various multi-homed setups where there's a need to specify a different reachability policy for part of the advertised address space ๐Ÿงฉ

one common requirement in multi-homed network configurations is doing some form of load balancing of incoming traffic across several external connections to several different neighbouring ASs โš–๏ธ say an AS wants a multi-homed config for routing-based load balancing and some form of mutual fail over between its multiple access connections for incoming traffic. one approach is for the AS to advertise the same aggregate address prefix to several upstream transit providers, then advertise a number of more specifics to individual upstream providers ๐Ÿ›ฐ๏ธ in that case, all the traffic headed for the more specific prefixes will only be received over those connections where the more specific has been advertised. if the neighbour BGP peering session carrying the more specific advertisement fails, the more specific stops being announced, and incoming traffic gets passed to the originating network based on the path tied to the advertisement of the encompassing aggregate ๐Ÿ”„ the more specific routes aren't automatically subsumed by the aggregate at any remote AS, though. both the aggregate and the associated more specifics get redistributed across the entire external BGP routing domain ๐ŸŒŠ in lots of cases, especially with traffic engineering and service resilience in mind, the more specific routes get redistributed well beyond the scope where they make any difference to traffic differentiation ๐Ÿ˜ญ

to the extent that remote analysis of BGP tables can see this kind of config, the entries in the BGP forwarding table where more specific entries share a common origin AS with their immediately enclosing aggregates make up some 20% of the total number of FIB entries ๐Ÿ“Š using a slightly stricter criteria, where the AS path of the more specific route matches the immediately enclosing aggregate, more specific routes make up some 14% of the FIB entries ๐Ÿงฎ

one protocol mechanism that could be useful here is letting the originator of an advertisement state some extra qualification on its redistribution. that way a remote AS can suppress further redistribution under originator-specified criteria ๐Ÿ”

the redistribution qualification condition can be specified either by enumeration or by classification ๐Ÿ—‚๏ธ enumeration would use a well-known transitive extended community to specify a list of remote ASs where further redistribution isn't advised. the weakness of this approach is that the originating AS would need to constantly revise this enumerated AS list to reflect changes in inter-AS topology. otherwise the more specific routes would leak beyond the intended redistribution scope ๐Ÿ’€ classification lets an originating AS specify the conditions where further redistribution isn't advised, without having to name the particular ASs where a match to those conditions is expected โœจ

the approach here to specifying the redistribution boundary condition is based on the type of bilateral inter-AS peering ๐Ÿค when one AS can be considered a customer, and the other AS can be considered a contracted agent of the customer, or provider, then the relationship is one where the provider, as an agent of the customer, carries the routes and the associated policy attached to them ๐Ÿ“ฆ when neither AS can be considered a customer of the other, the relationship is bilateral peering, and neither AS can be considered an agent of the other when redistributing policies tied to routes ๐Ÿซฑ๐Ÿซฒ this latter arrangement is commonly called a "sender keep all peer" relationship, or "peering" ๐Ÿ’œ

this peer boundary can be seen as a logical point where redistribution of the additional reachability policy the origin AS imposed on a route is no longer a required thing ๐Ÿ›‘

this approach lets a prefix originator attach a commonly defined policy to a route prefix, and indicate that the route should be re-advertised conditionally, based on the characteristics of the inter-AS connection ๐ŸŽ€

4. IANA Considerations ๐Ÿ“‹

the IANA has registered NOPEER as a well-known community, as defined in [1], with global significance ๐ŸŒ

NOPEER (0xFFFFFF04)

this is an advisory qualification on readvertising a route prefix, letting an AS not readvertise the route prefix to all external bilateral peer neighbour ASs. it's consistent with these semantics that an AS may filter received prefixes that come across a peering session the receiver regards as a bilateral peer sessions ๐Ÿ™ˆ

5. Security Considerations ๐Ÿ”

Okay so bestie, this section is the one where we get real, because BGP is basically a game of telephone where every router is a relay. ๐Ÿ“ž Route info gets received, processed, and forwarded along, and BGP has no specific mechanisms to stop a forwarding agent from messing with it. So routing info can get modified, deleted, or have false stuff slipped in, and neither the originator nor any of the recipients would know. Yikes, that's giving chaos ๐Ÿ’€

The NOPEER community does not change that. It doesn't fix the integrity of BGP as a routing system at all ๐Ÿซถ

Now the spicy part: using NOPEER can actually introduce new attack mechanisms into BGP ๐Ÿ˜ญ It opens the door to man-in-the-middle, session-hijacking, or denial of service attacks against an address prefix range, and a remote AS could be the one launching them. Not me being dramatic, it's literally on the page ๐Ÿ™ˆ

Unauthorized addition of this community to a route prefix by a transit provider with no covering aggregate route prefix can cause a denial of service attack, because the prefix becomes unreachable. ๐Ÿšซ

Even if there is a covering aggregate, if the more specific route has a different origin AS than the aggregate, a transit AS adding this community can still cause a denial of service attack on the origin AS of that more specific prefix. Main character energy for the wrong reasons ๐Ÿ’…

Last thing, and it's kind of a bummer: BGP is already vulnerable to denial of service through injected false routing information. On top of that, NOPEER can be used to limit how far a false route gets redistributed. So its visibility stays small, and detecting and fixing the problem gets way harder when redistribution is limited ๐ŸŒง๏ธ Lowkey the sneakiest part of this whole doc โœจ

6. References ๐Ÿ“š

6.1. Normative References ๐ŸŽ€

[1] Chandrasekeran, R., Traina, P. and T. Li, "BGP Communities Attribute", RFC 1997, August 1996.

6.2. Informative References ๐ŸŒธ

[2] Huston, G., "Commentary on Inter-Domain Routing in the Internet", RFC 3221, December 2001.

7. Author's Address ๐Ÿฆ‹

Geoff Huston Telstra

EMail: gih@telstra.net

Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78 and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property ๐Ÿ’œ

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- ipr@ietf.org.

Acknowledgement ๐Ÿซถ

Funding for the RFC Editor function is currently provided by the Internet Society.

๐Ÿ“ฆ where this page comes from