ルートリフレクタを使用することでiBGPネットワーク内においてiBGPピアをフルメッシュで張る必要が無くなる。上図ではR5をルートリフレクタに設定し、R3,R4,R6,R7はR5に対してのみiBGPピアを形成している。iBGPピアをフルメッシュで張った場合のピア数は(5×4)÷2=10となるので、コンフィグレーション量を大幅に削減できるというメリットがある。
ルートリフレクタの設定
ルートリフレクタの設定はルートリフレクタ本体のみに設定する。この例ではR5に対してルートリフレクタの設定を入れる。R3,R6はルートリフレクタクライアントに設定するため、R5でneighbor <IPアドレス> route-reflector-clientを指定する。R4,R7はルートリフレクタノンクライアントに設定するため、何も設定は入れない。
各BGPスピーカにおけるBGPテーブルの状態
R1ではeBGPピアであるR3(3.3.3.3)から全経路を受信できている。
R2ではeBGPピアであるR4(4.4.4.4)からR7が生成した7.7.7.7/32以外のルートを受信できている。R7はルートリフレクタノンクライアントである。ルートリフレクタノンクライアントはルートリフレクタクライアントには経路情報をアドバタイズするが、ルートリフレクタノンクライアントには経路情報をアドバタイズしない。従って、R4(ルートリフレクタノンクライアント)は7.7.7.7/32のルートを受信できず、R2に対して本ルートをアドバタイズできないため、R2は7.7.7.7/32を認知しない。
R3はルートリフレクタクライアントである。R1(1.1.1.1)とR5(5.5.5.5)から全ルートを受信できている。
R4はルートリフレクタノンクライアントである。R7(ルートリフレクタノンクライアント)の生成した7.7.7.7/32のルート情報を受信できていない。
R5はルートリフレクタである。当然、全経路情報を学習できている。
R6はルートリフレクタクライアントである。R5(ルートリフレクタ)から全経路情報を受信できている。
R7はルートリフレクタノンクライアントである。ルータリフレクタノンクライアントであるR4のアドバタイズしたルート(2.2.2.2/32, 4.4.4.4/32)を受信できていない。
ルートリフレクタはNEXT_HOP属性を書き換えない
ルートリフレクタを設定することでiBGPピア数を削減できるというメリットがあるが、ルートリフレクタ経由で学習したiBGPルートのNEXT_HOP属性はルートリフレクタが書き換えてくれないことに注意する。
例えば上図においてR5が生成した「5.5.5.5/32」の経路情報をR4がiBGPで学習する様子を確認してみる。前提として、AS400内でR4~R7はOSPFやスタティックルートを設定していない。
R4#show ip bgp 5.5.5.5
BGP routing table entry for 5.5.5.5/32, version 0
Paths: (2 available, no best path)
Not advertised to any peer
Refresh Epoch 1
Local
10.0.60.1 (inaccessible) from 10.0.70.2 (7.7.7.7)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 5.5.5.5, Cluster list: 7.7.7.7
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
Local
10.0.80.1 (inaccessible) from 10.0.50.2 (6.6.6.6)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 5.5.5.5, Cluster list: 6.6.6.6
rx pathid: 0, tx pathid: 0
R4ではNEXT_HOP属性「10.0.60.1」、「10.0.80.1」の2つのルートから「5.5.5.5/32」の経路情報を着信しているが、いずれもinaccessibleである。
ルートリフレクタR7経由での「5.5.5.5/32」の経路情報の受信経路は以下の通りとなる。NEXT_HOP属性はR7から見たR5のIPアドレス(10.0.60.1)となる。
ルートリフレクタR6経由での「5.5.5.5/32」の経路情報の受信経路は以下の通りとなる。NEXT_HOP属性はR6から見たR5のIPアドレス(10.0.80.1)となる。
R4とR5を直結すればR4はR5から「5.5.5.5/32」の有効な経路情報を受信できるが、R4・R5間のリンク障害が発生してしまうと迂回ルートは上記2ルートのみとなり、inaccesibleのため使用できない。
iBGPネットワーク内においてはルートリフレクタの使用有無に関わらず、IGPを使用して隅々までルーティングできる状態にしておかなければ期待通りにBGPが動作しないことがわかる。
AS400内でOSPFを動作させた際のR4におけるshow ip bgp 5.5.5.5の出力結果は以下の通りとなる。
R4#show ip ospf nei
Neighbor ID Pri State Dead Time Address Interface
7.7.7.7 1 FULL/DR 00:00:33 10.0.70.2 Vlan70
6.6.6.6 1 FULL/DR 00:00:34 10.0.50.2 GigabitEthernet8
R4#
R4#show ip bgp 5.5.5.5
BGP routing table entry for 5.5.5.5/32, version 14
Paths: (2 available, best #2, table default, RIB-failure(17))
Advertised to update-groups:
4
Refresh Epoch 1
Local
10.0.60.1 (metric 2) from 10.0.70.2 (7.7.7.7)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 5.5.5.5, Cluster list: 7.7.7.7
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
Local
10.0.80.1 (metric 2) from 10.0.50.2 (6.6.6.6)
Origin IGP, metric 0, localpref 100, valid, internal, best
Originator: 5.5.5.5, Cluster list: 6.6.6.6
rx pathid: 0, tx pathid: 0x0
NEXT_HOP属性「10.0.60.1」、「10.0.80.1」の両ルートが有効なルートとして認識されている。以下CCOのNo.13「Prefer the path that comes from the lowest neighbor address. This address is the IP address that is used in the BGP neighbor configuration.」に基づき、ネイバーアドレスがより小さい2番目の経路情報がベストパスに選択されている。
以上
コメント