BGPルートリフレクタとは
BGPでは、全てのIBGPスピーカーが完全にメッシュ化される必要があります。
メッシュ構成とは、すべてのIBGPルータがお互いに直接接続し、BGPの経路情報を共有する構成です。
しかし、ネットワークが大規模になると、フルメッシュ構成には多くのIBGPセッションが必要になり、管理が非常に困難になります。
ルートリフレクタを使用することで、この完全メッシュの要件を緩和できます。
ルートリフレクタとして設定されたIBGPピアは、学習したルートを他のIBGPネイバーに伝播します。ルートリフレクタの内部ピアは、クライアントピアと非クライアントピアに分けられ、ルートリフレクタはこれらの間でルートをリフレクトします。ルートリフレクタとそのクライアントピアはクラスタを形成し、クライアントピアは完全メッシュ化される必要がなくなります。
ルートリフレクタは、以下のアクションを実行します:
- 外部BGPスピーカーからのルートは全てのクライアントと非クライアントピアにアドバタイズされます。
- 非クライアントピアからのルートは全てのクライアントにアドバタイズされます。
- クライアントからのルートは全てのクライアントと非クライアントピアにアドバタイズされます。
通常、クラスタには1つのルートリフレクタがありますが、冗長性のために複数のルートリフレクタを持つことも可能です。その場合、すべてのルートリフレクタは同じクラスタIDを持ち、完全にメッシュ化される必要があります。
通常の構成の場合
RT3はAS65001のルート情報をアドバタイズしないため、本来ならRT2とRT3の間にもネイバー関係が必要になります。

ルートリフレクタの場合
ルートリフレクタの設定をして、リフレクタとクライアントの関係になることで、iBGPのルート情報をアドバタイズするようになります。

BGPルートリフレクタの設定
BGP ルータ設定モードに入ります。
Router(config)#router bgp autonomous-system
ローカル ルータを BGP ルート リフレクタとして設定し、指定されたネイバーをクライアントとして設定します。
Router(config-router)#neighbor {ip-address | peer-group-name} route-reflector-client
(オプション) クラスタに複数のルート リフレクタがある場合にクラスタ ID を設定します。
Router(config-router)#bgp cluster-id cluster-id
(オプション) クライアント間のルート リフレクションを無効にします。デフォルトでは、ルート リフレクタ クライアントからのルートは他のクライアントに反映されます。ただし、クライアントが完全にメッシュ化されている場合、ルート リフレクタはクライアントにルートを反映する必要はありません。
Router(config-router)#no bgp client-to-client reflection
設定例

Router1
hostname Router1
int g0/2
ip address 192.168.12.1 255.255.255.0
no shut
int lo1
ip address 1.1.1.1 255.255.255.255
router bgp 65001
neighbor 192.168.12.2 remote-as 65002
neighbor 192.168.12.2 activate
network 192.168.12.0 mask 255.255.255.0
network 1.1.1.1 mask 255.255.255.255
Router2
hostname Router2
int g0/1
ip address 192.168.12.2 255.255.255.0
no shut
int g0/3
ip address 192.168.23.2 255.255.255.0
no shut
router bgp 65002
neighbor 192.168.12.1 remote-as 65001
neighbor 192.168.12.1 activate
neighbor 192.168.23.3 remote-as 65002
neighbor 192.168.23.3 activate
network 192.168.23.0 mask 255.255.255.0
network 192.168.12.0 mask 255.255.255.0
Router3
hostname Router3
int g0/2
ip address 192.168.23.3 255.255.255.0
no shut
int g0/4
ip address 192.168.34.3 255.255.255.0
no shut
router bgp 65002
neighbor 192.168.23.2 remote-as 65002
neighbor 192.168.23.2 activate
neighbor 192.168.34.4 remote-as 65002
neighbor 192.168.34.4 activate
network 192.168.23.0 mask 255.255.255.0
network 192.168.34.0 mask 255.255.255.0
Router4
hostname Router4
int g0/3
ip address 192.168.34.4 255.255.255.0
no shut
router bgp 65002
neighbor 192.168.34.3 remote-as 65002
neighbor 192.168.34.3 activate
network 192.168.34.0 mask 255.255.255.0
現在、Router4はLo1:1.1.1.1のルート情報を受信していません。

ルートリフレクタの設定をします。トポロジがチェンジしたことを示すログが出力されます。
Router3(config)#router bgp 65002
Router3(config-router)#neighbor 192.168.23.2 route-reflector-client
Router3(config-router)#neighbor 192.168.34.4 route-reflector-client
Router3(config-router)#
*Sep 15 14:53:09.519: %BGP-5-ADJCHANGE: neighbor 192.168.23.2 Down RR client config change
*Sep 15 14:53:09.519: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.23.2 IPv4 Unicast topology base removed from session RR client config change
*Sep 15 14:53:10.134: %BGP-5-ADJCHANGE: neighbor 192.168.34.4 Down RR client config change
*Sep 15 14:53:10.134: %BGP_SESSION-5-ADJCHANGE: neighbor 192.168.34.4 IPv4 Unicast topology base removed from session RR client config change
*Sep 15 14:53:10.138: %BGP-5-ADJCHANGE: neighbor 192.168.23.2 Up
*Sep 15 14:53:11.146: %BGP-5-ADJCHANGE: neighbor 192.168.34.4 Up
Router4でLo1:1.1.1.1のルート情報を受信することが出来るようになりました。
