An RR and its clients form a cluster. In an AS, each RR is uniquely identified by a Cluster_ID.
Similar to an AS_Path, a Cluster_List is composed of a series of Cluster_IDs and is generated by an RR. The Cluster_List records all the RRs through which a route passes.
Before an RR reflects a route between its clients or between its clients and non-clients, the RR adds the local Cluster_ID to the leftmost position of the Cluster_List. If a route does not carry any Cluster_List, the RR creates one for the route.
After the RR receives an updated route, it checks the Cluster_List of the route. If the RR finds that its cluster ID is included in the Cluster_List, the RR discards the route. If its cluster ID is not included in the Cluster_List, the RR adds its cluster ID to the Cluster_List and then reflects the route.
The following example shows how Cluster_List is used in BGP route selection. In Figure 1, an IBGP peer relationship is established between each two neighboring devices in AS 65001. Switch B functions as a level-1 RR, and Switch D is its client. Switch D functions as a level-2 RR, and Switch E is its client. Switch C functions as an RR, and Switch E is its client. Switch E is configured to import the route 1.1.1.9/32 to BGP.
Run the display bgp routing-table [ ip-address ] command on Switch A to check the configurations.
# Display the routing table of Switch A.
[HUAWEIA] display bgp routing-table
BGP Local router ID is 10.1.3.1 Status codes: * - valid, > - best, d - damped, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete Total Number of Routes: 2 Network NextHop MED LocPrf PrefVal Path/Ogn *>i 1.1.1.9/32 10.1.5.2 0 100 0 i * i 10.1.4.2 0 100 0 i
The preceding command output shows that two routes 1.1.1.9/32 are available in the routing table of Switch C and that Switch A selects the route learned from Switch C.
[HUAWEIA] display bgp routing-table 1.1.1.9
BGP local router ID : 10.1.3.1 Local AS number : 65001 Paths: 2 available, 1 best, 1 select BGP routing table entry information of 1.1.1.9/32: From: 10.1.3.2 (2.2.2.9) Route Duration: 00h53m08s Relay IP Nexthop: 10.1.3.2 Relay IP Out-Interface: GigabitEthernet0/0/1 Original nexthop: 10.1.5.2 Qos information : 0x0 AS-path Nil, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, best, select, active, pre 255, IGP cost 3 Originator: 1.1.1.9 Cluster list: 0.0.0.3 Not advertised to any peer yet BGP routing table entry information of 1.1.1.9/32: From: 10.1.1.2 (10.1.2.1) Route Duration: 00h28m05s Relay IP Nexthop: 10.1.1.2 Relay IP Out-Interface: GigabitEthernet0/0/0 Original nexthop: 10.1.4.2 Qos information : 0x0 AS-path Nil, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre 255, IGP cost 3, not preferred for Cluster List Originator: 1.1.1.9 Cluster list: 0.0.0.2, 0.0.0.1 Not advertised to any peer yet
The preceding command output shows that the route learned from Switch B is ignored because its Cluster_List is longer than that of the route learned from Switch C. Table 1 describes attribute comparison of the routes learned from Switch B and Switch C.
Route Attribute |
Route Learned from Switch B |
Route Learned from Switch C |
Comparison |
---|---|---|---|
PrefVal |
0 |
0 |
The same. |
Local_Pref |
100 |
100 |
The same. |
Route type |
Learned from a peer |
Learned from a peer |
The same. |
AIGP |
- |
- |
The same. |
AS_Path |
- |
- |
The same length. |
Origin |
IGP |
IGP |
The same. |
MED |
0 |
0 |
The same. |
Peer type |
IBGP |
IBGP |
The same. |
IGP cost |
3 |
3 |
The same. |
Cluster_List |
0.0.0.2, 0.0.0.1 |
0.0.0.3 |
The route learned from Switch C is optimal. |
In most cases, BGP does not advertise the routes learned from an AS to the AS again. When RRs are deployed, such routes may be advertised to the AS again although routing loops may occur. Using the Cluster_List attribute can prevent such routing loops.