BGP Route Reflectors

First of all, why was the concept of Route Reflectors introduced? It´s quite simple actually. If there is no Route Reflector in the iBGP Network - the prefixes are advertised to the first iBGP neighbor, and that's it, he will not advertise it to the next iBGP neighbor due to the BGP inter protocol loop prevention mechanism. What can we do? We have 2 options:
1. Do a full mesh between all the iBGP neighbors, so that all the prefixes of each router are advertised to each and every one of the other BGP routers separately.
2. Introduce a concept of Route Reflector.

As explained below, like the BGP Confederations - Route Reflectors remove the need for a full-mesh iBGP peering. They let all the routers learn all the iBGP routes (prefixes), and they propagate those prefixes to the other iBGP neighbors, not causing loops in the network. There are 2 types of Route Reflector routers, and they are decided based on  their role in the network. These are Route Reflector SERVER and CLIENT.

Route Reflector SERVER- are allowed to learn the iBGP routes from their CLIENTS, and advertise them to other iBGP peers
*RR Servers act as normal BGP peers with the NON-RR-CLIENT peers and the eBGP peers, meaning - they send all the BGP Updates

Route Reflector CLUSTER - One or more RR Servers and their clients. With MULTIPLE Clusters - at least one of the RRs must be peered with at least one RR in Each Cluster.

There are 3 implemented Loop Prevention Mechanisms:

1. CLUSTER_LIST - The Cluster ID is automatically included into the BGP PA when generated, so the RR rejects the prefixes where their own Cluster ID appears

2. ORIGINATOR_ID - The PA that lists the RID of the first iBGP peer to advertise the route into the AS.

3. Only advertise BEST routes

The configuration is rather simple, and it contains of 2 steps:

Step 1: Define the CLUSTER ID on ALL the routers (in this Example it's 3)

(config-router)#bgp cluster-id 3

Step 2: There is a difference between the RR SERVER and RR CLIENT (under the BGP configuration):

On RR SERVER configure ALL the clients:

(config-router)#neighbor 172.25.185.22 route-reflector-client
(config-router)#neighbor 172.25.186.59 route-reflector-client

Check the status of each Client on the RR SERVER ROUTER:

Cisqueros_R1#show ip bgp neighbors 172.25.185.22 | i Reflector
  Route-Reflector Client
Cisqueros_R1#

*DONT forget to remove the iBGP sessions between CLIENTS, because... well, thats the point of implementing the RRs, to decrease the number of BGP peerings
The Route Reflector will "reflect" the routes received from one iBGP peer to the others.

Have in mind that the RR is a single point of failure in the Network, so - BEST PRACTICE is to have MULTIPLE RR SERVERS

1 comment:

  1. So if you have multiple RR servers in a cluster, what's the cluster ID?

    ReplyDelete

Most Popular Posts