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 ファミリーでトポロジーを設定し、BGPが一致するルートをトポロジーRIB(ルーティングテーブルとも呼ばれる)にインポートすることを確認します。トポロジーごとに、ルーティングソフトウェアが内部 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 protocols bgp コマンドと show routing-options コマンドを入力して設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
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 ルーティングテーブルでのみ利用可能な場合に表示されます。
