はじめに
このドキュメントでは、ボーダー ゲートウェイ プロトコル(BGP)のベストパスアルゴリズムの機能について説明します。
背景説明
BGP ルータは、通常は同じ宛先に対する複数のパスを受信します。BGP の最適パス アルゴリズムは、IP ルーティング テーブルに格納し、トラフィック転送に使用する最適なパスを決めるものです。
ルータでパスが無視される理由
特定のプレフィクスについてルータで受信されるすべてのパスがリストに並んでいると仮定します。このリストはshow ip bgp longer-prefixescommandの出力に類するものです。この場合、パスの中には最適パスの候補と見なされないものがあります。そのようなパスには通常、show ip bgp longer-prefixes コマンドの出力に有効なフラグがありません。ルータでは、次の状況にあるパスは無視されます。
-
show ip bgp longer-prefixesの出力でnot synchronizedとマーキングされているパス。
BGP 同期がイネーブルになっている場合、内部 BGP(iBGP)パスが有効なパスと見なされるためには、IP ルーティング テーブル内にプレフィクスの一致するパスが必要です。Cisco IOS(R) ソフトウェアでは、デフォルトで BGP 同期がイネーブルになっています。一致するルートが Open Shortest Path First(OSPF)ネイバーから学習された場合、その OSPF ルータ ID は iBGP ネイバーの BGP ルータ ID と一致している必要があります。ほとんどのユーザは、no synchronization BGP サブコマンドを使用して同期を無効にすることを好みます。
注:Cisco IOS® ソフトウェアリリース 12.2(8)T 以降では、同期はデフォルトで無効になっています。
-
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に含まれていない。
この場合、ルータによって通知が送信され、セッションが閉じられます。
-
の出力で (received-only) とマークされているパスshow ip bgp longer-prefixes
これらのパスはポリシーに基づいて拒否されています。ただし、パスを送信するネイバーに が設定されているため、ルータはパスを保存しています。soft-reconfiguration inbound
最適パス アルゴリズムの仕組み
BGP は、最初の有効なパスを現在の最適なパスとして割り当てます。そして、有効なパスのリストの最後に達するまで、BGP によって最適なパスとリスト内の次のパスとが比較されます。このリストには、ベストパスを決定するために使用されるルールが示されています。
-
最も高い WEIGHT を持つパスが優先されます。
注:WEIGHT はシスコ固有のパラメータです。設定されているルータに対してローカルに割り当てられます。
-
最も高い LOCAL_PREF を持つパスが優先されます。
注: LOCAL_PREFのないパスは、bgp default local-preference コマンドで値を設定してあるか、デフォルト値100であると見なされます。
-
network または aggregate BGP サブコマンドによって、あるいは IGP からの再配布を通じて、ローカルで発信されたパスが優先されます。
network コマンドや redistribute コマンドによるローカル パスの方が、aggregate-address コマンドによるローカル集約よりも優先されます。
注:次の項目に注意してください。
- AIGPが設定され、bgp bestpath aigp ignoreコマンドが設定されていない場合、決定プロセスではAIGPメトリックが考慮されます。詳細については、『BGP の AIGP メトリック属性の設定』を参照してください。
-
最短の AS_PATH を持つパスが優先されます。
注:次の項目に注意してください。
-bgp bestpath as-path ignoreコマンドが設定されている場合、この手順はスキップされます。
-AS_SET は、AS がセット内にいくつあっても 1 としてカウントされます。
-AS_CONFED_SEQUENCE と AS_CONFED_SET は AS_PATH の長さには含まれません。
-
最小のオリジン タイプを持つパスが優先されます。
注: IGP は外部ゲートウェイプロトコル(EGP)より、また EGP は INCOMPLETE より低くなります。
-
最小の Multi-Exit Discriminator(MED)を持つパスが優先されます。
注:次の項目に注意してください。
- この比較は、最初の(隣接する)AS が 2 つのパスで同じである場合にのみ行われます。コンフェデレーション サブ AS はすべて無視されます。
つまり、AS_SEQUENCE 内の最初の AS が複数のパスの間で同じ場合にのみ、MED が比較されます。先行する AS_CONFED_SEQUENCE は無視されます。
- bgp always-compare-medが有効な場合、すべてのパスについてMEDが比較されます。
このオプションを AS 全体にわたってディセーブルにする必要があります。そうしないと、ルーティング ループが発生する可能性があります。
- bgp bestpath med-confedが有効な場合、AS_CONFED_SEQUENCEだけで構成されるすべてのパスについてMEDが比較されます。
これらのパスは、ローカル コンフェデレーション内で発信されています。
-4,294,967,295 の MED を持つ、隣接ルータから受信したパスの MED は、BGP テーブルに挿入される前に変更されます。MED は 4,294,967,294 に変更されます。
- MED が 4,294,967,295 のネイバーから受信したパスの MED は、有効とみなされて BGP テーブルに挿入され、Cisco Bug ID CSCef34800 の修正済みのコードに影響します。
- bgp bestpath med missing-as-worstを有効にしていない場合、MEDなしで受信したパスには0のMEDが割り当てられます。
bgp bestpath med missing-as-worst を有効にしている場合、パスには 4,294,967,294 の MED が割り当てられます。
bgp bestpath med missing-as-worstを有効にしている場合、パスには4,294,967,295のMEDが割り当てられ、Cisco Bug ID CSCef34800で修正されたコードに反映されます。
- bgp deterministic-medコマンドもまたこの手順に影響を与える可能性があります。
実例については、『BGP ルータでの最適パスの選択のための Multi-Exit Discriminator 使用方法』を参照してください。
-
iBGP パスよりも eBGP パスの方が優先されます。
最適パスが選択される場合は、ステップ 9 に移動してください(マルチパス)。
注:AS_CONFED_SEQUENCE と AS_CONFED_SET を含むパスは、連合に対してローカルです。したがって、これらのパスは内部パスとして扱われます。Confederation External と Confederation Internal との間には違いはありません。
-
BGP ネクストホップへの最小の IGP メトリックを持つパスが優先されます。
最適パスがすでに選択されていても、続けてください。
-
マルチパスが BGP マルチパス用にルーティング テーブルでインストールされる必要があるかどうか判断します。
最適パスがまだ選択されていない場合、続けてください。
-
両方のパスが外部のときは、先に受信したパス(最も古いパス)が優先されます。
この手順によってルートフラップが最小限に抑えられます。これは、たとえ次の決定条件(手順 11、12、および 13)に基づいて新しい方のパスが優先ルートになった場合でも、新しい方のパスによって古い方のパスが置き換えられないためです。
これらの項目のいずれかが該当する場合、この手順をスキップします。
-
bgp best path compare-routerid コマンドを有効にしている場合。
注:Cisco IOS® ソフトウェアリリース 12.0.11S、12.0.11SC、12.0.11S3、12.1.3、12.1.3AA、12.1.3.T、および 12.1.3.E でこのコマンドが導入されました。
-
ルータ ID が複数のパスで同じ場合(ルートを同じルータから受信したため)。
-
現時点で最適なパスがない場合。
たとえば、パスを供給している隣接ルータがダウンした場合などには、現時点での最適なパスが失われる可能性があります。
-
最小のルータ ID を持つ BGP ルータから送られたルートが優先されます。
ルータ ID はルータ上で最大の IP アドレスで、ループバック アドレスに割り当てられた優先度が備わっています。また、bgp router-idコマンドを使用して、ルータIDを手動で設定することもできます。
注:パスにルートリフレクタ(RR)属性が含まれている場合、パス選択プロセスでは、ルータ ID の代わりに発信元 ID が使用されます。
-
発信元 ID またはルータ ID が複数のパスで同じ場合は、最小のクラスタ リスト長を持つパスが優先されます。
これが発生するのは、BGP RR 環境でだけです。この環境では、クライアントは RR または他のクラスタのクライアントとピア関係を確立できます。このシナリオでは、クライアントは RR 固有の BGP アトリビュートを認識している必要があります。
-
最小の隣接ルータ アドレスから送られたパスが優先されます。
このアドレスは、BGP 設定で使用される IP アドレスです。neighbor
このアドレスはローカル ルータとの TCP 接続に使用されるリモート ピアに対応します。
例:BGP のベストパスの選択
この例では、ネットワーク 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 bestpath cost-community ignore コマンドが発行されている場合、この手順はスキップされます。
- cost community set 句は、コストコミュニティ ID 番号(0 ~ 255)およびコスト番号値(0 ~ 4,294,967,295)で設定されます。 コスト数値によってパスの優先度が判断されます。最小のコスト数値を持つパスが優先されます。具体的にコスト数値を使用して設定されているわけではないパスには、デフォルトのコスト数値である 2,147,483,647 が割り当てられます。この値は、0 ~ 4,294,967,295 の中央値です。次に、これらのパスは最適パス選択プロセスに従って評価されます。2 つのパスが同じコスト数値を使用して設定されている場合、パス選択プロセスでは最も低いコミュニティ ID のパスが優先されます。パスの準最適パス コスト コミュニティが等しくない場合は、準最適パス コスト コミュニティの低いパスが最適パスとして選択されます。
- ABSOLUTE_VALUE は、パスの優先度を決定するための最初のステップとみなされます。たとえば、EIGRP が BGP VPNv4 に再配布されると、ABSOLUTE_VALUE タイプはコスト コミュニティに使用されます。IGB_Cost は、ネクスト ホップまでの内部 (IGP) 距離が比較された後に考慮されます。つまり、IGP_COST 挿入ポイントのコスト コミュニティが、「最適パス アルゴリズムの仕組み」のアルゴリズムの手順 8 の後で考慮されます。
BGP マルチパス
BGP マルチパスでは、同じ宛先への複数の BGP パスの IP ルーティング テーブルに対するインストールが許可されます。これらのパスは、ロード シェアリング用に最適パスとともにテーブル内へインストールされます。BGP マルチパスによる最適パスの選択への影響はありません。たとえば、ルータは引き続き、アルゴリズムに従っていずれかのパスをベストパスとして指定し、そのベストパスをネイバーにアドバタイズします。
BGP マルチパスの機能には、次のものがあります。
マルチパスの候補になるためには、同じ宛先へのパスに、最適パスの特性に等しいこれらの特性が備わっている必要があります。
-
重量
-
Local preference
-
AS-PATH length
-
Origin
-
MED
-
次のいずれか。
一部の BGP マルチパス機能により、マルチパス候補に追加の要件が加わりました。
eBGP マルチパスには次の追加要件があります。
iBGP マルチパスには次の追加要件があります。
BGP は、マルチパス候補から最近受信した最大 n 個のパスを IP ルーティング テーブルに挿入します。現在、n の最大値は 6 です。マルチパスがディセーブルになっている場合のデフォルト値は 1 です。
不等コスト ロード バランシングでは、BGP リンク帯域幅も使用できます。
注:内部ピアへの転送前に、eBGP マルチパスで選択されたベストパスに対して同等の next-hop-self が実行されます。
関連情報