cRPDにおけるマルチポロジールーティング
cRPDにおけるマルチポロジーの理解
cRPD では、BGP の複数の RIB 機能が、Linux FIB(転送プレーンのルート)を使用したルーティング ポリシーに基づいて、MTR(マルチポロジー ルーティング)をサポートできます。アプリケーションは、さまざまなタイプのトラフィックに対して、cRPDのLinux FIBからルーティングポリシーに基づいて、必要なルーティングテーブルを選択できます。トラフィックの各タイプは、そのトポロジの新しいルーティング テーブルを作成するために使用されるトポロジによって定義されます。各トポロジは、統合された制御プレーンを使用して、そのトポロジに関連付けられたトラフィックのルーティング決定を行います。さらに、各トポロジには個別の転送テーブルがあり、実質的に各トポロジに専用の転送プレーンがあります。
サービス プロバイダと企業は、MTR(マルチポロジー ルーティング)を使用して、ネットワーク全体のトラフィック フローをエンジニアリングできます。MTR は、直接ルートと静的ルート、IS-IS、OSPF、BGP で使用できます。複数のトラフィック タイプを伝送するネットワークでは、多くの場合、さまざまなタイプのアプリケーション トラフィックを、そのリンク特性に応じて複数のリンク上に誘導する必要があります。コミュニティーは、ルートをマルチポロジーにエクスポートする場合に BGP に使用されます。OSPFv3 は MTR をサポートしていません。MTR は IGP ルートを検出し、スタティックトポロジと OSPF を持つカスタム トポロジに対して BGP ルートを解決できます。.
必要に応じて、同じネットワークリンクを共有するように個別のトポロジーを設定できます。MTR では、制御プレーン(ルーティング)フィルタと転送プレーン フィルタを組み合わせて使用します。
MTR は、作成したトポロジのルーティング テーブルの解決済みエントリーに基づいて転送テーブルを生成する機能を提供します。MTR および転送はマスター ルーティング インスタンスでのみ使用できます。マルチポロジー ルートを格納するために、専用の RIB が作成されます。トポロジでは BGP マルチパスは有効になっていません。
ルーティング トポロジが の下で routing-options
設定されている場合、各トポロジの新しいルーティング テーブルが作成されます。各ルーティング プロトコルは、トポロジ名、インスタンス名、およびテーブルの目的に基づいてルーティング テーブルを作成します。
例:cRPD での BGP によるマルチポロジー ルーティングの設定
この例では、cRPD で BGP を使用してコミュニティベースの複数のトポロジを設定し、ネットワーク パス上でマルチポロジー ルーティング(MTR)を使用してトラフィックをユニキャストする方法を示します。
要件
この例では、以下のソフトウェア リリースが必要です。
-
cRPD 19.4R1 以降。
概要
BGPのマルチポロジールーティングサポートは、BGPルートのコミュニティ値に基づいています。この構成では、トポロジと 1 つ以上のコミュニティ値の間の関連付けを決定し、トポロジ ルーティング テーブルに追加します。コミュニティ値が一致する BGP アップデートが到着すると、関連付けられたトポロジ ルーティング テーブルに複製されます。
BGP inet
ファミリーでトポロジーを設定し、トポロジRIB(ルーティングテーブルとも呼ばれる)にBGPインポートマッチングルートを検証します。各トポロジについて、ルーティング ソフトウェアが内部 ribgroup
および対応するセカンダリ テーブル インポート ポリシーを設定できるように、コミュニティ オブジェクトのリストを提供する必要があります。
構成
BGPのマルチポロジールーティングを設定するには:
CLI クイックコンフィギュレーション
set routing-options topologies family inet topology red table-id 40 set routing-options topologies family inet topology blue table-id 41 set routing-options topologies family inet topology green table-id 42 set routing-options router-id 10.2.2.2 set routing-options autonomous-system 65500 set routing-options rib :red.inet.0 static route 10.1.1.1/32 next-hop 10.15.0.2 set routing-options rib :green.inet.0 static route 10.1.1.1/32 next-hop 10.13.0.2 set routing-options rib :blue.inet.0 static route 10.1.1.1/32 next-hop 10.17.0.2 set protocols bgp group ibgp-app-rr-ser type internal set protocols bgp group ibgp-app-rr-ser traceoptions file bgp size 100m set protocols bgp group ibgp-app-rr-ser traceoptions flag update set protocols bgp group ibgp-app-rr-ser traceoptions flag state set protocols bgp group ibgp-app-rr-ser local-address 10.77.1.1 set protocols bgp group ibgp-app-rr-ser family inet unicast add-path send path-count 6 set protocols bgp family inet unicast topology red community 1:1 set protocols bgp family inet unicast topology green community 1:2 set protocols bgp family inet unicast topology blue community 1:3
マルチポロジールーティングによるBGPの設定
手順
-
複数のトポロジーを設定します。
[edit routing-options topologies] user@crpd# set family inet topology red table-id 40 user@crpd# set family inet topology blue table-id 41 user@crpd# set family inet topology green table-id 42
-
静的ルートを設定します。
[edit routing-options] user@crpd# set router-id 10.2.2.2 user@crpd# set autonomous-system 65500 user@crpd# set rib :red.inet.0 static route 10.1.1.1/32 next-hop 10.15.0.2 user@crpd# set rib :green.inet.0 static route 10.1.1.1/32 next-hop 10.13.0.2 user@crpd# set rib :blue.inet.0 static route 10.1.1.1/32 next-hop 10.17.0.2
-
BGPグループパラメーターを設定して、一致するルートをトポロジールーティングテーブルにインポートします。BGPは、ターゲットコミュニティ識別子を使用して、学習したルートを適切なルーティングテーブルにインストールします。
[edit protocols bgp] user@crpd# set group ibgp-app-rr-ser type internal user@crpd# set group ibgp-app-rr-ser traceoptions file bgp size 100m user@crpd# set group ibgp-app-rr-ser traceoptions flag update user@crpd# set group ibgp-app-rr-ser traceoptions flag state user@crpd# set group ibgp-app-rr-ser local-address 10.77.1.1 user@crpd# set group ibgp-app-rr-ser family inet unicast add-path send path-count 6 user@crpd# set family inet unicast topology red community 1:1 user@crpd# set family inet unicast topology green community 1:2 user@crpd# set family inet unicast topology blue community 1:3
結果
設定モードから、 および show routing-options
コマンドを入力して設定をshow protocols bgp
確認します。出力結果に意図した設定が表示されない場合は、この例の手順を繰り返して設定を修正します。
show routing-options topologies { family inet { topology red { table-id 40; } topology blue { table-id 41; } topology green { table-id 42; } } } rib :red.inet.0 { static { route 10.1.1.1/32 next-hop 10.15.0.2; } } rib :green.inet.0 { static { route 10.1.1.1/32 next-hop 10.13.0.2; } } rib :blue.inet.0 { static { route 10.1.1.1/32 next-hop 10.17.0.2; } }
user@crpd# show protocols bgp family inet { unicast { topology red { community 1:1; } topology green { community 1:2; } topology blue { community 1:3; } } group ibgp-app-rr-ser { type internal; traceoptions { file bgp size 100m; flag update; } local-address 10.77.1.1; family inet { unicast { add-path { send { path-count 6; } } } } } }
デバイスの設定が完了したら、設定モードから コマンドを commit
入力します。
検証
BGP ルートの検証
目的
BGP が一致したルートを検証するには、次の手順に沿います。
アクション
動作モードから、 コマンドを show route protocol bgp all table
入力します。
user@crpd> show route protocol bgp all table
:red.inet.0: 11 destinations, 11 routes (8 active, 0 holddown, 3 hidden) + = Active Route, - = Last Active, * = Both 10.99.9.1/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.15.0.2 via ens4f1 10.99.9.2/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.15.0.2 via ens4f1 10.99.9.5/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.15.0.2 via ens4f1 :green.inet.0: 10 destinations, 10 routes (8 active, 0 holddown, 2 hidden) + = Active Route, - = Last Active, * = Both 10.9.9.1/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.13.0.2 via ens4f1 10.9.9.4/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.13.0.2 via ens4f1 :blue.inet.0: 11 destinations, 11 routes (8 active, 0 holddown, 3 hidden) + = Active Route, - = Last Active, * = Both 10.99.9.3/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.17.0.2 via ens4f1 10.99.9.4/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.17.0.2 via ens4f1 10.99.9.5/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.17.0.2 via ens4f1
動作モードから、 コマンドを show route protocol bgp all table inet.0
入力します。
user@crpd> show route protocol bgp all table inet.0
inet.0: 20 destinations, 20 routes (20 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.99.9.1/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1 10.99.9.2/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1 10.99.9.3/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1 10.99.9.4/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1 10.99.9.5/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1
意味
ルーティングテーブルにインストールされているBGP一致ルートと、コミュニティターゲットのないルートがルーティングテーブルでのみ使用可能な場合を inet.0
表示できます。