◆ BGP - バックドア
BGPバックドアは特定のBGPルートのAD値を200に変更するルート制御の手法の1つです。BGPのAD値は
eBGP「20」iBGP「200」ローカルBGP「200」の3つありますが、バックドアのAD値はローカルBGPの値。
構成図では、R1とR3の間でeBGP接続、R2とR3の間でeBGP接続、R1とR2の間でIGP接続を行っています。
一般的にAS間では、eBGP接続を行いBGPによってルート制御を行いますが、ある組織のAS管理責任者が
複数のASを管理していたり、AS間双方でIGP接続の取り決めがある場合は、AS間でもIGP接続を行います。
構成図では、AS2にあるルート「2.0.0.0/8」がAS1に通知される時、AS2からはOSPFで受信することから
AD値が「110」となり、AS3からはeBGPで受信することからAD値は「20」となります。その結果、R1の
ルーティングテーブルでは「2.0.0.0/8」宛の通信のネクストホップはAS3の R3 となります。この状態では
AS2の2.0.0.0/8に到達するために、AS2に直接通信するのではなく、AS3を無駄に経由する必要があります。
AS1から、AS3を無駄に経由せずに「2.0.0.0/8」に到達するための方法は以下の2の方法があります。
@ IGPのAD値、または、eBGP値のAD値を変更する(推奨されていない手法)
A BGPバックドアを使用する。
@の方法では、distance bgp コマンドを使用して「external-distance」の値を110よりも大きくします。
◆ BGPのdistanceの設定
(config)# router bgp as-number
(config-router)# distance bgp external-distance internal-distance local-distance
コマンド引数 |
説明 |
external-distance |
デフォルト値は20。EBGPネイバーから学習した外部ルートのAD値を1〜255の範囲で指定。
|
internal-distance |
デフォルト値は200。IBGPネイバーから学習した内部ルートのAD値を1〜255の範囲で指定 |
local-distance |
デフォルト値は200。ローカルルートのAD値を1〜255の範囲で指定。 |
◆ 設定例 : 外部ルートのAD値を「120」、内部ルートのAD値を「200」ローカルルートのAD値を「200」とする設定
R1(config)# router bgp 1
R1(config-router)#distance bgp 120 200 200
|
Aの方法では、network backdoorコマンドを使用することで、特定のルートを指定してAD値を変更します。
backdoorコマンドにより特定のBGPルート「2.0.0.0/8」のAD値を「200」に変更しています。これにより、
R1のルーティングテーブル上では「2.0.0.0/8」の経路がAD値の低いAS2のR2経由で見えることになります。
また、R1のBGPテーブルを確認すると「2.0.0.0/8」の経路はAD値200よりも低いOSPFのAD値110で受信
しているため、RIB-failureが発生します。ゆえに、backdoorのネットワークはeBGPピアに通知されません。
◆ 設定例 : 特定のBGPルート「2.0.0.0/8」のAD値を200にする(ローカルBGPルートと同じにする)設定
R1(config)# router bgp 1
R1(config-router)#network 2.0.0.0 backdoor
|
|