BGP Route Reflection
When the Border Gateway Protocol 4 (BGP-4) was defined in RFC 1771, the rules of deployment specified that all routers running the protocol (BGP speakers) within a single Autonomous System (AS) had to be fully meshed. This requirement for complete internal BGP (IBGP) exchange was necessary to re-distribute external routing information to all other routers within the AS. With n*(n-1)/2 unique IBGP sessions for n BGP speakers, scaling issues quickly became evident.
In a fully meshed BGP configuration, any routes learned from an IBGP peer is not re-announced to other internal peers. In BGP Route Reflection, this rule has been relaxed. A BGP speaker that is configured as a "Route Reflector" (RR) can re-announce routes (under certain conditions) that are learned via IBGP to its internal peers.
Internal peers of a RR are divided into two categories:
- Client peers. Client peers along with the RR form a "Cluster". Client peers within a Cluster need not be fully meshed.
- Non-Client peers. Non-Client peers inclusive of the RR have to be fully meshed.
When a RR has selected a best path among the routes learned from it IBGP peers, it performs the following operation:
- If the route was learned from a Non-Client IBGP peer, it is re-announced (or reflected) out to all Client peers.
- If the route was received from a Client peer, it is reflected to all Client AND Non-Client peers.
NB: Please refer to (RFC 2796) for a formal discussion.
Recently, it has been discovered that persistent BGP route oscillations and stable routing loops can occur when BGP route reflection is deployed in specific configurations. The two main factors that contribute to the formation of BGP route oscillations and stable routing loops are, i. the BGP route selection rules (as defined in BGP-4), and ii. the dissemination of routing information in a BGP Route Reflection setup.
i. With the current definition of BGP tie breaking rules, the selection for best path among competing route announcements may have dissimilar outcomes when compared on different criterion (such as MULTI_EXIT_DISC value, external vs internal peering, interior cost, or BGP Identifier).
ii. In a BGP Route Reflection setup, complete visibility of every exit point is not available to all internal routers. This in turn can result in path selections that are based on incomplete route announcement information.
BGP Route Oscillations
Examples of BGP route oscillations are discussed in the following:
- Type I Churn:
- Variant of Type I Churn:
Stable Routing Loops
An examples of a stable routing loop is discussed in the following:
- Graphical presentation: BGP_Routing_Loop_v1.2.pdf