Confederationと同じ目的で使用されるRoute reflectorについても少しばかり検証しましたんで、メモを掲載。
みたい方は、続きを読んでおくんなまし。
■Route reflectorの概要
・BGPのスプリットホライズンの問題を回避するための手法。
(BGPのスプリットホライズンとは、iBGPでもらった経路情報は、他のiBGPネイバーへは送信出来ない)
・ConfederationもRoute reflectorと同じくBGPのスプリットホライズンの問題を回避する手法だが、Confederationの場合、サブASを超えてIGPを動かすためIGPとBGPの関係が非常にややこしくなるが、Route reflectorの場合はサブASなどを切らないのでIGPとBGPの関係が割とわかりやすい。
・非クライアントピアからの経路情報:
クラスタ内のすべてのクライアントにリフレクトする。
・クライアントピアからの経路情報:
すべての非クライアントピアとクライアントピアにリフレクトする
・EBGPピアからの経路情報:
クライアントピアと非クライアントピアに更新を送信する
■Originator-id
・Optionalのnon transitiveのBGPアトリビュート。
・RRによって生成される4バイトの情報で、ローカルAS内で経路の生成元のルータを示すために使用される。
・もし、ルーティングループが発生しても、Originator-idが自分のIDの場合、その情報を無視しループを回避する。
・経路選択の時に使用される場合は、Originator-idの小さい値をもった経路が優先される。
■クラスタ
・Route reflectorと、そのクライアントをクラスタと呼ぶ。そのクラスタについているIDのことをCluster IDと言う。
■Cluster ID
・Cluster IDはRoute reflectorのみに設定する。
・設定
(config)# router bgp 100
(config-router)# bgp cluster-id 10
■Cluster list
・Route reflectorが、クラスタ外部の非クライアントへ経路情報をリフレクトする時に、Cluster listの最後に自分のCluster IDを追加します。(クラスタ内のクライアントの場合もセットされる)
・Route reflecorを冗長化させると経路情報のループなどが発生する場合があるので、その経路情報がどのクラスタからのデータかを識別ために経路情報につく情報のことをCluster listと言う。
もし、Cluster listに自分のCluster IDと同じ値が入っていた場合、その経路情報は無視する。
・Route reflectorにCluster IDが設定されていなかった場合、Cluster listにはRoute reflectorのRouter IDがセットされる。
■確認コマンド
# sh ip bgp 172.16.1.0
BGP routing table entry for 172.16.1.0/24, version 6
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
70.1.1.1
200, (Received from a RR-client)
80.1.1.2 (metric 3) from 70.1.1.1 (70.1.1.1)
Origin IGP, metric 0, localpref 100, valid, internal
Originator: 80.1.1.1, Cluster list: 0.0.0.10
200, (Received from a RR-client)
80.1.1.2 (metric 3) from 60.1.1.1 (60.1.1.1)
Origin IGP, metric 0, localpref 100, valid, internal, best
Originator: 80.1.1.1, Cluster list: 0.0.0.10
■参考資料
http://www.cisco.com/japanese/warp/public/3/jp/service/tac/459/bgp-toc-j.html