/
Route Reflectors

Route Reflectors


Route Reflectors Command References 


admin@XorPlus# set protocols bgp route-reflector disable [true/false]

Note: This command is to enable/disable route-reflectors.

admin@XorPlus# set protocols bgp route-reflector cluster-id [cluster-id]

Note: This command is to specify a cluster-id.

admin@XorPlus# set protocols bgp peer [bgp peer id] client [true/false]

Note: This command is to specify one BGP peer as RR’s client. 

In some Internet service provider (ISP) networks, the internal BGP mesh can become quite large (more than 100 internal BGP sessions per router), which strongly suggests that some new peering mechanism should be implemented. The route reflector concept is based on the idea of specifying a concentration router to act as a focal point for internal BGP sessions. Multiple (client) BGP routers can peer with a central server (the route reflector), and then route reflectors peer with one another. Although the BGP rule states that routes learned via one IBGP speaker can't be advertised to another IBGP speaker, route reflection allows the route reflector servers to "reflect" routes as described later, thereby relaxing the IBGP full-mesh constraints.

The route reflector is a router that performs the route reflection function. The IBGP peers of the route reflector fall under two categories—clients and nonclients. A route reflector and its clients form a cluster. All peers of the route reflector that are not part of the cluster are nonclients.

Nonclients (standard IBGP speakers) are still required to be fully meshed with one another and the route reflector, because they follow the normal IBGP advertisement rules, although they no longer need to peer with the clients of the route reflectors. Clients should not peer with internal speakers outside their associated cluster.

The route reflector function is implemented only on the route reflector; all clients and nonclients are normal BGP peers that have no notion of the route reflector. Route reflector clients are considered as such only because the route reflector lists them as clients.

Any route reflector that receives multiple routes for the same destination employs the usual BGP decision process to pick the overall best path. The best path would be propagated inside the AS based on the following rules of operation:

  • If the route is received from a nonclient peer, reflect to clients only.
  • If the route is received from a client peer, reflect to all nonclient peers and also to client peers.
  • If the route is received from an EBGP peer, reflect to all client and nonclient peers.

Because route reflection is a concept that applies only internally to an AS, routers external to the AS, which would receive UPDATEs via EBGP, are considered nonclients and follow normal nonclient behavior with respect to sending and receiving UPDATEs.

The Route Reflector Preserves IBGP Attributes

The route reflector concept does not change IBGP behavior—the route reflector is not allowed to modify the attributes of the reflected IBGP routes. The NEXT_HOP attribute, for example, remains the same when an IBGP route is exchanged between RRs. This is necessary to avoid loops inside the AS.

Avoiding Loops

BGP relies on the information in the AS path to facilitate loop detection. A BGP update that attempts to reenter the AS it was originated from, will be dropped by the border router of the source AS With the introduction of route reflectors, there is a potential for routing loops within an AS. A routing update that leaves a cluster may reenter the cluster. Loops inside the AS cannot be detected by the traditional AS path approach because routing updates do not have an originating AS path signature. Therefore, when route reflectors are deployed, BGP offers two extra measures for loop avoidance inside the AS—using an ORIGINATOR_ID and using a CLUSTER_LIST.

Using an ORIGINATOR_ID

The ORIGINATOR_ID is a 4-byte, optional, nontransitive BGP attribute (type code 9). This attribute carries the ROUTER_ID of the route's originator in the local AS and is to be added to the UPDATE message by the route reflector. If the update comes back to the originator because of poor configuration, the originator should discard it.

The CLUSTER_LIST

The CLUSTER_LIST is an optional, nontransitive BGP attribute (type code 10). Each cluster is represented with a CLUSTER_ID.A CLUSTER_LIST is a sequence of CLUSTER_IDs that contain path information regarding the list of clusters that an UPDATE has traversed. When a route reflector sends a route from its clients to nonclients outside the cluster, it appends the local CLUSTER_ID to the CLUSTER_LIST, or creates the list if one is not present. If the route reflector receives an UPDATE whose CLUSTER_LIST contains the local CLUSTER_ID value, the UPDATE message should be discarded. Thus, the CLUSTER_LIST provides loop avoidance inside an AS, whereas the AS_PATH list, discussed earlier, facilitates loop avoidance for UPDATEs traversing multiple, external ASs.

 

Configuration Example 1:

                                                                       Figure 2-1

Step 1: Configure IBGP

Switch A:

admin@XorPlus# set protocols bgp bgp-id 6.6.6.6
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 3003::2 local-ip "3003::1"
admin@XorPlus# set protocols bgp peer 3003::2 as "6"
admin@XorPlus# set protocols bgp peer 3003::2 next-hop-self true
admin@XorPlus# set protocols bgp peer 3003::2 ipv6-unicast true

Switch B:

admin@XorPlus# set protocols bgp bgp-id 9.9.9.9
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 3003::1 local-ip "3003::2"
admin@XorPlus# set protocols bgp peer 3003::1 as "6"
admin@XorPlus# set protocols bgp peer 3003::1 next-hop-self true
admin@XorPlus# set protocols bgp peer 3003::1 ipv6-unicast true

 

Step 2: Configure Switch A as RR and configure Cluster-ID

admin@XorPlus# set protocols bgp route-reflector disable false
admin@XorPlus# set protocols bgp route-reflector cluster-id 6.6.6.6

 

Step 3: Specify one BGP peer as RR’s client

admin@XorPlus# set protocols bgp peer 3003::2 client true

 

Step 4: Check BGP peer status:

Switch A:

admin@XorPlus# run show bgp peers detail
Peer 2: local 3003::1/179 remote 3003::2/33239
  Peer ID: 9.9.9.9
  Peer State: ESTABLISHED
  Admin State: START
  Negotiated BGP Version: 4
  Peer AS Number: 6
  Updates Received: 1,  Updates Sent: 6
  Messages Received: 102,  Messages Sent: 108
  Time since last received update: 2611 seconds
  Number of transitions to ESTABLISHED: 4
  Time since last entering ESTABLISHED state: 2611 seconds
  Retry Interval: 120 seconds
  Hold Time: 90 seconds,  Keep Alive Time: 30 seconds
  Configured Hold Time: 90 seconds,  Configured Keep Alive Time: 30 seconds
  Minimum AS Origination Interval: 0 seconds
  Minimum Route Advertisement Interval: 0 seconds

Switch B:

admin@XorPlus# run show bgp peers detail
Peer 1: local 3003::2/33239 remote 3003::1/179
  Peer ID: 6.6.6.6
  Peer State: ESTABLISHED
  Admin State: START
  Negotiated BGP Version: 4
  Peer AS Number: 6
  Updates Received: 6,  Updates Sent: 1
  Messages Received: 123,  Messages Sent: 118
  Time since last received update: 1079 seconds
  Number of transitions to ESTABLISHED: 9
  Time since last entering ESTABLISHED state: 2988 seconds
  Retry Interval: 120 seconds
  Hold Time: 90 seconds,  Keep Alive Time: 30 seconds
  Configured Hold Time: 90 seconds,  Configured Keep Alive Time: 30 seconds
  Minimum AS Origination Interval: 0 seconds
  Minimum Route Advertisement Interval: 0 seconds

 

Configuration Example 2:

BGP Reflector Configuration examples.

RR will propagate BGP route to all it’s Client and Non-client peer:

                                                                           Figure 2-2

Step 1: Configure IBGP on Switch A, Switch B, Switch C, Switch D

Switch A:

admin@XorPlus# set protocols bgp bgp-id 6.6.6.6
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 1001::2 local-ip "1001::1"
admin@XorPlus# set protocols bgp peer 1001::2 as "6"
admin@XorPlus# set protocols bgp peer 1001::2 next-hop-self true
admin@XorPlus# set protocols bgp peer 1001::2 ipv6-unicast true
admin@XorPlus# set protocols bgp peer 3003::2 local-ip "3003::1"
admin@XorPlus# set protocols bgp peer 3003::2 as "6"
admin@XorPlus# set protocols bgp peer 3003::2 next-hop-self true
admin@XorPlus# set protocols bgp peer 3003::2 ipv6-unicast true
admin@XorPlus# set protocols bgp peer 4004::2 local-ip "4004::1"
admin@XorPlus# set protocols bgp peer 4004::2 as "6"
admin@XorPlus# set protocols bgp peer 4004::2 next-hop-self true
admin@XorPlus# set protocols bgp peer 4004::2 ipv6-unicast true

Switch B:

admin@XorPlus# set protocols bgp bgp-id 9.9.9.9
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 3003::1 local-ip "3003::2"
admin@XorPlus# set protocols bgp peer 3003::1 as "6"
admin@XorPlus# set protocols bgp peer 3003::1 next-hop-self true
admin@XorPlus# set protocols bgp peer 3003::1 ipv6-unicast true

Switch C:

admin@XorPlus# set protocols bgp bgp-id 10.10.10.10
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 4004::1 local-ip "4004::2"
admin@XorPlus# set protocols bgp peer 4004::1 as "6"
admin@XorPlus# set protocols bgp peer 4004::1 next-hop-self true
admin@XorPlus# set protocols bgp peer 4004::1 ipv6-unicast true

Switch D:

admin@XorPlus# set protocols bgp bgp-id 26.26.26.26
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 1001::1 local-ip "1001::2"
admin@XorPlus# set protocols bgp peer 1001::1 as "6"
admin@XorPlus# set protocols bgp peer 1001::1 next-hop-self true
admin@XorPlus# set protocols bgp peer 1001::1 ipv6-unicast true

 

Step 2: Configure Switch A as RR and configure Cluster-ID

admin@XorPlus# set protocols bgp route-reflector disable false
admin@XorPlus# set protocols bgp route-reflector cluster-id 6.6.6.6

 

Step 3: Specify Switch B and Switch C as RR’s Client

admin@XorPlus# set protocols bgp peer 3003::2 client true
admin@XorPlus# set protocols bgp peer 4004::2 client true

 

Step 4: Switch B distributes a BGP route, then RR will propagate to all it’s clients (Switch C) and non-client (Switch D)

Switch B BGP route table:

admin@XorPlus# run show bgp routes ipv6
Status Codes: * valid route, > best route
Origin Codes: i IGP, e EGP, ? incomplete
   Prefix                        Nexthop                   Peer             AS Path
   ----------------------------  ------------------------  ---------------  ------------
*> 9999::/64                     5005::2                   33.33.33.33      10 i
Switch A bgp route table:
admin@XorPlus# run show bgp routes ipv6
Status Codes: * valid route, > best route
Origin Codes: i IGP, e EGP, ? incomplete
   Prefix                        Nexthop                   Peer             AS Path
   ----------------------------  ------------------------  ---------------  ------------
*> 9999::/64                     3003::2                   9.9.9.9          10 i

Check the BGP route table of Switch C, we can see that the Client got a BGP route entry from RR.

Switch C BGP route table:

admin@XorPlus# run show bgp routes ipv6 detail
9999::/64
        From peer: 6.6.6.6
        Route: Winner
        Origin: IGP
        AS Path: 10
        Nexthop: 4004::1
        Multiple Exit Discriminator: 1000
        Local Preference: 100
        Originator ID: 9.9.9.9
        Cluster List: 6.6.6.6

Check the BGP route table of Switch D, we can see that Non-Client (Switch D) got a BGP route entry from RR

Switch D BGP route table:

admin@XorPlus# run show bgp routes ipv6
Status Codes: * valid route, > best route
Origin Codes: i IGP, e EGP, ? incomplete
   Prefix                        Nexthop                   Peer             AS Path
   ----------------------------  ------------------------  ---------------  ------------
*> 9999::/64                     1001::1                   6.6.6.6          10 i
admin@XorPlus# run show bgp routes ipv6 detail
9999::/64
        From peer: 6.6.6.6
        Route: Winner
        Origin: IGP
        AS Path: 10
        Nexthop: 1001::1
        Multiple Exit Discriminator: 1000
        Local Preference: 100
        Originator ID: 9.9.9.9
        Cluster List: 6.6.6.6

 

Configuration Example 3:

2. A route from a non-client peer is advertised to all clients. It means the route entry from a non-client peer will not be advertised to RR’s non-client peer:

                                                                                 Figure 2-3

Step 1: Configure IBGP on SwitchA SwitchB SwitchC SwitchD

Switch A:

admin@XorPlus# set protocols bgp bgp-id 9.9.9.9
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 3003::1 local-ip "3003::2"
admin@XorPlus# set protocols bgp peer 3003::1 as "6"
admin@XorPlus# set protocols bgp peer 3003::1 next-hop-self true
admin@XorPlus# set protocols bgp peer 3003::1 ipv6-unicast true

Switch B:

admin@XorPlus# set protocols bgp bgp-id 6.6.6.6
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 1001::2 local-ip "1001::1"
admin@XorPlus# set protocols bgp peer 1001::2 as "6"
admin@XorPlus# set protocols bgp peer 1001::2 next-hop-self true
admin@XorPlus# set protocols bgp peer 1001::2 ipv6-unicast true
admin@XorPlus# set protocols bgp peer 3003::2 local-ip "3003::1"
admin@XorPlus# set protocols bgp peer 3003::2 as "6"
admin@XorPlus# set protocols bgp peer 3003::2 next-hop-self true
admin@XorPlus# set protocols bgp peer 3003::2 ipv6-unicast true
admin@XorPlus# set protocols bgp peer 4004::2 local-ip "4004::1"
admin@XorPlus# set protocols bgp peer 4004::2 as "6"
admin@XorPlus# set protocols bgp peer 4004::2 next-hop-self true
admin@XorPlus# set protocols bgp peer 4004::2 ipv6-unicast true

Switch C:

admin@XorPlus# set protocols bgp bgp-id 26.26.26.26
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 1001::1 local-ip "1001::2"
admin@XorPlus# set protocols bgp peer 1001::1 as "6"
admin@XorPlus# set protocols bgp peer 1001::1 next-hop-self true
admin@XorPlus# set protocols bgp peer 1001::1 ipv6-unicast true

Switch D:

admin@XorPlus# set protocols bgp bgp-id 10.10.10.10
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 4004::1 local-ip "4004::2"
admin@XorPlus# set protocols bgp peer 4004::1 as "6"
admin@XorPlus# set protocols bgp peer 4004::1 next-hop-self true
admin@XorPlus# set protocols bgp peer 4004::1 ipv6-unicast true

 

Step 2: Enable route-reflector on Switch B and specify Switch C as its client

admin@XorPlus# set protocols bgp route-reflector disable false
admin@XorPlus# set protocols bgp route-reflector cluster-id 6.6.6.6
admin@XorPlus# set protocols bgp peer 1001::2 client true

 

Step 3: Switch A distributes two BGP route entries, then check the BGP route table on Switch B, Switch C, Switch D, we can see that Switch B will not advertise these BGP route entries to its non-client peer (Switch D)

Switch B BGP route table:

admin@XorPlus# run show bgp routes ipv6
Status Codes: * valid route, > best route
Origin Codes: i IGP, e EGP, ? incomplete
   Prefix                        Nexthop                   Peer             AS Path
   ----------------------------  ------------------------  ---------------  ------------
*> 9999::/64                     3003::2                   9.9.9.9          10 i
*> 9999:0:0:1::/64               3003::2                   9.9.9.9          10 i
admin@XorPlus# run show bgp routes ipv6 detail
9999::/64
        From peer: 9.9.9.9
        Route: Winner
        Origin: IGP
        AS Path: 10
        Nexthop: 3003::2
        Local Preference: 100
9999:0:0:1::/64
        From peer: 9.9.9.9
        Route: Winner
        Origin: IGP
        AS Path: 10
        Nexthop: 3003::2
        Local Preference: 100
admin@XorPlus#

Switch C BGP route table:

admin@XorPlus# run show bgp routes ipv6
Status Codes: * valid route, > best route
Origin Codes: i IGP, e EGP, ? incomplete
   Prefix                        Nexthop                   Peer             AS Path
   ----------------------------  ------------------------  ---------------  ------------
*> 9999::/64                     1001::1                   6.6.6.6          10 i
*> 9999:0:0:1::/64               1001::1                   6.6.6.6          10 i
admin@XorPlus# run show bgp routes ipv6 detail
9999::/64
        From peer: 6.6.6.6
        Route: Winner
        Origin: IGP
        AS Path: 10
        Nexthop: 1001::1
        Local Preference: 100
        Originator ID: 9.9.9.9
        Cluster List: 6.6.6.6
9999:0:0:1::/64
        From peer: 6.6.6.6
        Route: Winner
        Origin: IGP
        AS Path: 10
        Nexthop: 1001::1
        Local Preference: 100
        Originator ID: 9.9.9.9
        Cluster List: 6.6.6.6
admin@XorPlus#

Switch D BGP route table:

admin@XorPlus# run show bgp routes ipv6
Status Codes: * valid route, > best route
Origin Codes: i IGP, e EGP, ? incomplete
   Prefix                        Nexthop                   Peer             AS Path
   ----------------------------  ------------------------  ---------------  ------------

Note: The BGP route table on Switch D should be NULL,as the BGP route entry from non-client will not advertise to it’s non-client peer.

 

Configuration Example 4:

3.Multistage bgp reflector:

                                                                                 Figure 2-4             

Step 1:Configure IBGP on Switch A, Switch B, Switch C

Switch A:

admin@XorPlus# set protocols bgp bgp-id 9.9.9.9
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 3003::1 local-ip "3003::2"
admin@XorPlus# set protocols bgp peer 3003::1 as "6"
admin@XorPlus# set protocols bgp peer 3003::1 next-hop-self true
admin@XorPlus# set protocols bgp peer 3003::1 ipv6-unicast true

Switch B:

admin@XorPlus# set protocols bgp bgp-id 6.6.6.6
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 1001::2 local-ip "1001::1"
admin@XorPlus# set protocols bgp peer 1001::2 as "6"
admin@XorPlus# set protocols bgp peer 1001::2 next-hop-self true
admin@XorPlus# set protocols bgp peer 1001::2 ipv6-unicast true
admin@XorPlus# set protocols bgp peer 3003::2 local-ip "3003::1"
admin@XorPlus# set protocols bgp peer 3003::2 as "6"
admin@XorPlus# set protocols bgp peer 3003::2 next-hop-self true
admin@XorPlus# set protocols bgp peer 3003::2 ipv6-unicast true

Switch C:

admin@XorPlus# set protocols bgp bgp-id 26.26.26.26
admin@XorPlus# set protocols bgp local-as "6"
admin@XorPlus# set protocols bgp peer 1001::1 local-ip "1001::2"
admin@XorPlus# set protocols bgp peer 1001::1 as "6"
admin@XorPlus# set protocols bgp peer 1001::1 next-hop-self true
admin@XorPlus# set protocols bgp peer 1001::1 ipv6-unicast true

 

Step 2: Configure Switch A as first-level RR ,Switc hB is Switch A’s Client

Switch A:

admin@XorPlus# set protocols bgp route-reflector disable false
admin@XorPlus# set protocols bgp route-reflector cluster-id 9.9.9.9
admin@XorPlus# set protocols bgp peer 3003::1 client true

 

Step 3:Configure Switch B as the second-level RR,Switch C is Switch B’s Client

Switch B:

admin@XorPlus# set protocols bgp route-reflector disable false
admin@XorPlus# set protocols bgp route-reflector cluster-id 6.6.6.6
admin@XorPlus# set protocols bgp peer 1001::2 client true

 

Step 4:Switch A got a BGP route entry from an EBGP peer, then check the BGP route table on Switch A, Switch B, and Switch C,

Switch A BGP route table:

admin@XorPlus# run show bgp routes ipv6
Status Codes: * valid route, > best route
Origin Codes: i IGP, e EGP, ? incomplete
   Prefix                        Nexthop                   Peer             AS Path
   ----------------------------  ------------------------  ---------------  ------------
*> 9999::/64                     5005::2                   33.33.33.33      10 i
admin@XorPlus# run show bgp routes ipv6 detail
9999::/64
        From peer: 33.33.33.33
        Route: Winner
        Origin: IGP
        AS Path: 10
        Nexthop: 5005::2
        Multiple Exit Discriminator: 1000
        Local Preference: 100
admin@XorPlus#

Check the BGP route table of  Switch B,we can see the router-id of Switch A

Switch B BGP route table:

admin@XorPlus# run show bgp routes ipv6
Status Codes: * valid route, > best route
Origin Codes: i IGP, e EGP, ? incomplete
   Prefix                        Nexthop                   Peer             AS Path
   ----------------------------  ------------------------  ---------------  ------------
*> 9999::/64                     3003::2                   9.9.9.9          10 i
admin@XorPlus# run show bgp routes ipv6 detail
9999::/64
        From peer: 9.9.9.9
        Route: Winner
        Origin: IGP
        AS Path: 10
        Nexthop: 3003::2
        Multiple Exit Discriminator: 1000
        Local Preference: 100
        Originator ID: 33.33.33.33
        Cluster List: 9.9.9.9
admin@XorPlus#

Check the BGP route table of Switch C, we can see that the router-id of Switch B was add into cluster list

Switch C BGP route table:

admin@XorPlus# run show bgp routes ipv6
Status Codes: * valid route, > best route
Origin Codes: i IGP, e EGP, ? incomplete
   Prefix                        Nexthop                   Peer             AS Path
   ----------------------------  ------------------------  ---------------  ------------
*> 9999::/64                     1001::1                   6.6.6.6          10 i
admin@XorPlus# run show bgp routes ipv6 detail
9999::/64
        From peer: 6.6.6.6
        Route: Winner
        Origin: IGP
        AS Path: 10
        Nexthop: 1001::1
        Multiple Exit Discriminator: 1000
        Local Preference: 100
        Originator ID: 33.33.33.33
        Cluster List: 6.6.6.6, 9.9.9.9
admin@XorPlus# 

Copyright © 2025 Pica8 Inc. All Rights Reserved.