基本的な BGP について
Cisco NX-OS は BGP バージョン 4 をサポートします。BGP v4 に組み込まれているマルチ プロトコル拡張機能を使用すると、IP マルチキャスト ルートおよび複数のレイヤ 3 プロトコル アドレス ファミリに関するルーティング情報を BGP に伝送させることができます。BGP では、他の BGP 対応デバイスとの間で TCP セッションを確立するための、信頼できるトランスポート プロトコルとして TCP を使用します。
BGP ではパスベクトル ルーティング アルゴリズムを使用して、BGP 対応ネットワーク デバイスまたは BGP スピーカ間でルーティング情報を交換します。各 BGP スピーカはこの情報を使用して、特定の宛先までのパスを判別し、なおかつルーティング ループを伴うパスを検出して回避します。ルーティング情報には、宛先の実際のルート プレフィックス、宛先に対する自律システムのパス、およびその他のパス属性が含まれます。
BGP はデフォルトで、宛先ホストまたはネットワークへのベスト パスとして、1 つだけパスを選択します。各パスは、BGP ベストパス分析で使用される well-known mandatory、well-known discretionary、optional transitive の各属性を伝送します。BGP ポリシーを設定し、これらの属性の一部を変更することによって、BGP パス選択を制御できます。詳細については、ルート ポリシーおよび BGP セッションのリセットを参照してください。
BGP は、ロード バランシングまたは等コスト マルチパス(ECMP)もサポートします。詳細については、「ロード シェアリングとマルチパス」の項を参照してください。
BGP 自律システム
自律システム(AS)とは、単一の管理エンティティにより制御されるネットワークです。自律システムは 1 つまたは複数の IGP および整合性のある一連のルーティング ポリシーを使用して、ルーティング ドメインを形成します。BGP は 16 ビットおよび 32 ビットの自律システム番号をサポートします。詳細については、「自律システム」を参照してください。
個々の BGP 自律システムは外部 BGP(eBGP)ピアリング セッションを通じて、ルーティング情報をダイナミックに交換します。同じ自律システム内の BGP スピーカは、内部 BGP(iBGP)を通じて、ルーティング情報を交換できます。
4 バイトの AS 番号のサポート
BGP は、プレーン テキスト表記法または AS ドット付き表記法の 2 バイトの自律システム(AS)番号、もしくはプレーン テキスト表記法の 4 バイトの AS 番号をサポートします。
4 バイトの AS 番号を使用して BGP が設定されている場合は、route-target auto VXLAN コマンドを使用できません。これは、AS 番号とともに(すでに 3 バイト値である)VNI がルート ターゲットの生成に使用されるためです。詳細については、『Cisco Nexus 9000 Series NX-OS VXLAN Configuration Guide』を参照してください。
アドミニストレーティブ ディスタンス
アドミニストレーティブ ディスタンスは、ルーティング情報源の信頼性を示す評価基準です。デフォルトで、BGP は表に示されたアドミニストレーティブ ディスタンスを使用します。
ディスタンス |
デフォルト値 |
機能 |
---|---|---|
外部 |
20 |
eBGP から学習したルートに適用されます。 |
内部 |
200 |
iBGP から学習したルートに適用されます。 |
ローカル |
220 |
ルータを起点とするルートに適用されます。 |
(注) |
アドミニストレーティブ ディスタンスが BGP パス選択アルゴリズムに影響を与えることはありませんが、BGP で学習されたルートが IP ルーティング テーブルに組み込まれるかどうかを左右します。 |
詳細については、「アドミニストレーティブ ディスタンス」のセクションを参照してください。
BGP ピア
BGP スピーカーは他の BGP スピーカーを自動的に検出しません。ユーザ側で BGP スピーカ間の関係を設定する必要があります。BGP ピアは、別の BGP スピーカへのアクティブな TCP 接続を持つ BGP スピーカです。
BGP セッション
BGP は TCP ポート 179 を使用して、ピアとの TCP セッションを作成します。ピア間で TCP 接続が確立されると、各 BGP ピアは最初に相手と、それぞれのすべてのルートを交換し、BGP ルーティング テーブルを完成させます。初期交換以後、BGP ピアはネットワーク トポロジが変化したとき、またはルーティング ポリシーが変更されたときに、差分アップデートだけを送信します。更新と更新の間の非アクティブ期間には、ピアは「キープアライブ」と呼ばれる特別なメッセージを交換します。ホールド タイムは、は、次の BGP アップデートまたはキープアライブ メッセージを受信するまでに経過することが許容される、最大時間限度です。
Cisco NX-OS は、次のピア設定オプションをサポートします。
-
個別の IPv4 または IPv6 アドレス:BGP は、リモート アドレスと AS 番号が一致する BGP スピーカとのセッションを確立します。
-
単一 AS 番号の IPv4 または IPv6 プレフィックス ピア:BGP は、プレフィックスおよび AS 番号が一致する BGP スピーカとのセッションを確立します。
-
ダイナミック AS 番号プレフィックス ピア:BGP は、プレフィックスと、設定済み AS 番号のリストに載っている AS 番号と一致する BGP スピーカとのセッションを確立します。
プレフィックス ピアおよびインターフェイス ピアのダイナミック AS 番号
Cisco NX-OS では、BGP セッションを確立する AS 番号の範囲またはリストを受け入れます。たとえば IPv4 プレフィックス 192.0.2.0/8 および AS 番号 33、66、99 を使用するように BGP を設定する場合、BGP は 192.0.2.1 および AS 番号 66 を使用してセッションを確立しますが、192.0.2.2 および AS 番号 50 からのセッションは拒否します。
Cisco NX-OS リリース 9.3(6) 以降、ダイナミック AS 番号のサポートは、プレフィックス ピアに加えてインターフェイス ピアにも拡張されています。IPv4 および IPv6 アドレス ファミリ向け IPv6 リンク ローカル経由の BGP インターフェイス ピアリングの設定を参照してください。
Cisco NX-OS では、セッションが確立されるまで内部 BGP(iBGP)または外部 BGP(eBGP)セッションとして、プレフィックス ピアをダイナミック AS 番号と関連付けません。iBGP および eBGP の詳細については、高度な BGP の設定を参照してください。
(注) |
ダイナミック AS 番号プレフィックス ピア設定は、BGP テンプレートから継承した個々の AS 番号の設定よりも優先します。詳細については、高度な BGP の設定 の章を参照してください。 |
BGP ルータ ID
ピア間で BGP セッションを確立するには、BGP セッションの確立時に、OPEN メッセージで BGP ピアに送信されるルータ ID を BGP に設定する必要があります。BGP ルータ ID は 32 ビット値であり、IPv4 アドレスで表すことがよくあります。ルータ ID はユーザ側で設定できます。ルータ ID はデフォルトで、Cisco NX-OS によってルータのループバック インターフェイスの IPv4 アドレスに設定されます。ルータ上でループバック インターフェイスが設定されていない場合は、ルータ上の物理インターフェイスに設定されている最大の IPv4 アドレスが BGP ルータ ID を表すものとして、ソフトウェアによって選択されます。BGP ルータ ID は、ネットワーク内の BGP ピアごとに一意である必要があります。
BGP にルータ ID が設定されていない場合、BGP ピアとのピアリング セッションを確立できません。
BGP パスの選択
BGP は、プレフィックスごとの複数パスの送受信と、このパスのアドバタイジングをサポートします。追加 BGP パスの設定については、高度な BGP の設定 を参照してください。
所定のネットワークでパスが追加または削除されるたびに、ベストパス アルゴリズムが実行されます。ベストパス アルゴリズムは、ユーザが BGP 設定を変更した場合にも実行されます。BGP は所定のネットワークで使用できる一連の有効パスの中から、最適なパスを選択します。
Cisco NX-OS は次の手順で、BGP ベストパス アルゴリズムを実行します。
-
2 つのパスを比較し、どちらが適切かを判別します(「ステップ 1 - 「パスの比較ペア」セクションを参照)。
-
すべてのパスを探索し、全体として最適なパスを選択するためにパスを比較する順序を決定します(ステップ 2 -「比較順序の決定」セクションを参照)。
-
新しいベスト パスを使用するに足るだけの差が新旧のベスト パスにあるかどうかを判別します(ステップ 3 -「ベストパス変更抑制の決定」セクションを参照)。
(注) |
重要なのは、パート 2 で決定される比較順序です。3 つのパス A、B、C があるとします。Cisco NX-OS が A と B を比較する場合、A を選択します。Cisco NX-OS が B と C を比較する場合、B を選択します。しかし、Cisco NX-OS がA と C を比較した場合、A を選択しません。これは一部の BGP メトリックが同じネイバー自律システムからのパスだけに適用され、すべてのパスにわたっては適用されないからです。 |
パス選択には、BGP AS パス属性が使用されます。AS パス属性には、アドバタイズされたパスでたどる自律システム番号(AS 番号)のリストが含まれます。BGP 自律システムを自律システムの集合または連合に細分化する場合は、AS パスにローカル定義の自律システムを指定した連合セグメントが含まれます。
(注) |
VXLAN の導入では、BGP パス選択プロセスが使用されます。このプロセスは、ローカルパスからリモートパスへの通常の選択とは異なります。EVPN アドレスファミリの場合、BGP は MAC モビリティ属性のシーケンス番号を比較し(存在する場合)、より高いシーケンス番号のパスを選択します。比較対象の両方のパスに属性があり、シーケンス番号が同じである場合、BGP はローカルで生成されたパスよりもリモートピアから学習したパスを優先します。詳細については、『Cisco Nexus 9000 Series NX-OS VXLAN Configuration Guide』を参照してください。 |
BGP パス選択:パスびペアの比較
BGP ベストパス アルゴリズムの最初のステップでは、より適切なパスを判別するために 2 つのパスを比較します。次に、Cisco NX-OS が 2 つのパスを比較して、より適切なパスを判別する基本的なステップについて説明します。
-
Cisco NX-OS は、比較のために有効なパスを選択します(たとえば、到達不能なネクスト ホップがあるパスは無効です)。
-
Cisco NX-OS は、重みが最大のパスを選択します。
-
Cisco NX-OS は、ローカル プリファレンスが最大のパスを選択します。
-
パスの一方がローカル起点の場合、Cisco NX-OS はそのパスを選択します。
-
Cisco NX-OS は、AS パスが短い方のパスを選択します。
(注)
AS パス長を計算するときに、Cisco NX-OS は連合セグメントを無視し、AS セットを 1 として数えます。詳細については、「AS 連合」の項を参照してください。
-
Cisco NX-OS は、起点が低い方のパスを選択します。IGP は EGP よりも低いと見なされます。
-
Cisco NX-OS は、Multi-Exit 識別子(MED)が小さい方のパスを選択します。
パスのピア自律システムに関係なく、ベストパス アルゴリズムの MED 比較が必ず実行されるように、Cisco NX-OS を設定することもできます。詳細については、「最適パス アルゴリズムの調整」を参照してください。この設定を行わなかった場合、MED 比較が実行されるかどうかは、次のように比較する 2 つのパスの AS パス属性によって決まります。
パスのピア自律システムに関係なく、ベストパス アルゴリズムの MED 比較が必ず実行されるように、Cisco NX-OS を設定することもできます。この設定を行わなかった場合、Cisco NX-OS によって MED 比較が実行されるかどうかは、次のように比較する 2 つのパスの AS パス属性によって決まります。
-
パスに AS パスまたは AS_SET から始まる AS パスがない場合、パスは内部であり、Cisco NX-OS は他の内部パスに対して MED を比較します。
-
AS パスが AS_SEQUENCE から始まる場合、ピア自律システムがシーケンスで最初の AS 番号になり、Cisco NX-OS は同じピア自律システムを持つ他のパスに対して MED を比較します。
-
AS-path パス に連合セグメントだけが含まれている場合、または連合セグメントで始まり、AS_SET が続いている場合、パスは内部であり、Cisco NX-OS は他の内部パスに対して MED を比較します。
-
AS パスが連合セグメントで始まり、AS_SEQUENCE が続いている場合、ピア自律システムが AS_SEQUENCE で最初の AS 番号になり、Cisco NX-OS は同じピア自律システムを持つ他のパスに対して MED を比較します。
(注)
Cisco NX-OS がパスの指定された MED 属性を受信しなかった場合、Cisco NX-OS は欠落 MED が使用可能な最大値になるように、ユーザがベストパス アルゴリズムを設定していない限り、 MED を 0 と見なします。詳細については、「最適パス アルゴリズムの調整」を参照してください。
-
非決定性の MED 比較機能がイネーブルの場合、ベスト-パス アルゴリズムでは Cisco IOS スタイルの MED 比較が使用されます。
-
-
一方のパスが内部ピアから、他方のパスが外部ピアからの場合、Cisco NX-OS は外部ピアからのパスを選択します。
-
ネクスト ホップ アドレスへの IGP メトリックが異なるバスの場合、Cisco NX-OS は IGP メトリックが小さい方のパスを選択します。
-
Cisco NX-OS は、最後に実行したベストパス アルゴリズムによって選択されたパスを使用します。
ステップ 1 ~ 9 のすべてのパス パラメータが同じ場合、ルータ ID を比較するようにベストパス アルゴリズムを設定できます。詳細については、「最適パス アルゴリズムの調整」を参照してください。パスに発信元属性が含まれている場合、Cisco NX-OS はその属性をルータ ID として使用して比較します。発信もと属性が含まれていない場合、Cisco NX-OS はパスを送信したピアのルータ ID を使用します。パス間でルータ ID が異なる場合、Cisco NX-OS はルータ ID が小さい方のパスを選択します。
(注)
属性の送信元をルータ ID として使用する場合は、2 つのパスに同じルータ ID を設定することができます。また、同じピア ルータとの 2 つの BGP セッションが可能です。したがって、同じルータ ID で 2 つのパスを受信できます。
-
Cisco NX-OS は、クラスタ長が短いほうのパスを選択します。クラスタ リスト属性の指定されたパスを受け取らなかった場合、クラスタ長は 0 です。
-
Cisco NX-OS は、IP アドレスが小さい方のピアから受信したパスを選択します。ローカル発生のパス(再配布のパスなど)は、ピア IP アドレスが 0 になります。
(注)
ステップ 9 以降が同じパスは、マルチパスを設定している場合、マルチパスに使用できます。詳細については、「ロード シェアリングとマルチパス」の項を参照してください。
BGPパス選択:比較の順序の決定
BGP ベストパス アルゴリズム実装の 2 番目のステップでは、Cisco NX-OS がパスを比較する順序を決定します。
-
Cisco NX-OS は、パスをグループに分けます。各グループ内で、Cisco NX-OS はすべてのパス間で MED を比較します。Cisco NX-OSは、「ステップ 1:パス ペアの比較」と同じルールを使用して、2 つのパス間で MED を比較できるかどうかを判断します。この比較では通常、ネイバー自律システムごとに 1 つずつグループが選択されます。bgp bestpath med always コマンドを設定すると、Cisco NX-OS はすべてのパスが含まれた 1 グループだけを選択します。
-
Cisco NX-OS は、常に最適な方を維持しながら、グループのすべてのパスを反復することによって、各グループのベスト パスを決定します。Cisco NX-OS は、各パスをそれまでの一時的なベスト パスと比較します。それまでのベスト パスよりも適切な場合は、そのパスが新しく一時的なベスト パスになり、Cisco NX-OS はグループの次のパスと比較します。
-
Cisco NX-OS は、ステップ 2 の各グループで選択されたベスト パスからなる、パス セットを形成します。Cisco NX-OS は、このパス セットでもステップ 2 と同様にそれぞれの比較を繰り返すことによって、全体としてのベスト パスを選択します。
BGP パス選択:最適パス変更抑制の決定
実装の次のパートでは、Cisco NX-OS が新しい最適パスを使用するのか抑制するのかを決定します。新しいベスト パスが古いパスとまったく同じ場合、ルータは引き続き既存のベスト パスを使用できます(ルータ ID が同じ場合)。Cisco NX-OS では引き続き既存のベスト パスを使用することによって、ネットワークにおけるルート変更を回避できます。
抑制機能をオフにするには、ルータ ID を比較するようにベスト パス アルゴリズムを設定します。詳細については、「最適パス アルゴリズムの調整」を参照してください。この機能を設定すると、新しいベスト パスが常にに既存のベスト パスよりも優先されます。
次の条件が発生した場合に、ベスト パス変更を抑制できません。
-
既存のベスト パスが無効になった。
-
既存または新しいベスト パスを内部(または連合)ピアから受信したか、またはローカルに発生した(再配布などによって)。
-
同じピアからパスを受信した(パスのルータ ID が同じ)。
-
パス間で重み値、ローカル プリファレンス、オリジン、またはネクストホップ アドレスに対する IGP メトリックが異なっている。
-
パス間で MED が異なっている。
BGP およびユニキャスト RIB
BGP はユニキャスト RIB(ルーティング情報ベース)と通信して、ユニキャスト ルーティング テーブルに IPv4 ルートを格納します。ベスト パスの選択後、ベスト パスの変更をルーティング テーブルに反映させる必要があると BGP が判別した場合、BGP はユニキャスト RIB にルート アップデートを送信します。
BGP はユニキャスト RIB における BGP ルートの変更に関して、ルート通知を受け取ります。さらに、再配布をサポートする他のプロトコル ルートに関するルート通知を受け取ります。
BGP はネクストホップの変更に関する通知も、ユニキャスト RIB から受け取ります。BGP はこれらの通知を使用して、ネクストホップ アドレスへの到達可能性および IGP メトリックを追跡します。
ユニキャスト RIB でネクストホップ到達可能性または IGP メトリックが変更されるたびに、BGP は影響を受けるルートについて、ベスト パス再計算を開始させます。
BGP は IPv6 ユニキャスト RIB と通信し、IPv6 ルートについて、これらの動作を実行します。
BGP プレフィックス独立コンバージェンス
BGP プレフィックス独立コンバージェンス(PIC)エッジ機能は、リンク障害が発生した場合に、BGP バックアップ パスへの BGP IP ルートのコンバージェンスを高速化します。
BGP PIC エッジ機能により、ネットワーク障害後の BGP コンバージェンスが向上します。このコンバージェンスは、IP ネットワークのエッジ障害に適用されます。この機能は、ルーティング情報ベース(RIB)と転送情報ベース(FIB)にバックアップ パスを作成して保存します。これによって、プライマリ パスの障害が発生した場合に、ただちにバックアップ パスが引き継ぐことができ、フォワーディング プレーンの迅速なフェールオーバーが可能になります。BGP PIC エッジは、IPv4 アドレス ファミリのみをサポートします。
BGP PIC エッジが設定されている場合、BGP は、プライマリ ベスト パスに加えて、2 番目のベスト パス(バックアップ パス)も計算します。BGP は、PIC サポートを持つプレフィクスのベスト パスとバックアップ パスの両方を BGP RIB にインストールします。また BGP は、API を介してリモートの次のホップとともにバックアップ パスを URIB にダウンロードし、その後バックアップとしてマークされたネクスト ホップで FIB を更新します。バックアップ パスにより、単一のネットワーク障害に対処する高速再ルーティング機能が提供されます。
この機能は、ローカル インターフェイスとリモート インターフェイス/リンクの両方の障害を検出して、バックアップ パスが使用されるようにします。
BGP PIC エッジは、ユニパスとマルチパスの両方をサポートします。
BGP PIC エッジ ユニパス
次の図に、BGP PIC エッジ ユニパスのトポロジを示します。
この図では次のようになっています。
-
S2-S4とS3-S5の間はeBGPセッションです。
-
S2-S3 の間は iBGP セッションです。
-
S1 からのトラフィックは S2 を使用し、また e1 インターフェイスを使用して Z1..Zn プレフィックスに到達します。
-
S2には、Z1…Znに到達するための 2 つのパスがあります。
-
S4 を経由するプライマリ パス
-
S5 を経由するバックアップ パス
-
この例では、S3 が S2 に対し、到達すべきプレフィクス Z1…Zn をアドバタイズします(それ自身をネクスト ホップとして)。BGP PIC エッジが有効になっている場合、S2 の BGP は、AS6500へのベストパス(S4 経由)とバックアップパス(S3 または S5 を経由)の両方を RIB にインストールします。その後、RIBは両方のルートを FIBにダウンロードします。
S2-S4 のリンクがダウンすると、S2 上の FIB がリンク障害を検出します。その場合、自動的にプライマリパスからバックアップに切り替えられ、新しいネクスト ホップ S3 がポイントされます。トラフィックは、FIB 内のローカルの高速再コンバージェンスにより迅速に再ルーティングされます。リンク障害イベントを学習した後、S2 上の BGP はベストパス(以前のバックアップ パス)を再計算し、RIB からネクスト ホップ S4 を削除し、S3 をプライマリ ネクスト ホップとして RIB に再インストールします。また、新しいバックアップあればそれも計算し、RIB に通知します。BGP PIC エッジ機能のサポートにより、FIB はプライマリ ルートでのリンク障害の検出時に、BGP が新しいベストパスを選択してコンバージェンスするまで待機することなく、使用可能なバックアップ ルートに瞬時に切り替えます。こうして、高速な再ルーティングを実現しています。
マルチパスを持つ BGP PIC エッジ
次の図に、BGP PIC エッジ マルチパス トポロジを示します。
上記のトポロジでは、次のように所定のプレフィックスに 6 つのパスがあります。
-
eBGP パス:e1、e2、e3
-
iBGPパス:i1、i2、i3
優先順位は、e1 > e2 > e3 > i1 > i2 > i3 です。
考えられるマルチパスの状況は次のとおりです。
-
設定されたマルチパスなし:
-
ベストパス = e1
-
マルチパス-セット = []
-
バックアップ パス = e2
-
PIC 挙動:e1 が失敗すると、e2 がアクティブになります。
-
-
双方向の eBGP マルチパスが設定されている
-
ベストパス = e1
-
マルチパス-セット = [e1, e2]
-
バックアップ パス = e3
-
PIC 挙動:アクティブなマルチパスが相互にバックアップされます。すべてのマルチパスが失敗すると、e3 がアクティブになります。
-
-
3 方向の eBGP マルチパスが設定されている
-
ベストパス = e1
-
マルチパス-セット = [e1, e2, e3]
-
バックアップ パス = i1
-
PIC 挙動:アクティブなマルチパスが相互にバックアップされます。すべてのマルチパスが失敗すると、i1 がアクティブになります。
-
-
4 方向の eiBGP マルチパスが設定されている
-
– ベストパス = e1
-
– マルチパスセット = [e1, e2, e3, i1]
-
– バックアップパス = i2
-
– PIC 挙動:アクティブなマルチパスが相互にバックアップされます。すべてのマルチパスが失敗すると、i2 がアクティブになります。
-
等コスト マルチパス(ECMP)がイネーブルになっている場合、どのマルチパスもバックアップ パスとして選択されません。
バックアップ パスを使用するマルチパスのシナリオでは、すべてのアクティブなマルチパスで同時障害が発生しても、高速コンバージェンスは生じません。
BGP PIC コア
コアの BGP Prefix Independent Convergence(PIC)は、ネットワーク障害後の BGP コンバージェンスを向上させます。たとえば、プロバイダーエッジ(PE)でリンクに障害が発生した場合、ルーティング情報ベース(RIB)は新しいネクスト ホップで転送情報ベース(FIB)を更新します。FIB は、失敗したネクスト ホップを指しているすべての BGP プレフィックス、新しいネクスト ホップを指すように更新する必要があります。これは、時間とリソースを消費する可能性があります。BGP PIC コアを有効にすると、FIB 内でプレフィックスが階層的にプログラムされます。すべてのプレフィックスは、再帰ネクスト ホップではなく、ECMP グループを指します。同じ障害が発生した場合、FIB は、プレフィックスを更新せず、新しいネクスト ホップを指すよう ECMP グループを更新するだけで済みます。これにより、BGP は IGP コンバージェンスを即座に活用できます。
BGP PIC の機能サポート マトリクス
BGP PIC |
IPv4 ユニキャスト |
IPv6 ユニキャスト |
---|---|---|
エッジ ユニパス |
はい |
いいえ |
マルチパスを持つエッジ(複数のアクティブ ECMP、バックアップ 1 つのみ) |
はい |
いいえ |
コア |
はい |
はい |
BGP の仮想化
BGP は、仮想ルーティングおよび転送(VRF)インスタンスをサポートします。