例:ルーティングポリシーを使用したBGPルートの優先値の設定
この例では、ルーティングポリシーを使用して、BGPから学習したルートの優先度を設定する方法を示しています。ルーティング情報は、複数のソースから学習できます。複数のソースから学習した等しく特定のルート間の関係を断ち切るために、各ソースには優先値があります。静的ルートなどの明示的な管理アクションによって学習されたルートは、BGPやOSPFなどのルーティングプロトコルから学習したルートよりも優先されます。この概念は、一部のベンダーでは アドミニストレーティブ ディスタン スと呼ばれています。
要件
この例を構成する前に、デバイスの初期化以上の特別な構成は必要ありません。
概要
ルーティング情報は、静的設定、BGP、または内部ゲートウェイプロトコル(IGP)などを通じて、複数のソースから学習することができます。Junos OSがアクティブルートとなるルートの優先度を決定すると、優先度が最も低いルートをアクティブルートとして選択し、このルートを転送テーブルにインストールします。デフォルトでは、ルーティングソフトウェアは、BGP から発信されたルートにプリファレンス 170 を割り当てます。すべてのルーティングプロトコルの中で、BGPはデフォルトの優先値が最も高いため、BGPが学習したルートがアクティブルートになる可能性は最も低くなります。
一部のベンダーでは、外部BGP(EBGP)の設定(距離)を20、内部BGP(IGBP)の距離を200としています。Junos OSは、EBGPとIBGPの両方で同じ値(170)を使用します。しかし、ベンダー間のこの違いは、Junos OSが常にIBGPルートよりもEBGPルートを優先するため、運用上への影響はありません。
ベンダーが異なるもう1つの領域は、BGP距離と比較したIGP距離です。たとえば、一部のベンダーは OSPF ルートに 110 の距離を割り当てています。これは EBGP 距離の 20 よりも長く、同等の OSPF ルートよりも EBGP ルートが選択される結果になります。同じシナリオで、Junos OS が OSPF ルートを選択するのは、内部 OSPF ルートがデフォルトの優先度 10、外部 OSPF ルートが 150 であり、どちらもすべての BGP ルートに割り当てられた優先度 170 よりも低いためです。
この例では、特定のネクストホップからのルートを照合し、プリファレンスを設定するルーティングポリシーを示しています。ルートが第 1 項に一致しない場合は、第 2 項で評価されます。
トポロジー
サンプルネットワークでは、デバイスR1とデバイスR3がデバイスR2とEBGPセッションを持っています。
デバイスR2では、インポートポリシーは以下のアクションを実行します。
ネクストホップ 10.0.0.1(デバイス R1)から BGP 経由で受信したルートの場合、ルート優先度を 10 に設定します。
ネクストホップ10.1.0.2(デバイスR3)からBGP経由で受信したルートの場合、ルート優先度を15に設定します。
図 1は、サンプルのネットワークを示しています。
CLIクイック構成は、図 1でのすべてのデバイスの設定を示しています。
セクション#configuration178__bgp-preference-policy-stは、デバイスR2の手順を説明します。
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
デバイスR1
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options autonomous-system 100
デバイスR2
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 0 family inet address 10.1.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group ext type external set protocols bgp group ext import set-preference set protocols bgp group ext export send-direct set protocols bgp group ext neighbor 10.0.0.1 peer-as 100 set protocols bgp group ext neighbor 10.1.0.2 peer-as 300 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set policy-options policy-statement set-preference term term1 from protocol bgp set policy-options policy-statement set-preference term term1 from next-hop 10.0.0.1 set policy-options policy-statement set-preference term term1 then preference 10 set policy-options policy-statement set-preference term term2 from protocol bgp set policy-options policy-statement set-preference term term2 from next-hop 10.1.0.2 set policy-options policy-statement set-preference term term2 then preference 15 set routing-options autonomous-system 200
デバイスR3
set interfaces fe-1/2/1 unit 0 family inet address 10.1.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp group ext type external set protocols bgp group ext export send-direct set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.1.0.1 set policy-options policy-statement send-direct term 1 from protocol direct set policy-options policy-statement send-direct term 1 then accept set routing-options autonomous-system 300
手順
ステップバイステップでの手順
次の例では、設定階層内のさまざまなレベルに移動する必要があります。CLIのナビゲーションについては、Junos OS CLIユーザーガイドの 設定モードでCLIエディターを使用する を参照してください。
デバイスR2 を設定するには:
デバイスインターフェイスを設定します。
[edit interfaces] user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 0 family inet address 10.1.0.1/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
ローカルの自律システムを設定します。
[edit routing-options] user@R2# set autonomous-system 200
直接ルートを送信するルーティングポリシーを設定します。
[edit policy-options policy-statement send-direct term 1] user@R2# set from protocol direct user@R2# set then accept
受信したルートの優先度を変更するルーティング ポリシーを設定します。
[edit policy-options policy-statement set-preference] user@R2# set term term1 from protocol bgp user@R2# set term term1 from next-hop 10.0.0.1 user@R2# set term term1 then preference 10 user@R2# set term term2 from protocol bgp user@R2# set term term2 from next-hop 10.1.0.2 user@R2# set term term2 then preference 15
デバイスR2との外部ピアリングを設定します。
[edit protocols bgp group ext] user@R2# set type external user@R2# set export send-direct user@R2# set neighbor 10.0.0.1 peer-as 100 user@R2# set neighbor 10.1.0.2 peer-as 300
set-preference
ポリシーをインポートポリシーとして適用します。これは、デバイスR2のルーティングテーブルに影響し、デバイスR1およびデバイスR3には影響しません。
[edit protocols bgp group ext] user@R2# set import set-preference
結果
設定モードから、show interfaces
、show protocols
、show policy-options
、およびshow routing-options
のコマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@R2# show interfaces fe-1/2/0 { unit 0 { family inet { address 10.0.0.2/30; } } } fe-1/2/1 { unit 0 { family inet { address 10.1.0.1/30; } } } lo0 { unit 0{ family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; import set-preference; export send-direct; neighbor 10.0.0.1 { peer-as 100; } neighbor 10.1.0.2 { peer-as 300; } } }
user@R2# show policy-options policy-statement send-direct { term 1 { from protocol direct; then accept; } } policy-statement set-preference { term term1 { from { protocol bgp; next-hop 10.0.0.1; } then { preference 10; } } term term2 { from { protocol bgp; next-hop 10.1.0.2; } then { preference 15; } } }
user@R2# show routing-options autonomous-system 200;
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定が正常に機能していることを確認します。
プリファレンスの確認
目的
デバイスR1とデバイスR2のルーティングテーブルに、デバイスR1が設定されたEBGPプリファレンス8を使用し、デバイスR2がデフォルトのEBGPプリファレンス170を使用しているという事実が反映されていることを確認します。
アクション
動作モードからshow route protocols bgp
コマンドを入力します。
user@R2> show route protocols bgp inet.0: 7 destinations, 9 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.0.0/30 [BGP/10] 04:42:23, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0 10.1.0.0/30 [BGP/15] 04:42:23, localpref 100 AS path: 300 I, validation-state: unverified > to 10.1.0.2 via fe-1/2/1.0 192.168.0.1/32 *[BGP/10] 04:42:23, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0 192.168.0.3/32 *[BGP/15] 04:42:23, localpref 100 AS path: 300 I, validation-state: unverified > to 10.1.0.2 via fe-1/2/1.0
意味
出力からは、デバイスR2では、デバイスR3から学習したルートの優先値が15に変更され、デバイスR1から学習したルートの優先値が10に変更されていることがわかります。