BGP 追加パスについて
ここでは、BGP 追加パスについて説明します。
追加パスで解決できる問題
BGP ルータおよびルート リフレクタ(RR)は、セッションにおけるベスト パスにのみ伝播します。プレフィックス アドバタイズメントで、以前アナウンスされたプレフィックスを置き換えます(この動作は暗黙の取り消しとして知られています)。暗黙の取り消しはスケーリングには適していますが、パス ダイバーシティに影響があります。
パスの隠蔽は BGP マルチパスの効率的な使用や、スムーズな定期メンテナンスを妨げ、MED の変動や最適でないホットポテト ルーティングが発生する可能性があります。ネクスト ホップが失敗した場合も、ネットワークは BGP コントロール プレーンのコンバージェンスによりトラフィックが復旧するのを待たなければならないので、パスの隠蔽は迅速かつローカルの復旧の妨げになります。BGP 追加パス機能では、パス ダイバーシティを一般的な方法で提供します。Best External または Best Internal 機能は、限られた場合にのみパス ダイバーシティを提供します。
BGP 追加パス機能は、同じプレフィックスのマルチパスに対して、新しいパスで以前のパスを暗黙的に置き換えることなく、アドバタイズする手段を提供します。したがって、パスを隠蔽しないでパス ダイバーシティが実現されます。
パスの隠蔽の例
ここでは、パスの隠蔽が発生する過程の詳細を説明します。次の図では、BR1 および BR4 から RR1 にアドバタイズされるプレフィックス p を持つパス p1 および p2 があります。RR1 は 2 つのうちベスト パスを選択し、PE に p1 のみアドバタイズします。

また上の図では、BR2 から(パス x2 がある)BR3 にローカル プリファレンス 100 でアドバタイズされる、プレフィックス x を持つパス x1 が表示されています。BR3 にはパス x2 もありますが、ルーティング ポリシーにより、x2 ではなく RR の x1(表示されていません)をアドバタイズし、x2 のアドバタイズは抑制されます。ユーザーは BR3 で最良外部のアドバタイズメントを有効にして RR に x2 をアドバタイズできますが、この場合も RR はベスト パスのみをアドバタイズします。
最適ではないのホット ポテト ルーティングの例
内部転送コストを最小化するために、中継する ISP は(内部ゲートウェイ プロトコル(IGP)コストに基づいて)最も近い出口ポイントにパケットを転送しようとします。この動作は、ホット ポテト ルーティングと呼ばれます。次の図の分散 RR クラスタ モデルでは、ロサンゼルスから発信されるトラフィックがメキシコに進む必要があることを想定しています。すべてのリンクで、IGP コストは同じです。メキシコへの出口ポイントは 2 つあり、1 つがオースティンに向かい、もう 1 つがアトランタに向かう場合、ロサンゼルスからは、アトランタよりオースティンに向かう方が IGP コストが低いため、オースティンに向けてトラフィックを送信します。RR3 がある(および RR1、RR2、RR4 および RR5 がない)場所に中央 RR が存在する集中型 RR モデルでは、RR3 から見てメキシコへの最も近い出口ポイントはアトランタとなります。ロサンゼルスからアトランタに向けてトラフィックが送信され、それによって最適ではないホットポテト ルーティングが生じます。これは望ましいことではありません。

DMVPN シナリオ
Dynamic Multipoint Virtual Private Network(DMVPN; ダイナミック マルチポイント仮想プライベート ネットワーク)の展開では、BGP はスケーリングのために使用されます。下の図では、Z は、スポーク S6(NY)とスポーク S7(ボストン)に接続されています。ハブへの S7 リンクは、ハブへの S6 リンクよりも IGP コストが低くなっています。S5 を S7 に、S6 を S7 に接続する物理的なリンクがあり(図には非表示)、IGP コストはハブへのリンクよりも低くなっています。スポーク S6 とスポーク S7 は、ハブ H1(シカゴ)とハブ H2(デトロイト)にアップデートを送信します。その後、RR ハブは、IGP コストがより低いことに基づいてベスト パスを選択します。これは、S7 であることもあります。このシナリオでは、S6(NY)をネクスト ホップとして選択する方が望ましい可能性もありますが、スポーク S5(ローリー)は、Z について S7 をネクスト ホップとする 2 つのアップデートを RR から受信します。

BGP 追加パスの利点
BGP ルータおよびルート リフレクタ(RR)は、セッションにおけるベスト パスにのみ伝播します。プレフィックス アドバタイズメントで、以前アナウンスされたプレフィックスを置き換えます(この動作は暗黙の取り消しとして知られています)。
この動作は、スケーリングには適していますが、パス ダイバーシティを妨げる可能性があります(これによって脆弱になるまたは完全に無くなるおそれがあります)。同様にこの動作は、BGP マルチパスの効率的な使用や、スムーズな定期メンテナンスを妨げ、MED の変動や最適でないホットポテト ルーティングが発生する可能性があります。ネクスト ホップが失敗した場合も、ネットワークは BGP コントロール プレーンのコンバージェンスによりトラフィックが復旧するのを待たなければならないので、迅速かつローカルの復旧の妨げになります。
BGP 追加パス機能は、暗黙的に以前のパスに代わる新しいパスなしで、同じプレフィックスのマルチパスをアドバタイズする BGP の拡張機能です。これにより、パス ダイバーシティが向上し、MED の変動が減少します。
BGP 追加パスの機能
BGP 追加パス機能は、NLRI で各パスにパス ID を追加することによって実現します。パス ID は VPN のルート識別子(RD)のようなものです。ただし、パス ID はすべてのアドレス ファミリに適用できます。パス ID はピアリング セッション内で一意で、各ネットワークに生成されます。ルート アナウンスが暗黙的に以前のパスを取り消すことを防ぐために、パス ID が使用されます。追加パス機能は、ベスト パスに加えその他のパスのアドバタイズメントが可能です。追加パスは、暗黙的に以前のパスから新しいパスに代わることなく、同じプレフィックスのマルチパスをアドバタイズする機能を備えています。
BGP 追加パス機能を使用する場合は、次の 3 つの一般的な手順を実行する必要があります。
-
デバイスが追加パスを送信、受信、または送受信するかどうかを指定します。これは、アドレス ファミリ レベルまたはネイバー レベルで行い、それぞれ bgp additional-paths {send [receive] | receive} コマンドまたは neighbor additional-paths {send [receive] | receive} コマンドで制御します。セッションの確立中に、2 つの BGP ネイバーが追加パス機能(送信または受信のどちら(あるいは両方)を実行できるか)についてネゴシエートします。
-
選択基準を指定して、アドバタイズする候補パスのセットを選択します(bgp additional-paths select コマンドを使用)。
-
示された候補パスから追加パスのセットをネイバーに対してアドバタイズします(neighbor advertise additional-paths コマンドを使用)。
追加パスを送受信するには、追加パス機能をネゴシエートする必要があります。ネゴシエートされない場合、選択基準によりベストパス以上のパスが指定され、ネイバーが指定されたパスをアドバタイズするように設定されていても、ネゴシエートできないために選択パスは利用されず、ベストパスのみ送信されます。
追加パスの送受信を BGP に設定すると、デバイスのピアに対して追加パス機能のネゴシエーションが開始されます。この機能についてネゴシエートしたネイバーは、(他のアップデート グループ ポリシーが許可する場合)アップデート グループに追加され、この機能についてネゴシエートされていないピアとは別のアップデート グループに分類されます。したがって、追加パス機能によってネイバーのアップデート グループ メンバーシップが再計算されます。
追加パスの選択
3 つのパス選択(パス マーキング)ポリシーがあり、相互に排他的ではありません。これらは、 bgp additional-paths select コマンドを使用して、アドレス ファミリごとに指定します。その内容は次のとおりです。
-
best 2 または best 3 (best 2 は、ベストパスおよび 2 番目に適したパスを意味します。2 番目に適したパスは、ベストパス計算アルゴリズムからベストパスを除外することで計算されます。同様に、best 3 は、ベストパス、2 番目に適したパス、および 3 番目に適したパスを意味します。3 番目に適したパスは、ベストパス計算アルゴリズムからベストパスと 2 番目に適したパスを除外することで計算されます)。
-
group-best (ベストパス計算時にプレフィックスのグループベスト パス(group-best)を計算します。詳細は下記を参照してください)
-
all (固有のネクスト ホップを持つすべてのパスが選択対象となります)
group-best 選択の定義
group-best キーワードは、次のコマンドの一部です。
-
advertise additional-paths
-
bgp additional-paths select
-
match additional-paths advertise-set
-
neighbor advertise additional-paths
group-best は、同じ AS のパスからのベスト パスであるパスのセットです。たとえば、AS 100、200、300 という 3 つの自律システムがあるとします。p101、p102、p103 は、AS 100 からのパスで、p201、p202、p203 は AS200 からのパスで、p301、p302、p303 は AS300 からのパスです。各 AS からのパスに対して BGP ベストパス アルゴリズムを実行すると、アルゴリズムは、各 AS からの各パス セットから 1 つのベストパスを選択します。p101 が AS100 からのベストパスで、p201 が AS200 からのベストパスで、p301 が AS300 からのベストパスであると仮定すると、group-best は、p101、p201、p301 のセットになります。
選択したパスの一部をアドバタイズ
パスのセットを選択する際に、別のパスのセットをアドバタイズしたい場合は注意してください。アドバタイズするパスのセットが、選択されたパスのサブセットではない場合、意図したパスがアドバタイズされません。
次の例では、選択される追加パスが group-best および all 選択となるように設定します。ただし、ネイバーにアドバタイズされるように設定するパスは、最適な 3 つのパス(best 3)です。選択およびアドバタイズのポリシーは同じではないため、次のメッセージが表示されます。このような場合は、ベストパスのみがアドバタイズされます。
Device(config)# router bgp 100
Device(config-router)# address-family ipv4
Device(config-router-af)# bgp additional-paths send receive
Device(config-router-af)# bgp additional-paths select group-best all
Device(config-router-af)# neighbor 192.168.2.2 advertise additional-paths best 3
% BGP: AF level 'bgp additional-paths select' more restrictive than advertising policy. This is a reminder that AF level additional-path select commands are needed.