BGPパス選択について
ルーティングテーブルの各プレフィックスに対して、ルーティングプロトコルプロセスは単一の最良パスを選択します。最適なパスが選択された後、そのパスがルーティングテーブルにインストールされます。管理距離とも呼ばれるグローバル・プリファレンス値がより低い(より好ましい)プロトコルによって同じプレフィックスが学習されない場合、最良のパスがアクティブなルートとなります。アクティブ・ルートを決定するアルゴリズムは以下の通りです:
-
ネクスト・ホップが解決可能であることを検証します。
-
プリファレンス値(ルーティング・プロトコル・プロセス・プリファレンス)が最も低いパスを選択します。
転送の対象とならないルート(例えば、ルーティングポリシーで拒否されたり、ネクストホップにアクセスできないという理由で)は、プリファレンスが-1になり、決して選択されません。
-
ローカルプリファレンスの高いパスを優先します。
BGP以外のパスの場合は、 preference2 値が最も小さいパスを選択します。
-
accumulated interior gateway protocol(AIGP)属性が有効になっている場合、IGPメトリックを追加し、より低いAIGP属性のパスを優先します。
-
自律システム(AS)パス値が最短のパスを優先します(
as-path-ignoreステートメントが設定されている場合はスキップします)。コンフェデレーション・セグメント(シーケンスまたはセット)のパス長は 0 です。ASセットのパス長は1です。
-
起点コードの小さいルートを優先します。
IGPから学習したルートは、外部ゲートウェイ・プロトコル(EGP)から学習したルートよりも起点コードが低く、どちらも不完全なルート(起点が不明なルート)よりも起点コードが低くなっています。
-
Multiple Exit Discriminator(MED)が、最も小さいパスを優先します。
非決定的なルーティングテーブルのパス選択動作が設定されているか否かにより、次の2つのケースが考えられます:
-
非決定的ルーティングテーブルパス選択動作が設定されていない場合(つまり、BGPの設定に
path-selection cisco-nondeterministicステートメントが含まれていない場合)、ASパスの先頭に同じ隣接AS番号を持つパスについては、MEDメトリックが最も小さいパスを優先します。比較されたルートのピアASが同じか否かにかかわらず、常に MED を比較するためには、path-selection always-compare-medステートメントを含めます。 -
非決定的ルーティングテーブルパス選択動作が設定されている(つまり、BGPの設定に
path-selection cisco-nondeterministic文が含まれている)場合、MEDメトリックが最小のパスを優先します。
隣接ASを決定する際、コンフェデレーションは考慮されません。MEDメトリックが消失した場合、MEDは存在するもののゼロであるかのように扱われます。
手記:MED比較は、AS内の単一パス選択(ルートがASパスを含まない場合)でも機能しますが、この使用法は一般的ではありません。
デフォルトでは、同じピア自律システム(AS)を持つルートのMEDだけが比較されます。ルーティングテーブルのパス選択オプションを設定して、異なる動作を得ることができます。
-
-
IGPルートとローカルに生成されたルート(スタティック、ダイレクト、ローカルなど)を含む、厳密な内部パスを優先します。
-
内部BGP(IBGP)セッションで学習した外部パスよりも、厳密な外部BGP(EBGP)パスを優先します。
-
ネクストホップが最もメトリックの低いIGPルートを通じて解決されるパスを優先します。IGPを通じて解決されるBGPルートは、到達不能または拒否されたルートよりも優先されます。
手記:前のステップの後にタイブレークが行われた場合、パスはBGPイコールコスト・パスとみなされます(そして転送に使用されます)。マルチパス対応のBGPネイバーによって学習された、同一のネイバーASを持つすべてのパスが考慮されます。
BGPマルチパスは、MED-plus-IGPコストが同じで、IGPコストが異なるパスには適用されません。マルチパスのパス選択は、2つのパスが同じMED-plus-IGPコストを持つ場合でも、IGPコスト・メトリックに基づいて行われます。
-
両方のパスが外部にある場合、最も古いパス、つまり最初に学習されたパスが優先されます。これは、ルートフラップを最小化するために行われます。このルールは、次の条件のいずれかに該当する場合は使用されません:
-
path-selection external-router-id が設定されています。
-
どちらのピアも同じルータ IDを保持しています。
-
どちらかのピアがコンフェデレーション・ピアとなります。
-
どちらのパスも、現在アクティブなパスではありません。
-
-
二次ルートよりも一次ルートを優先します。一次ルートは、ルーティングテーブルに属するルートです。二次ルートとは、エクスポート・ポリシーによってルーティングテーブルに追加されるルートのことです。
-
ルータIDが最も小さいピアからのパスを優先します。オリジネーターID属性を持つパスに関しては、ルーターID比較時にオリジネーターIDをルーターIDに置き換えてください。
-
クラスタ・リストの長さが、最も短いパスを優先します。リストがない場合、長さは 0 になります 。
-
ピアIPアドレスが、最も小さいピアからのパスを優先します。
ルーティング・テーブルのパス選択
アルゴリズムの最短ASパスのステップは、デフォルトによって、ASパスの長さを評価し、アクティブなパスを決定します。 as-path-ignore オプションを含めることで、Junos OS がアルゴリズムのこのステップをスキップできるようにするオプションを設定できます。
Junos OS リリース 14.1R8、14.2R7、15.1R4、15.1F6、16.1R1 以降では、ルーティング インスタンスで as-path-ignore オプションがサポートされています。
ルーティング・プロセスのパス選択は、BGPがルーティングテーブルにパスを手渡し、決定を下す前に行われます。ルーティングテーブルパス選択動作を設定するには、 path-selection ステートメントを含めます。
path-selection { (always-compare-med | cisco-non-deterministic | external-router-id); as-path-ignore; l2vpn-use-bgp-rules; med-plus-igp { igp-multiplier number; med-multiplier number; } }
このステートメントを含めることができる階層レベルの一覧は、このステートメントのステートメント概要のセクションを参照してください。
ルーティング・テーブルのパス選択は、次のいずれかの方法で設定することができます:
-
Cisco IOSのデフォルト動作(cisco-non-deterministic)をエミュレートします。このモードでは、ルートを受け取った順に評価し、ネイバーのASに応じてそのルートをグループ化しません。
cisco-non-deterministicモードでは、アクティブなパスが常に優先されます。非アクティブながら適格なパスは、すべてアクティブなパスに続き、受信した順番に維持され、最新のパスが優先されます。対象外のパスは、リストの末尾に残されています。例として、192.168.1.0 /24 ルートに対して3つのパス広告があるとします:
-
パス1-EBGPで学習。65010のASパス。200のMED
-
パス2-IBGPで学習。65020のASパス。150のMED;IGPコスト5
-
パス3-IBGPで学習。65010のASパス。100のMEDです。IGPコスト10
これらのアドバタイズは、記載された順番に1秒以内に次々と受信されます。パス3は、最も最近に受信したものなので、ルーティング・デバイスは次に新しいアドバタイズであるパス2に対して比較します。IBGPピアへのコストは、パス2の方が良いので、ルーティング・デバイスは、パス3をコンテンションから除外します。パス1とパス2を比較した場合、パス1はEBGPピアからの受信となるため、ルーティング・デバイスはパス1を優先します。これにより,ルーティング・デバイスは、パス1をルートのアクティブ・パスとしてインストールすることを承認します。
手記:この設定オプションをネットワークで使用することは、お勧めしません。ネットワーク上のすべてのルーティング・デバイスが一貫したルート選択を行えるようにするため、相互運用性のみを目的として提供されています。
-
比較するルートのピアASが同じ(always-compare-med)か否かにかかわらず、常にMEDを比較します。
両方のパスが外部にある場合、現在アクティブなパス(external-router-id)を優先するルールを無効にします。次のステップ(ステップ 12)に進み、パス選択作業を行います。
パス選択(
med-plus-igp)に関するMED値を比較する前に、ネクストホップ宛先までのIGPコストをMED値に追加します。BGPマルチパスは、MED-plus-IGPコストが同じながら、未だIGPコストが異なるパスには適用されません。マルチパスのパス選択は、2つのパスが同じMED-plus-IGPコストを持つ場合でも、IGPコスト・メトリックに基づいて行われます。
BGPテーブルのパス選択
BGPのパス選択では、以下のパラメータに従います:
-
ローカルプリファレンス値の最も高いものを優先します。
-
最短のASパス長を優先します。
-
起点値が最も小さいものを優先します。
-
MEDの値が最も小さいものを優先します。
-
EBGPピアから学習したルートをIBGPピアよりも優先します。
-
ASからの最適な出口を優先します。
-
EBGP受信ルートの場合、現在のアクティブなルートを優先します。
-
ルータIDが最も小さいピアからのルートを優先します。
-
クラスタ長の最も短いパスを優先します。
-
ピアIPアドレスが最も小さいピアからのルートを優先します。ステップ2、6および12がRPDの基準です。
宛先までの複数のパスをアドバタイズすることによる効果
BGPは、宛先への複数のパスをアドバタイズするようにBGPを設定しない限り、アクティブなパスのみをアドバタイズします。
ルーティング・デバイスのルーティングテーブルに宛先への4つのパスがあり、最大3つのパスをアドバタイズするように設定されている(add-path send path-count 3)とします。3つのパスは、パス選択基準に基づいて選択されます。つまり、最適な3つのパスがパス選択順に選択されます。最適なパスは、アクティブなパスです。このパスは検討から外され、新たな最適パスが選択されます。この処理は、指定されたパス数に達するまで繰り返されます。
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。