内容

はじめに

背景説明

ルータでパスが無視される理由

最適パス アルゴリズムの仕組み

例：BGPベストパスの選択

パスを選択するプロセスのカスタマイズ

BGP マルチパス

関連情報

はじめに

このドキュメントでは、ボーダー ゲートウェイ プロトコル（BGP）のベストパスアルゴリズムの機能について説明します。

背景説明

BGPルータは通常、同じ宛先への複数のパスを受信します。BGP の最適パス アルゴリズムは、IP ルーティング テーブルに格納し、トラフィック転送に使用する最適なパスを決めるものです。

ルータでパスが無視される理由

特定のプレフィクスについてルータで受信されるすべてのパスがリストに並んでいると仮定します。このリストは、 show ip bgp longer-prefixes コマンドを使用して、アップグレードを実行します。この場合、パスの中には最適パスの候補と見なされないものがあります。通常、そのようなパスの出力には有効なフラグがありません。 show ip bgp longer-prefixes コマンドを使用して、アップグレードを実行します。ルータでは、次の状況にあるパスは無視されます。

- 内でnot synchronizedとマークされているパス show ip bgp longer-prefixes エラーが表示される場合があります。

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 UPDATEには、ネイバーのASがAS_SEQUENCE内の最初のAS番号として含まれていません。

この場合、ルータによって通知が送信され、セッションが閉じられます。

- (received-only)とマークされたパスは、 show ip bgp longer-prefixes 出力

これらのパスはポリシーに基づいて拒否されています。ただし、次のように設定されているため、ルータはパスを保存しています soft-reconfiguration inbound パスを送信するネイバーのIPアドレスを指定します。

最適パス アルゴリズムの仕組み

BGP は、最初の有効なパスを現在の最適なパスとして割り当てます。そして、有効なパスのリストの最後に達するまで、BGP によって最適なパスとリスト内の次のパスとが比較されます。次のリストは、ベストパスを決定するために使用されるルールを示しています。

1. 最も高い WEIGHT を持つパスが優先されます。

注:WEIGHTはシスコ固有のパラメータです。設定されているルータに対してローカルに割り当てられます。

2. 最も高い LOCAL_PREF を持つパスが優先されます。

注:LOCAL_PREFのないパスは、 bgp default local-preference またはデフォルト値100を持ちます。

3. ローカルで発信されたパスが network または aggregate BGPサブコマンドを使用するか、IGPからの再配布を使用します。

ローカルパスの送信元が network または redistribute コマンドは、CLIから発信されるローカル集約よりも aggregate-address コマンドを使用して、アップグレードを実行します。

注：次の項目に注意してください。

- AIGPが設定されていて、 bgp bestpath aigp ignore コマンドが設定されていない場合、決定プロセスはAIGPメトリックを考慮します。詳細については、「BGPのAIGPメトリック属性の設定」を参照してください。

4. 最短の AS_PATH を持つパスが優先されます。

注：次の点に注意してください。

– この手順は、CLIで bgp bestpath as-path ignore コマンドを使用して、アップグレードを実行します。

-AS_SET は、AS がセット内にいくつあっても 1 としてカウントされます。

-AS_CONFED_SEQUENCE と AS_CONFED_SET は AS_PATH の長さには含まれません。

5. 最小のオリジン タイプを持つパスが優先されます。

注:IGPはExterior Gateway Protocol(EGP)よりも小さく、EGPはINCOMPLETEよりも小さくなります。

6. 最小の 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に変更されます。

- 4,294,967,295のMEDを持つネイバーから受信したパスのMEDは有効であると見なされ、Cisco Bug ID CSCef34800で修正されたコードに従ってBGPテーブルに挿入されます。

- MEDなしで受信したパスには、イネーブルにしていない限り、0のMEDが割り当てられます。 bgp bestpath med missing-as-worstを参照。

有効にしている場合 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 使用方法』を参照してください。

7. iBGP パスよりも eBGP パスの方が優先されます。

最適パスが選択される場合は、ステップ 9 に移動してください（マルチパス）。

注:AS_CONFED_SEQUENCEおよびAS_CONFED_SETを含むパスは、コンフェデレーションに対してローカルです。したがって、これらのパスは内部パスとして扱われます。Confederation External と Confederation Internal との間には違いはありません。

8. BGP ネクストホップへの最小の IGP メトリックを持つパスが優先されます。

最適パスがすでに選択されていても、続けてください。

9. マルチパスが BGP マルチパス用にルーティング テーブルでインストールされる必要があるかどうか判断します。

最適パスがまだ選択されていない場合、続けてください。

10. 両方のパスが外部のときは、先に受信したパス（最も古いパス）が優先されます。

この手順によってルートフラップが最小限に抑えられます。これは、たとえ次の決定条件（手順 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 が複数のパスで同じ場合（ルートを同じルータから受信したため）。

- 現時点で最適なパスがない場合。

たとえば、パスを供給している隣接ルータがダウンした場合などには、現時点での最適なパスが失われる可能性があります。

11. 最小のルータ ID を持つ BGP ルータから送られたルートが優先されます。

ルータ ID はルータ上で最大の IP アドレスで、ループバック アドレスに割り当てられた優先度が備わっています。また、 bgp router-id コマンドを発行して、ルータIDを手動で設定します。

注:パスにルートリフレクタ(RR)アトリビュートが含まれている場合、パス選択プロセスでルータIDの代わりに発信元IDが使用されます。

12. 発信元 ID またはルータ ID が複数のパスで同じ場合は、最小のクラスタ リスト長を持つパスが優先されます。

これが発生するのは、BGP RR 環境でだけです。この環境では、クライアントは RR または他のクラスタのクライアントとピア関係を確立できます。このシナリオでは、クライアントは RR 固有の BGP アトリビュートを認識している必要があります。

13. 最小の隣接ルータ アドレスから送られたパスが優先されます。

このアドレスは、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 マルチパスによる最適パスの選択への影響はありません。たとえば、ルータはアルゴリズムに従ってパスの1つをベストパスとして引き続き指定し、このベストパスをネイバーにアドバタイズします。

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 です。マルチパスがディセーブルになっている場合のデフォルト値は 1 です。

不等コスト ロード バランシングでは、BGP リンク帯域幅も使用できます。

注：同等のnext-hop-selfは、内部ピアに転送される前に、eBGPマルチパス間で選択されたベストパスで実行されます。

関連情報

- BGP のトラブルシューティング

- BGPルータは最適パス選択のためにマルチエグジット識別子をどのように使うか

- BGP の設定

- BGP に関するサポート ページ

- テクニカル サポートとドキュメント - Cisco Systems