BGP: Route Reflector

    BGP: Route Reflector
    Technology: Routing

    Area: IGP/EGP

    Vendor: Cisco

    Title: BGP Route Reflector

    Software: 12.X , 15.X, IP Services

    Platform: Catalyst 3560, 3750, 3850, 4500, 6500, ISR/ASR Routers

     

    Functionality of route reflections was designed to avoid a necessity of configuring a fully meshed iBGP peering across entire autonomous system. The router which plays this role reflect all prefixes received from every iBGP neighbor without modification of attributes. In that manner route reflector could be outside the transit traffic and be central point only for network control packets. It is worth to mention that in general only the best route is reflected which has negative impact on multi path load balancing scenarios.

    To prevent the routing loops route reflector is obligated to attached below attributes to every prefix:

    ORGINATOR – BGP router-id of the neighbor from which it learned the prefix, the prefix
    is discarded when ORGINATOR field matches BGP_ROUTER_ID,
    CLUSTER_LIST – either BGP router-id of route-reflector or manually specified parameter,
    the prefix is discarded when CLUSTER_LIST already contains one of above values.

    To configure router R1 as a route-reflector for R2 and R3 iBGP neighbors:

    R1# configure terminal
    R1 (config)# router bgp 100
    R1 (config-router)# bgp router-id 1.1.1.1
    R1 (config-router)# neighbor 10.10.12.2 remote-as 100
    R1 (config-router)# neighbor 10.10.12.2 route-reflector-client
    R1 (config-router)# neighbor 10.10.12.2 description R2
    R1 (config-router)# neighbor 10.10.13.2 remote-as 100
    R1 (config-router)# neighbor 10.10.13.2 route-reflector-client
    R1 (config-router)# neighbor 10.10.13.2 description R3
    R1 (config-router)# exit

     

    R2# configure terminal
    R2 (config)# router bgp 100
    R2 (config-router)# bgp router-id 2.2.2.2
    R2 (config-router)# neighbor 10.10.12.1 remote-as 100
    R2 (config-router)# redistribute connected route-map LOOPBACK_PREFIXES


    R3# configure terminal
    R3 (config)# router bgp 100
    R3 (config-router)# bgp router-id 3.3.3.3
    R3 (config-router)# neighbor 10.10.13.1 remote-as 100

     

    Verification commands:

    R1# show bgp ipv4 unicast summary
    Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
    10.10.12.2 4 100 40 64 5 0 0 00:07:53 2
    10.10.13.2 4 100 48 47 5 0 0 00:07:53 0

     

    R1# show bgp ipv4 unicast
    Network Next Hop Metric LocPrf Weight Path
    *>i192.168.0.0 10.10.12.2 0 100 0 ?
    *>i192.168.1.0 10.10.12.2 0 100 0 ?

     

    R1# show bgp ipv4 unicast 192.168.0.0
    BGP routing table entry for 192.168.0.0/24, version 31
    Paths: (1 available, best #1, table Default-IP-Routing-Table)
    Flag: 0x820
    Advertised to update-groups:
    1
    Local, (Received from a RR-client)
    10.10.12.2 from 10.10.12.2 (2.2.2.2)
    Origin incomplete, metric 0, localpref 100, valid, internal, best
    R1# show bgp ipv4 unicast update-group 1
    BGP version 4 update-group 1, internal, Address Family: IPv4 Unicast
    Route-Reflector Client
    Has 2 members (* indicates the members currently being sent updates):
    10.10.12.2 10.10.13.2

    R3# show bgp ipv4 unicast neighbors 10.10.13.1 routes
    Network Next Hop Metric LocPrf Weight Path
    *>i192.168.0.0 10.10.12.2 0 100 0 ?
    *>i192.168.1.0 10.10.12.2 0 100 0 ?
    R3# show bgp ipv4 unicast 192.168.0.0
    BGP routing table entry for 192.168.0.0/24, version 48
    Paths: (1 available, best #1, table Default-IP-Routing-Table)
    Flag: 0x820
    Not advertised to any peer
    Local
    10.10.12.2 from 10.10.13.1 (1.1.1.1)
    Origin incomplete, metric 0, localpref 100, valid, internal, best
    Originator: 2.2.2.2, Cluster list: 1.1.1.1

    Without route reflector functionality configured, R1 will not reflect prefixed from R2 to R3:

    R1# show bgp ipv4 unicast 192.168.0.0
    BGP routing table entry for 192.168.0.0/24, version 10
    Paths: (1 available, best #1, table Default-IP-Routing-Table)
    Flag: 0x820
    Not advertised to any peer
    Local
    10.10.12.2 from 10.10.12.2 (2.2.2.2)
    Origin incomplete, metric 0, localpref 100, valid, internal, best