セグメントルーティングトラフィックエンジニアリングのためのIS-ISの柔軟なアルゴリズム
概要 柔軟なアルゴリズムにより、IGP 単独でネットワーク上の制約ベースのパスを計算できるため、ネットワーク コントローラを使用せずにシンプルなトラフィック エンジニアリングを実現できます。これは、本格的なセグメント ルーティングを備えたコントローラを実装していないが、それでもネットワークでセグメント ルーティングのメリットを享受したいネットワーク向けの軽量ソリューションです。
今後の予定
柔軟なアルゴリズムの設定の詳細については、 IS-ISユーザーガイドを参照してください。
セグメント ルーティングのための IS-IS フレキシブル アルゴリズムの理解
Junos OS リリース 19.4R1 以降では、要件に基づいてさまざまなパラメーターとリンク制約を使用してパスを計算する柔軟なアルゴリズムを定義することで、ネットワークのシン スライスを行うことができます。例えば、IGPメトリックを最小化するパスを計算する柔軟なアルゴリズムを定義し、トラフィック制御メトリックに基づいてパスを計算する別の柔軟なアルゴリズムを定義し、ネットワークを別々のプレーンに分割することができます。この機能により、コントローラを使用しないネットワークでは、実際にネットワークコントローラを実装することなく、セグメントルーティングを使用してトラフィック制御を設定できます。プレフィックス SID を使用して、制約ベースのパスに沿ってパケットを誘導できます。ポリシー設定を通じて、柔軟なアルゴリズム用のプレフィックス SID を設定できます。
IGPプロトコルは、リンクメトリックを使用して最適なパスを計算します。ただし、最良のIGPパスが、特定のタイプのトラフィックに対して常に最適なパスであるとは限りません。したがって、最短のIGPメトリックに基づいて計算された最良のパスは、多くの場合、IGPメトリックに反映されないトラフィック要件のために、トラフィックエンジニアリングパスに置き換えられます。通常、RSVP-TE または SR TE は、追加のメトリックと制約に基づいてパスの計算に使用され、この制限を克服します。Junosは、IGPによって計算された元のパスに加えて、または置き換えとして、転送テーブルにそのようなパスをインストールします。
- 柔軟なアルゴリズムを設定するメリット
- フレキシブル アルゴリズム定義(FAD)とは
- 柔軟なアルゴリズムへの参加
- 柔軟なアルゴリズム定義で構成されたネットワーク トポロジー
- 柔軟なアルゴリズム RIB
- BGP コミュニティと柔軟なアルゴリズム
- IS-ISマルチインスタンス全体で漏洩する柔軟なアルゴリズムと柔軟なアルゴリズムプレフィックスメトリック
- BGP-LU プレフィックスを柔軟なアルゴリズムにリークする
- BGP-CTプレフィックスを柔軟なアルゴリズムにリークする
- サポートされている機能とサポートされていない機能
柔軟なアルゴリズムを設定するメリット
-
ネットワークのコアで使用できる、セグメント ルーティング トラフィック エンジニアリングの軽量バージョンです。
-
ネットワークコントローラを設置しなくても、セグメントルーティングを使用してトラフィック制御を設定できます。
-
BGP-LSや静的パスを設定せずに、スライスごとにECMP(等価コストマルチパス)とTI-LFAを利用します。
-
同じ柔軟なアルゴリズム定義と制約計算を使用して TI-LFA バックアップ パスを計算します。
-
RSVPまたはLDPを設定せずに、IS-ISのみを使用してセグメントルーティングトラフィックエンジニアリングを活用します。
-
単一のラベルに基づいて、制約のあるプライマリ パスをプロビジョニングする機能。
フレキシブル アルゴリズム定義(FAD)とは
柔軟なアルゴリズムにより、IGPは指定された制約に基づいて追加の最適なパスを計算できるため、ネットワークコントローラを使用せずにシンプルなトラフィック制御が可能になります。これは、本格的なセグメント ルーティングを備えたコントローラを実装していないが、それでもネットワークでセグメント ルーティングのメリットを享受したいネットワーク向けの軽量ソリューションです。すべてのオペレータは、要件に応じて個別の制約や色を定義できます。
柔軟なアルゴリズムを定義するには、 階層レベルで ステートメントを[edit routing-options]
含めますflex-algorithm id
。フレキシブル アルゴリズム定義(FAD)には、128~255 の範囲の識別子が割り当てられます。この柔軟なアルゴリズムは、ネットワーク内の1つ以上のルーターで定義できます。柔軟なアルゴリズムは、以下のパラメーターに基づいて最適なパスを計算します。
-
Calculation type-SPF またはストリクト SPF は、2 つの計算タイプのオプションで利用できます。FAD では、これらの計算タイプのいずれかを指定できます。トラフィック制御のショートカットなどの特定のローカル ポリシーに基づいて、デバイス上の SPF 計算に影響を与える場合は、SPF 計算タイプを選択します。厳密な SPF を選択した場合、ローカル ポリシーは SPF パス選択に影響を与えることはできません。
-
Metric type- IGPメトリックまたはTEメトリックは、利用可能なメトリックタイプオプションです。ネットワーク要件に応じて、FADでこれらのメトリックタイプのいずれかを指定できます。特定のリンクにIGPメトリックを使用しない場合、IS-ISがルートの計算に使用できるTEメトリックを設定できます。
-
Priority- 要件に応じてFADに優先度を割り当て、IS-ISは割り当てられた優先度に基づいて別のFAD上の特定のFADアドバタイズを優先します。
メモ:リンク制約を持つFADが機能するには、関連するすべてのリンクがIS-ISで管理色をアドバタイズする必要があります。これは、RSVPがインターフェイスで有効になっているか
set protocols isis traffic-engineering advertise always
、設定されていることを意味します。 -
Set of Link constraints- 階層レベルで多くのプロトコルの admin-groups を
[edit protocols mpls admin-groups]
設定して、個々のリンクに色を付けることができます。これらはadmin-groups
、 、include any
include-all
またはexclude
階層レベルで[edit routing-options flex-algorithm definition admin-groups]
定義できます。
冗長性を提供し、競合を回避するために、少数のルーターでのみ柔軟なアルゴリズム定義を設定することをお勧めします。柔軟なアルゴリズム定義は、IGPで として FAD sub-TLVs
アドバタイズされます。非常に大規模なネットワークでは、各柔軟なアルゴリズムが独自のパスを計算し、それを超えるパフォーマンス問題を引き起こす可能性があるため、8つ以上の柔軟なアルゴリズムを設定することは推奨しません。
また、そのFADに参加するようデバイスを設定する前に、特定のISISレベルで複数のFADサーバーを設定することをお勧めします。ISIS L1/L2 ノード(ABR)の場合、ISIS レベル 1 とレベル 2 の両方で FAD を設定することも推奨されます。FAD が単一の ABR でのみ設定されている場合、ルーティング プロセスがその ABR で再起動した場合、トラフィックはフレックス アルゴリズム パスを超えてドロップします。そのため、複数の ABR を持ち、それぞれの ABR に両方の ISIS レベルで FAD が設定されているのは良い設計方法です。
デフォルトのFADには、以下のパラメータがあります。
-
計算タイプ: spf
-
メトリック タイプ: igp-metric
-
優先度:0
-
リンク制約:なし
ライブ ネットワークまたはオンザフライで柔軟なアルゴリズム定義を変更すると、すべてのノードが新しいパスに収束するまでトラフィックが中断する可能性があります。
柔軟なアルゴリズムへの参加
要件に応じて、特定の柔軟なアルゴリズムに参加するように特定のルーターを設定できます。柔軟なアルゴリズム定義に基づいて計算されたパスは、さまざまなアプリケーションで、それぞれ独自の特定のデータ プレーンを使用して、そのようなパス上でデータを転送する可能性があります。参加するデバイスは、特定の柔軟なアルゴリズムへの参加を、IS-IS のセグメント ルーティングフレキシブル アルゴリズム サブ TLV 内のすべてのアプリケーションに明示的にアドバタイズする必要があります。その FAD で指定された制約をサポートできる場合、ノードが特定の柔軟なアルゴリズムに参加するように設定できます。
柔軟なアルゴリズムへの参加を設定するには、 階層レベルで ステートメントを[edit protocols isis source-packet- routing]
含flex-algorithm
めます。同じデバイスがFADをアドバタイズし、柔軟なアルゴリズムに参加することもできます。
柔軟なアルゴリズム定義で構成されたネットワーク トポロジー
図 1 は、サンプル トポロジーを示しています。ルーター R0、R1、R2、R3、R4、R5、R6、および R7 が 8 つあります。以下の表に示すように、4 つの柔軟なアルゴリズム(128、129、130、135)が定義され、admin グループで設定されています。
フレックス アルゴリズム定義(FAD) |
色 |
---|---|
128 |
赤を含める |
129 |
緑を含める |
130 |
緑と青を含める |
135 |
赤を除外 |
![Flexible Algorithm Topology](/documentation/us/en/software/junos/is-is/images/g300805.png)
図 2 は、管理グループ red で設定されたインターフェイス上で FAD 128 がトラフィックをルーティングする方法を示しています。
![Traffic Flow for Flexible Algorithm Definition 128](/documentation/us/en/software/junos/is-is/images/g300806.png)
図 3 は、 FAD 129 が admin group green で設定されたインターフェイス上でトラフィックをルーティングする方法を示しています。
![Traffic Flow for Flexible Algorithm Definition 129](/documentation/us/en/software/junos/is-is/images/g300807.png)
図 4 は、 FAD 130 が admin グループ green と blue で設定されたインターフェイス上でトラフィックをルーティングする方法を示しています。
![Traffic flow for Flexible Algorithm Definition 130](/documentation/us/en/software/junos/is-is/images/g300808.png)
図 5 は、FAD 135 が admin group red で設定されていないインターフェイス上でトラフィックをルーティングする方法を示しています。
![Traffic Flow for Flexible Algorithm Definition 135](/documentation/us/en/software/junos/is-is/images/g300813.png)
柔軟なアルゴリズム RIB
ルーターが対応する柔軟なアルゴリズムルートに参加するすべての柔軟なアルゴリズムに対して、ルーティングテーブルとも呼ばれる、対応する柔軟なアルゴリズムRIBグループにインストールされます。デフォルトでは、ラベル付けされたIS-ISフレキシブルアルゴリズムルートは、inet.colorと inet(6)color.0
mpls.0
RIBにインストールされます。
BGP コミュニティと柔軟なアルゴリズム
柔軟なアルゴリズムは、カラーと関連付けることができます。VPNサービスなどのサービスプレフィックスがBGPカラー拡張コミュニティを伝送する場合、デフォルトでBGPサービスプレフィックスは、同じ関連カラー値を持つフレックスアルゴルートを解決します。テーブルにインストールされている inet(6)color.0
柔軟なアルゴリズムのイングレス ルートは、ルートに関連付けられたこのカラー値を持ちます。ただし、 階層レベルで異なるアソシエイトカラー値を [edit routing-options flex-algorithm id color color]
設定することはできます。
柔軟なアルゴリズムで関連するカラー値を変更すると、トラフィックが中断する可能性があります。柔軟なアルゴリズム定義で色を変更した場合、その柔軟なアルゴリズムに関連するすべてのルートが RIB から削除され、新しいカラーで再度追加されます。
IS-ISマルチインスタンス全体で漏洩する柔軟なアルゴリズムと柔軟なアルゴリズムプレフィックスメトリック
IGP(Interior Gateway Protocol)インスタンス全体で、柔軟なアルゴリズム(フレックスアルゴ)プレフィックスセグメント識別子(SID)とフレキシブルアルゴリズムプレフィックスメトリック(FAPM)を読み込むサポートを追加しました。また、他のプロトコルからプレフィックスをアドバタイズし、ポリシーを介してフレックスアルゴプレフィックスSEDをこれらのプレフィックスに割り当てるサポートも追加されました。
![Flexible Algorithm Leaking across IGP Instances](/documentation/us/en/software/junos/is-is/images/jn-000499.png)
図 6 に示すサンプル トポロジーでは、異なる IS-IS ドメイン、メトロ A、メトロ B、コアが単一セグメントのルーティング ドメインを構成しています。エンドツーエンドのセグメント ルーティング フレックス アルゴ パスの場合、ノード 02 とノード 05 は、IGP インスタンス全体でフレックス アルゴ プレフィックス SID と FAPM をアドバタイズする必要があります。
フレックス アルゴ ルートはテーブルにinet(6)color.0
インストールされます。また、 でrouting-options flex-algorithm <id>
ステートメントが設定されている場合use-transport-class
などjunos-rti-tc-<color>.inet(6).3
、色付き RIB にインストールすることもできます。IGPインスタンス全体でフレックスアルゴプレフィックスSIBのリークをサポートするには、そのフレックスアルゴにuse-transport-class
ステートメントを設定する必要があります。IGP インスタンス全体でのフレックス アルゴ プレフィックス SID のリークは、ポリシー主導です。ポリシー設定の例は次のとおりです。
[edit policy-options policy-statement name] user@host# show from { igp-instance <x>; (optional) protocol isis; (optional) rib <transport-class-rib>; route-filter 10.10.10.0/24 orlonger; (optional) route-filter 10.20.20.0/24 orlonger; (optional) prefix-segment; (optional) } then { prefix-segment { redistribute; } }
フレックスアルゴプレフィックスSEDがIGPインスタンス全体でリークされると、FAPMサブTLVは、エクスポートポリシーまたはルート独自のメトリックから派生したメトリックでアドバタイズされます。エクスポートポリシーで定義されたメトリックは、ルート自身のメトリックよりも高い優先度を持ちます。さらに、IS-ISは、MPLS.0テーブルにステッチングされたルートをインストールして、1つのIGPインスタンスから他方のIGPインスタンスへの着信MPLSトラフィックをステッチします。
マルチインスタンスIS-ISにエクスポートポリシーを適用する方法については、 エクスポートを参照してください。
BGP-LU プレフィックスを柔軟なアルゴリズムにリークする
BGP-LU プレフィックスは、フレックス アルゴ プレフィックス SID を使用して IGP にリークできます。で( prefix-segment
と metric
) policy-statement
を設定して、BGP-LUで学習したプレフィックスをフレックスアルゴにリークすることができます。
![BGP-LU – Flexible Algorithm Leaking](/documentation/us/en/software/junos/is-is/images/jn-000500.png)
例えば、「 セグメント ルーティングのための IS-IS フレキシブル アルゴリズムの理解」に示すトポロジーでは、IGP ドメインにはフレックス アルゴ 128 と 129 が含まれています。デバイスR9はIGPドメインの外部にあります。デバイスR9は、IGPドメインのフレックスアルゴを介して到達できません。デバイスR9を宛先とするトラフィックは、デバイスR5までのフレックスアルゴパスに従い、デバイスR5からR9へのリンクに従います。
フレックスアルゴプレフィックスSEDがBGP-LUからIGPインスタンスにリークされた場合、FAPMサブTLVは、エクスポートポリシーまたはルート独自のメトリックから派生したメトリックでアドバタイズされます。エクスポートポリシーで定義されたメトリックは、ルート自身のメトリックよりも高い優先度を持ちます。さらに、IS-ISは、BGP-LUからIS-ISへの受信MPLSトラフィックをステッチするために、mpls.0テーブルにステッチされたルートをインストールします。
BGP-CTプレフィックスを柔軟なアルゴリズムにリークする
BGP-CTプレフィックスをフレックスアルゴにリークできるようになり、その逆も同様です。
![BGP-CT – Flexible Algorithm Leaking](/documentation/us/en/software/junos/is-is/images/jn-000501.png)
例えば、「 セグメントルーティングのためのIS-ISフレキシブルアルゴリズムの理解 」に示すトポロジーは、複数のIS-IS IGPインスタンスで構成されています。ISIS-Aにはフレックスアルゴがありますが、BGP-CTはありません。このような導入では、BGP-CTプレフィックスは、ポリシー設定を介してフレックスアルゴにリークすることができ、その逆も同様です。
現在、BGP-CT プレフィックスは、プレフィックス SID 情報の伝送をサポートしていません。プレフィックスのポリシーを設定し、プレフィックスを IS-IS フレックス アルゴに再配布するルーター上でプレフィックス SID を関連付けます。
BGP-CTからフレックスアルゴプレフィックスSEDがリークされた場合、FAPMサブTLVは、エクスポートポリシーまたはルートのメトリックから派生したメトリックでアドバタイズされます。エクスポートポリシーで定義されたメトリックは、ルートのメトリックよりも高い優先度です。さらに、IS-ISは、BGP-CTからIS-ISへの受信MPLSトラフィックをステッチするために、mpls.0テーブルにステッチされたルートをインストールします。
サポートされている機能とサポートされていない機能
Junos OSは、以下のシナリオで柔軟なアルゴリズムをサポートしています。
-
さまざまな柔軟なアルゴリズムのプレフィックス SID の設定とアドバタイズをサポートします。
-
部分的にはインターネット ドラフト draft-ietf-lsr-flex-algo-05.txt IGP フレキシブル アルゴリズムをサポート
-
柔軟なアルゴリズムプレフィックスSEDのインターレベル(IS_IS)リークに対応しています。
Junos OSは、柔軟なアルゴリズムと組み合わせて以下の機能をサポートしていません。
-
柔軟なアルゴリズムは、デフォルトのユニキャスト トポロジーにのみ適用され、IS-IS マルチトポロジはサポートされていません。
-
IS-IS ショートカットやその他の IS-IS トラフィックエンジニアリング設定オプションは、柔軟なアルゴリズム計算には適用されません。
-
プレフィックスと SID の競合解決はサポートされていません。
-
TI-LFAは優先FRR計算であるため、リモートループフリーの代替機能はサポートされていません
-
拡張管理グループ(EAG)は、IS-ISでサポートされていないため、サポートされていません。