BGP Route Reflectors

One of the requirements of BGP is that all IBGP peers MUST be fully meshed. This is not a big deal when you are dealing with 4-5 routers, but in larger networks, this can be an administrator’s nightmare. Route-reflectors take care of this problem. The only requirement is that each IBGP speaker MUST establish a peer session with the route-reflector. It is the route-reflector’s job to pass routes between the route-reflector-clients.

The internal peers of the route-reflector are divided into two groups:

  • client peers
  • nonclient peers

When the route reflector receives an advertised route, depending on the neighbor, it takes the following actions:

  • A route from an external BGP speaker is advertised to all clients and nonclient peers.
  • A route from a nonclient peer is advertised to all clients.
  • A route from a client is advertised to all clients and nonclient peers. Hence, the clients need not be fully meshed.

To configure a router as a route-reflector and it’s neighbor as a client:

  Router(config-router)# neighbor {ip-address | peer-group-name} route-reflector-client

If a cluster has more than one route-reflector, use the following command to assign a cluster-id:

  Router(config-router)# bgp cluster-id cluster-id

Route-reflector clients are not required to be fully-meshed by default, so the routes from one client is reflected to other clients. If you are working with a topology where all the clients are fully meshed, then you can turn off client to client reflection of routes:

Router(config-router)# no bgp client-to-client reflection

Route-Reflector Loop Prevention Mechanism:

  • Originator ID
  • Cluster-list
  • Ignore set clauses for outbound route-maps for routes reflected to IBGP peers

 To see the attributes use the following show command

R1#sh ip bgp 6.0.0.0
BGP routing table entry for 6.0.0.0/8, version 7
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0×820
  Advertised to update-groups:
     2        
  Local
    10.1.46.6 (metric 1) from 10.1.14.4 (4.4.4.4)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Originator: 6.6.6.6, Cluster list: 4.4.4.4

To see the clusters where this particular route has passed use the same show command on a client:

R3#sh ip bgp 6.0.0.0
BGP routing table entry for 6.0.0.0/8, version 7
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0×820
  Not advertised to any peer
  Local
    10.1.46.6 (metric 2) from 10.1.13.1 (1.1.1.1)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Originator: 6.6.6.6, Cluster list: 1.1.1.1, 4.4.4.4

To see the originator ID use show ip bgp command on the originating router of the prefix:

R6#sh ip bgp
BGP table version is 7, local router ID is 6.6.6.6
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal,
              r RIB-failure, S Stale
Origin codes: i – IGP, e – EGP, ? – incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*>i1.0.0.0          10.1.14.1                0    100      0 i
*>i2.0.0.0          10.1.12.2                0    100      0 i
*>i3.0.0.0          10.1.13.3                0    100      0 i
*>i4.0.0.0          10.1.46.4                0    100      0 i
*>i5.0.0.0          10.1.45.5                0    100      0 i
*> 6.0.0.0          0.0.0.0                  0         32768 i

About CCIETalk

An Experienced Unified Communications Engineer Specializing in Cisco, Riverbed, VMware and Relevant Technologies. CCIE Voice, CCNA, CCDA, CCNP, CCDP, CCIP, RCSA.

Speak Your Mind