
Introduction
BGP rules require that all routers within an autonomous system are fully meshed. For large networks, this requirement represents a severe scaling problem that has been well documented.
Route reflectors bend the BGP rules by enabling a BGP speaker to pass (reflect) learned routes to internal neighbors. Typically, the routers at the core of a network's backbone are fully meshed with one another, and are configured as route reflectors for routers that are not part of the core.
Figure 8-1. With and Without Route Reflection
![]()
In Figure C-1, AS 100 is configured without route reflection. All routers within AS 100 are fully meshed.
Router A in AS 200 is configured as a route reflector and is responsible for distributing routes to BGP neighbors (Routers B, C, and D). Routers B, C, and D do not need to establish a peer relationship. Instead, Router A will reflect updates learned from each router to the other routers. The number of peering relationships within the AS is greatly reduced.
Router A in AS 200 is the route reflector. Routers B, C, and D are route reflector clients. Together, reflectors and route reflector clients form a cluster.
Usually, a cluster is configured with a single route reflector. For redundancy, two or more route reflectors may be configured per cluster.
Route reflectors distribute updates differently depending on the source of the update:
- Routes from a non-client peer - sent to all clients in the cluster.
- Routes from a client peer - sent to all non-client peers and all clients in the cluster.
- Routes from external (EBGP) peers - sent to all clients in the cluster and to non-client peers.
Configuring a Single Route Reflector
Route reflection is configured using the neighbor route-reflection-client command. Router A in AS 200 in Figure C-1 is the route reflector. The configuration for Router A includes:
router#router bgp 200
router(config-router)#neighbor 120.100.30.1 remote-as 200
router(config-router)#neighbor 120.100.30.1 route-reflector-client
router(config-router)#neighbor 120.100.30.2 remote-as 200
router(config-router)#neighbor 120.100.30.2 route-reflector-client
router(config-router)#neighbor 120.100.30.3 remote-as 200
router(config-router)#neighbor 120.100.30.3 route-reflector-client
Routers B, C and D are the route reflector clients. No special configuration is required on route reflector clients.
CAUTION When route reflection is enabled, every peer in the network does not have a full view of all the routes to choose from.
Configuring Multiple Clusters in an AS
In Figure C-2, autonomous system 100 is divided into three clusters. Each cluster has one route reflector. Notice that the route reflectors are fully meshed and that the clients of the route reflectors are not fully meshed.
Figure 8-2. Multiple Clusters in an AS
![]()
The following are the configurations for the routers in the cluster including Routers A, B, and C:
Router A (route reflector for the cluster):
router#router bgp 100
router(config-router)#neighbor 120.5.2.211 remote-as 100
router(config-router)#neighbor 120.5.2.211 route-reflector-client
router(config-router)#neighbor 120.5.2.212 remote-as 100
router(config-router)#neighbor 120.5.2.212 route-reflector-client
router(config-router)#neighbor 120.5.3.1 remote-as 100
router(config-router)#neighbor 120.5.4.1 remote-as 100
Router B (client with external peer):
router#router bgp 100
router(config-router)#neighbor 120.5.2.3 remote-as 100
router(config-router)#neighbor 172.10.2.2 remote-as 200
Router C (client):
router#router bgp 100
router(config-router)#neighbor 120.5.2.4 remote-as 100
Multiple Route Reflectors in a Cluster
A cluster of clients will normally have a single route reflector. To avoid a single point of failure, a cluster can be configured with more than one route reflector.
By default, a single route reflector for a cluster is identified by its router ID. When more than one route reflector is configured for a cluster, all the route reflectors in the cluster must be configured with the cluster ID.
Cluster IDs are assigned using the bgp cluster-id command. The cluster ID is an integer from 0 and 4294967295.
The ID enables route reflectors to recognize route updates from route reflectors within the same cluster.
NOTE You can not modify the cluster ID if any neighbors are configured as route reflector clients. To change the cluster ID, you must delete all neighbors configured as clients, change the cluster ID and reconfigure the client neighbors.
Figure 8-3. Multiple Route Reflectors in a Cluster
![]()
The following are configurations for Routers A, B, C and G:
Router A (route reflector):
router#router bgp 100
router(config-router)#neighbor 120.10.10.5 remote-as 100
router(config-router)#neighbor 120.10.10.5 route-reflector-client
router(config-router)#neighbor 120.10.10.7 remote-as 100
router(config-router)#neighbor 120.10.10.7 route-reflector-client
router(config-router)#neighbor 120.10.20.10 remote-as 100
router(config-router)#neighbor 120.10.20.10 route-reflector-client
router(config-router)#neighbor 120.10.20.12 remote-as 100
router(config-router)#neighbor 120.10.20.12 route-reflector-client
router(config-router)#neighbor 120.10.20.6 remote-as 100
router(config-router)#neighbor 120.10.50.2 remote-as 100
router(config-router)#bgp cluster-id 2000
Router B (route reflector in the same cluster as Router A):
router#router bgp 100
router(config-router)#neighbor 120.10.10.6 remote-as 100
router(config-router)#neighbor 120.10.10.6 route-reflector-client
router(config-router)#neighbor 120.10.10.8 remote-as 100
router(config-router)#neighbor 120.10.10.8 route-reflector-client
router(config-router)#neighbor 120.10.20.11 remote-as 100
router(config-router)#neighbor 120.10.20.11 route-reflector-client
router(config-router)#neighbor 120.10.20.13 remote-as 100
router(config-router)#neighbor 120.10.20.13 route-reflector-client
router(config-router)#neighbor 120.10.30.1 remote-as 100
router(config-router)#neighbor 120.10.50.3 remote-as 100
router(config-router)#bgp cluster-id 2000
Router C (client with an external peer):
router#router bgp 100
router(config-router)#neighbor 120.10.10.1 remote-as 100
router(config-router)#neighbor 120.10.20.1 remote-as 100
router(config-router)#neighbor 120.10.40.1 remote-as 200
Router G (route reflector in a different cluster than A and B)
router#router bgp 100
router(config-router)#neighbor 120.10.55.1 remote-as 100
router(config-router)#neighbor 120.10.55.1 route-reflector-client
router(config-router)#neighbor 120.10.55.2 remote-as 100
router(config-router)#neighbor 120.10.55.2 route-reflector-client
router(config-router)#neighbor 120.10.30.2 remote-as 100
router(config-router)#neighbor 120.10.20.5 remote-as 100
router(config-router)#neighbor 120.10.50.1 remote-as 300
Copyright © 2005
Avici Systems Inc.
Avici® and TSR®
is a registered trademark of Avici Systems Inc.
IPriori, Composite Links, SSR, QSR, and NSR® are
trademarks of Avici Systems Inc.
Source
File Name: RteRefl.fm
HTML File Name: RteRefl.html
Last Updated: 02/25/05 at 15:41:22