このドキュメントでは、ボーダー ゲートウェイ プロトコル(BGP)のベストパスアルゴリズムの機能について説明します。
BGP ルータは、通常は同じ宛先に対する複数のパスを受信します。BGP の最適パス アルゴリズムは、IP ルーティング テーブルに格納し、トラフィック転送に使用する最適なパスを決めるものです。
特定のプレフィクスについてルータで受信されるすべてのパスがリストに並んでいると仮定します。このリストは show ip bgp longer-prefixes コマンドの出力と類似しています。この場合、パスの中には最適パスの候補と見なされないものがあります。そのようなパスには通常、show ip bgp longer-prefixes コマンドの出力に有効なフラグがありません。ルータでは、次の状況にあるパスは無視されます。
show ip bgp longer-prefixesの出力でnot synchronizedとマーキングされているパス。
BGP 同期がイネーブルになっている場合、内部 BGP(iBGP)パスが有効なパスと見なされるためには、IP ルーティング テーブル内にプレフィクスの一致するパスが必要です。Cisco IOS®ソフトウェアでは、当初、BGP同期はデフォルトでイネーブルにされていました。一致するルートが Open Shortest Path First(OSPF)ネイバーから学習された場合、その OSPF ルータ ID は iBGP ネイバーの BGP ルータ ID と一致している必要があります。ほとんどのユーザは、no synchronization BGP サブコマンドを使用して同期を無効にすることを好みます。
NEXT_HOP にアクセスできないパス。
パスに関連付けられている NEXT_HOP への Interior Gateway Protocol(IGP)ルートが存在することを確認します。
外部 BGP(eBGP)隣接ルータからのパスで、ローカルの Autonomous System(AS; 自律システム)が AS_PATH に含まれる場合.
このようなパスは、ルータへの入力時に拒否され、BGP ルーティング情報ベース(RIB)にもインストールされません。 同じことは、アクセス、プレフィクス、AS_PATH、またはコミュニティ リストを介して実装されたルーティング ポリシーによって拒否されるパスについても当てはまります。ただし、ネイバーに対して neighbor soft-reconfiguration inbound を設定している場合は除きます。
bgp enforce-first-asをイネーブルにしていて、隣接ルータのASがAS_SEQUENCE内の最初のAS番号としてUPDATEに含まれていない。
この場合、ルータによって通知が送信され、セッションが閉じられます。
show ip bgp longer-prefixes の出力で (received-only) とマークされているパス
これらのパスはポリシーに基づいて拒否されています。ただし、パスを送信しているネイバーに対して soft-reconfiguration inbound が設定されているため、これらのパスはルータによって格納されています。
BGP は、最初の有効なパスを現在の最適なパスとして割り当てます。そして、有効なパスのリストの最後に達するまで、BGP によって最適なパスとリスト内の次のパスとが比較されます。このリストには、ベストパスを決定するために使用されるルールが示されています。
最も高い WEIGHT を持つパスが優先されます。
最も高い LOCAL_PREF を持つパスが優先されます。
network または aggregate BGP サブコマンドによって、あるいは IGP からの再配布を通じて、ローカルで発信されたパスが優先されます。
network コマンドや redistribute コマンドによるローカル パスの方が、aggregate-address コマンドによるローカル集約よりも優先されます。
最短の AS_PATH を持つパスが優先されます。
最小のオリジン タイプを持つパスが優先されます。
最小の Multi-Exit Discriminator(MED)を持つパスが優先されます。
iBGP パスよりも eBGP パスの方が優先されます。
最適パスが選択される場合は、ステップ 9 に移動してください(マルチパス)。
BGP ネクストホップへの最小の IGP メトリックを持つパスが優先されます。
最適パスがすでに選択されていても、続けてください。
マルチパスが BGP マルチパス用にルーティング テーブルでインストールされる必要があるかどうか判断します。
最適パスがまだ選択されていない場合、続けてください。
両方のパスが外部のときは、先に受信したパス(最も古いパス)が優先されます。
この手順によってルートフラップが最小限に抑えられます。これは、たとえ次の決定条件(手順 11、12、および 13)に基づいて新しい方のパスが優先ルートになった場合でも、新しい方のパスによって古い方のパスが置き換えられないためです。
これらの項目のいずれかが該当する場合、この手順をスキップします。
bgp best path compare-routerid コマンドを有効にしている場合。
ルータ ID が複数のパスで同じ場合(ルートを同じルータから受信したため)。
現時点で最適なパスがない場合。
たとえば、パスを供給している隣接ルータがダウンした場合などには、現時点での最適なパスが失われる可能性があります。
最小のルータ ID を持つ BGP ルータから送られたルートが優先されます。
手動で設定しない場合、ルータIDはループバックインターフェイスで最も高いIPアドレスとして選択されます。ループバックインターフェイスが存在しない場合は、アクティブな物理インターフェイスの最上位のIPアドレスとして選択されます。ルータIDを手動で設定するには、bgp router-idコマンドを使用します。
発信元 ID またはルータ ID が複数のパスで同じ場合は、最小のクラスタ リスト長を持つパスが優先されます。
これが発生するのは、BGP RR 環境でだけです。この環境では、クライアントは RR または他のクラスタのクライアントとピア関係を確立できます。このシナリオでは、クライアントは RR 固有の BGP アトリビュートを認識している必要があります。
最小の隣接ルータ アドレスから送られたパスが優先されます。
このアドレスは BGP ネイバー設定で使用されている IP アドレスです。このアドレスはローカル ルータとの TCP 接続に使用されるリモート ピアに対応します。
この例では、ネットワーク 10.30.116.0/23 に対して 9 つのパスが使用可能です。show ip bgp network コマンドは、特定のネットワークの BGP ルーティング テーブルのエントリを表示します。
Router R1#show ip bgp vpnv4 rd 1100:1001 10.30.116.0/23
BGP routing table entry for 1100:1001:10.30.116.0/23, version 26765275
Paths: (9 available, best #6, no table)
Advertised to update-groups:
1 2 3
(65001 64955 65003) 65089, (Received from a RR-client)
172.16.254.226 (metric 20645) from 172.16.224.236 (172.16.224.236)
Origin IGP, metric 0, localpref 100, valid, confed-internal
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65008 64955 65003) 65089
172.16.254.226 (metric 20645) from 10.131.123.71 (10.131.123.71)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65001 64955 65003) 65089
172.16.254.226 (metric 20645) from 172.16.216.253 (172.16.216.253)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65001 64955 65003) 65089
172.16.254.226 (metric 20645) from 172.16.216.252 (172.16.216.252)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(64955 65003) 65089
172.16.254.226 (metric 20645) from 10.77.255.57 (10.77.255.57)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(64955 65003) 65089
172.16.254.226 (metric 20645) from 10.57.255.11 (10.57.255.11)
Origin IGP, metric 0, localpref 100, valid, confed-external, best
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
!--- BGP selects this as the Best Path on comparing
!--- with all the other routes and selected based on lower router ID.
(64955 65003) 65089
172.16.254.226 (metric 20645) from 172.16.224.253 (172.16.224.253)
Origin IGP, metric 0, localpref 100, valid, confed-internal
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65003) 65089
172.16.254.226 (metric 20645) from 172.16.254.234 (172.16.254.234)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
65089, (Received from a RR-client)
172.16.228.226 (metric 20645) from 172.16.228.226 (172.16.228.226)
Origin IGP, metric 0, localpref 100, valid, confed-internal
Extended Community: RT:1100:1001
mpls labels in/out nolabel/278
BGP は、このドキュメントで説明されているさまざまな属性を考慮して、これらの 9 つのパスから最適なパスを選択します。ここに示す出力では、BGP は使用可能なパスを比較し、低い方のルータ ID に基づいてパス 6 をベストパスとして選択します。
Comparing path 1 with path 2: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP The paths have different neighbor AS's so ignoring MED Both paths are internal (no distinction is made between confed-internal and confed-external) Both paths have an IGP metric to the NEXT_HOP of 20645 Path 2 is better than path 1 because it has a lower Router-ID. Comparing path 2 with path 3: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 2 is better than path 3 because it has a lower Router-ID. Comparing path 2 with path 4: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 2 is better than path 4 because it has a lower Router-ID. Comparing path 2 with path 5: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 5 is better than path 2 because it has a lower Router-ID. Comparing path 5 with path 6: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 6 is better than path 5 because it has a lower Router-ID. Comparing path 6 with path 7: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are internal (no distinction is made between confed-internal and confed-external) Both paths have an IGP metric to the NEXT_HOP of 20645 Path 6 is better than path 7 because it has a lower Router-ID. Comparing path 6 with path 8: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP Both paths have the same neighbor AS, 65089, so comparing MED. Both paths have a MED of 0 Both paths are confed-external Both paths have an IGP metric to the NEXT_HOP of 20645 Path 6 is better than path 8 because it has a lower Router-ID. Comparing path 6 with path 9: Both paths have reachable next hops Both paths have a WEIGHT of 0 Both paths have a LOCAL_PREF of 100 Both paths are learned Both paths have AS_PATH length 1 Both paths are of origin IGP The paths have different neighbor AS's so ignoring MED Both paths are internal (no distinction is made between confed-internal and confed-external) Both paths have an IGP metric to the NEXT_HOP of 20645 Path 6 is better than path 9 because it has a lower Router-ID. The best path is #6
BGP コスト コミュニティと呼ばれる拡張コミュニティ属性により、ベスト パスの選択プロセスをカスタマイズすることができます。コスト コミュニティが比較される追加のステップが、「最適パス アルゴリズムの仕組み」の項で説明されているアルゴリズムに追加されています。この手順は、アルゴリズムで要求される手順(挿入ポイント)の後に挿入されます。最小のコスト値を持つパスが優先されます。
BGP マルチパスでは、同じ宛先への複数の BGP パスの IP ルーティング テーブルに対するインストールが許可されます。これらのパスは、ロード シェアリング用に最適パスとともにテーブル内へインストールされます。BGP マルチパスによる最適パスの選択への影響はありません。たとえば、ルータは引き続き、アルゴリズムに従っていずれかのパスをベストパスとして指定し、そのベストパスをネイバーにアドバタイズします。
BGP マルチパスの機能には、次のものがあります。
eBGPマルチパス:maximum-paths n
iBGPマルチパス:maximum-paths ibgp n
eiBGPマルチパス:maximum-paths eibgp
マルチパスの候補になるためには、同じ宛先へのパスに、最適パスの特性に等しいこれらの特性が備わっている必要があります。
重量
Local preference
AS-PATH length
Origin
MED
次のいずれか。
ネイバー AS または sub-AS(eiBGP マルチパス機能が追加される前)
AS-PATH(eiBGP マルチパス機能が追加された後)
一部の BGP マルチパス機能により、マルチパス候補に追加の要件が加わりました。
eBGP マルチパスには次の追加要件があります。
パスは外部ネイバーまたは連合外部ネイバー(eBGP)から学習される必要があります。
BGP ネクストホップへの IGP メトリックは、ベストパス IGP メトリックと同等である必要があります。
iBGP マルチパスには次の追加要件があります。
パスは内部ネイバー(iBGP)から学習される必要があります。
ルータが不等コスト iBGP マルチパス用に設定されていない限り、BGP ネクストホップへの IGP メトリックは、ベストパス IGP メトリックと同等である必要があります。
BGP は、マルチパス候補から最近受信した最大 n 個のパスを IP ルーティング テーブルに挿入します。nの最大値は、プラットフォームおよびソフトウェアのバージョンによって異なります。古いプラットフォームでは最大6つのパスをサポートできますが、最新のプラットフォームでは16、32、またはそれ以上をサポートできます。マルチパスがディセーブルになっている場合のデフォルト値は 1 です。
不等コスト ロード バランシングでは、BGP リンク帯域幅も使用できます。
| 改定 | 発行日 | コメント |
|---|---|---|
6.0 |
28-Apr-2026
|
書式 |
5.0 |
02-Dec-2024
|
書式とリンクを修正しました。 |
4.0 |
11-Jul-2023
|
タイトル、概要、フォーマットを更新。
背景説明を追加。 |
3.0 |
22-Jun-2022
|
機械翻訳のガイドラインを更新。 |
1.0 |
10-Dec-2001
|
初版 |