◆ IBGPフルメッシュ化の問題の解決策 - ルートリフレクタとは
ルートリフレクタとは、IBGPにおいて、IBGPピアから受信するルート情報を他のIBGPピアに反射させて
アドバタイズするという手法です。ルートリフレクタでは「ルートリフレクタとクライアント」とで構成
されて、このルートリフレクタとクライアントの集まりのことをクラスタと言います。1つの同じAS内に、
複数のクラスタを構成できます。クラスタに含まれない同じAS内のIBGPピアは非クライアントと言います。
下図のようにルート情報のリフレクト(反射)はルートリフレクタが行います。つまり、クライアントは
ルートリフレクタとだけIBGPピアを確立すれば良いので、IBGPピアのセッション数を大幅に減らせます。
ルートリフレクタがルート情報を受信すると、ルートリフレクタはルート情報を次のように処理します。
ルートリフレクタが受信するルート |
ルートリフレクタの動作 |
クライアントピアから受信したルート |
全てのクライアントにリフレクトし、全ての非クライアントにもリフレクトする。 |
非クライアントピアから受信したルート |
クラスタ内のすべてのクライアントにリフレクトする。 |
eBGPピアから受信したルート |
全てのクライアントと、全ての非クライアントにアップデートを送信する。 |
◆ ルートリフレクタの設定
ルートリフレクタの設定は、neighbor route-reflector-clientコマンドを設定したBGPルータが、ルート
リフレクタとなり、このコマンドで指定されたIBGPピアのBGPルータがクライアントとなります。つまり
ルートリフレクタの設定は、ルートリフレクタとなるBGPルータでのみ設定をします。
◆ BGP - ルートリフレクタの設定
(config)# router bgp as-number
(config-router)# neighbor ip-address route-reflector-client
R1(config)# router bgp 10
R1(config-router)# neighbor 2.2.2.2 remote-as 10
R1(config-router)# neighbor 2.2.2.2 route-reflector-client
R1(config-router)# neighbor 2.3.3.3 remote-as 10
R1(config-router)# neighbor 2.3.3.3 route-reflector-client
R1(config-router)# neighbor 2.4.4.4 remote-as 10
R1(config-router)# neighbor 2.4.4.4 route-reflector-client
|
R2(config)# router bgp 10
R2(config-router)# neighbor 2.2.2.1 remote-as 10
|
R3(config)# router bgp 10
R3(config-router)# neighbor 2.3.3.1 remote-as 10
|
R4(config)# router bgp 10
R4(config-router)# neighbor 2.4.4.1 remote-as 10
|
1つのクラスタに複数のルートリフレクタを配置する場合、ルートリフレクタ間でのルーティングループを
防ぐためにクラスタIDを設定する必要があります。同一のクラスタ内においては同一のクラスタIDを設定し
クラスタ間では異なるクラスタIDを設定します。クラスタIDによって、ルートリフレクタは同じクラスタ内
の他のルートリフレクタからのBGPアップデートを識別できます。クラスタIDは最大4バイトの数値で指定。
◆ BGP - ルートリフレクタの設定
(config-router)# bgp cluster-id cluster-id
|