セグメントルーティングトラフィックエンジニアリングのためのIS-ISの柔軟なアルゴリズム
柔軟なアルゴリズムにより、IGP単独でネットワーク上の制約ベースのパスを計算できるため、ネットワークコントローラを使用せずにシンプルなトラフィック制御を行うことができます。本格的なセグメントルーティングを備えたコントローラを実装していないが、ネットワークでセグメントルーティングのメリットを享受したいネットワーク向けの軽量ソリューションです。
セグメントルーティングのための IS-IS フレキシブル アルゴリズムの理解
Junos OSリリース19.4R1以降では、要件に基づいてさまざまなパラメーターとリンク制約を使用してパスを計算する柔軟なアルゴリズムを定義することで、ネットワークを薄くスライスできます。例えば、IGPメトリックを最小化するパスを計算する柔軟なアルゴリズムを定義し、ネットワークを別々のプレーンに分割するためにトラフィック制御メトリックに基づいてパスを計算する別の柔軟なアルゴリズムを定義できます。この機能により、コントローラを持たないネットワークでも、実際にネットワークコントローラを実装することなく、セグメントルーティングを使用してトラフィック制御を設定することができます。プレフィックスSIDを使用して、制約ベースのパスに沿ってパケットを誘導できます。ポリシー設定により、柔軟なアルゴリズムのプレフィックスSIDを設定することができます。
IGPプロトコルは、リンクメトリックを使用して最適なパスを計算します。ただし、特定のタイプのトラフィックに対しては、最適な IGP パスが必ずしも最適なパスであるとは限りません。そのため、最短の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でadmin-colorをアドバタイズする必要があります。これは、インターフェイスでRSVPが有効になっているか、
set protocols isis traffic-engineering advertise alwaysが設定されていることを意味します。 -
Set of Link constraints-
[edit protocols mpls admin-groups]階層レベルで多くのプロトコルのadmin-groupsを設定して、個々のリンクに色を付けることができます。これらのadmin-groupsは、[edit routing-options flex-algorithm definition admin-groups]階層レベルでinclude any、include-all、またはexcludeとして定義できます。
冗長性を確保し、競合を避けるために、少数のルーターでのみ柔軟なアルゴリズム定義を設定することをお勧めします。柔軟なアルゴリズム定義は、 FAD sub-TLVsとしてIGPでアドバタイズされます。非常に大規模なネットワークでは、柔軟なアルゴリズムがそれぞれ独自のパスを計算し、それを超えるパフォーマンスの問題が発生する可能性があるため、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 はサンプルトポロジーを示しており、8つのルーターR0、R1、R2、R3、R4、R5、R6、およびR7があります。4つの柔軟なアルゴリズム、128、129、130、および135は、以下の表に示すようにadminグループで定義および設定されます。
| フレックスアルゴリズム定義(FAD) |
色 |
|---|---|
| 128 |
任意の赤を含める |
| 129 |
緑色を含む |
| 130 |
緑と青を含める |
| 135 |
赤を除外する |
図2 は、FAD 128がadminグループredで設定された任意のインターフェイスでトラフィックをどのようにルーティングするかを示しています。
図3 は、FAD 129がadminグループgreenで設定されたインターフェイスでトラフィックをどのようにルーティングするかを示しています。
図4 は、FAD 130が管理グループ緑と青で設定された任意のインターフェイスでトラフィックをルーティングする方法を示しています。
図5 は、FAD 135がadminグループredで設定されていないインターフェイスでトラフィックをどのようにルーティングするかを示しています。
柔軟なアルゴリズム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)インスタンス全体で、フレキシブルアルゴリズム(フレックスアルゴ)プレフィックスセグメント識別子(SID)とフレキシブルアルゴリズムプレフィックスメトリック(FAPM)を再アドバタイズするためのサポートを追加しました。また、他のプロトコルからのプレフィックスを再アドバタイズし、ポリシーを介してそれらのプレフィックスにフレックスアルゴプレフィックスSIDを割り当てるサポートも追加しました。
図6に示すサンプルトポロジーでは、異なるIS-ISドメイン、メトロA、メトロB、コアが単一セグメントルーティングドメインを構成しています。エンドツーエンドのセグメントルーティングフレックスアルゴパスの場合、ノード02および05は、IGPインスタンス間でフレックスアルゴプレフィックスSIDとFAPMを再アドバタイズする必要があります。
フレックスアルゴルートは、inet(6)color.0テーブルにインストールされます。また、ステートメントがrouting-options flex-algorithm <id>で設定されている場合junos-rti-tc-<color>.inet(6).3などuse-transport-class色付きのRIBにインストールすることもできます。IGPインスタンス間でのフレックスアルゴプレフィックスSIDのリークをサポートするには、そのフレックスアルゴに対して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;
}
}
フレックスアルゴプレフィックスSIDがIGPインスタンス間でリークされた場合、FAPMサブTLVは、エクスポートポリシーまたはルート自体のメトリックから派生したメトリックでアドバタイズされます。エクスポートポリシーで定義されたメトリックは、ルート自体のメトリックよりも優先順位が高くなります。さらに、IS-IS は mpls.0 テーブルにステッチルートをインストールして、あるIGPインスタンスから他方のインスタンスに受信MPLSトラフィックをステッチします。
マルチインスタンスIS-ISにエクスポートポリシーを適用する方法については、 エクスポートを参照してください。
柔軟なアルゴリズムへのBGP-LUプレフィックスのリーク
フレックスアルゴプレフィックスSIDを使用して、BGP-LUプレフィックスをIGPにリークできます。policy-statementのprefix-segment(およびmetric)を設定して、BGP-LUで学習したプレフィックスをフレックスアルゴにリークすることができます。
例えば、セグメント ルーティングのためのIS-ISフレキシブルアルゴリズムを理解するに示されているトポロジーでは、IGPドメインにはフレックスアルゴ128および129が含まれています。デバイスR9は、IGPドメインの外部に存在します。デバイスR9は、IGPドメインのフレックスアルゴを介して到達できません。デバイスR9宛のトラフィックは、デバイスR5までフレックスアルゴパスをたどり、デバイスR5からR9リンクまでたどります。
フレックスアルゴプレフィックスSIDがBGP-LUからIGPインスタンスにリークされると、FAPMサブTLVはエクスポートポリシーまたはルート自体のメトリックから派生したメトリックでアドバタイズされます。エクスポートポリシーで定義されたメトリックは、ルート自体のメトリックよりも優先順位が高くなります。さらに、IS-ISは、mpls.0テーブルにステッチルートをインストールして、BGP-LUからIS-ISに受信するMPLSトラフィックをステッチします。
柔軟なアルゴリズムへのBGP-CTプレフィックスのリーク
BGP-CTプレフィックスをフレックスアルゴにリークしたり、その逆を行ったりできるようになりました。
例えば、 セグメントルーティングのためのIS-ISフレキシブルアルゴリズムを理解する に示されているトポロジーは、複数のIS-IS IGPインスタンスで構成されています。ISIS-A にはフレックス アルゴがありますが、BGP-CT はありません。このような導入では、BGP-CTプレフィックスがポリシー設定を介してフレックスアルゴにリークしたり、その逆の可能性があります。
現在、BGP-CTプレフィックスは、プレフィックスSID情報の伝送をサポートしていません。プレフィックスのポリシーを設定し、プレフィックスを再配布するルーターのプレフィックスSIDをIS-ISフレックスアルゴに関連付けます。
フレックスアルゴプレフィックスSIDがBGP-CTからリークされた場合、FAPMサブTLVはエクスポートポリシーまたはルートのメトリックから派生したメトリックでアドバタイズされます。エクスポートポリシーで定義されたメトリックは、ルートのメトリックよりも優先順位が高くなります。さらに、IS-ISはmpls.0テーブルにステッチルートをインストールして、BGP-CTからIS-ISへの受信MPLSトラフィックをステッチします。
サポートされている機能とサポートされていない機能
Junos OSは、以下のシナリオで柔軟なアルゴリズムをサポートします。
-
さまざまな柔軟なアルゴリズムのプレフィックスSIDの設定とアドバタイズのサポート。
-
インターネットドラフトdraft-ietf-lsr-flex-algo-05.txt IGP柔軟なアルゴリズムを部分的にサポート
-
フレキシブルアルゴリズムプレフィックスSIDのレベル間(IS_IS)リークはサポートされています。
Junos OS は、柔軟なアルゴリズムと組み合わせた以下の機能をサポートしていません。
-
柔軟なアルゴリズムはデフォルトのユニキャストトポロジーにのみ適用可能で、IS-ISマルチトポロジーはサポートされていません。
-
IS-ISショートカットおよびその他のIS-ISトラフィックエンジニアリング設定オプションは、柔軟なアルゴリズム計算には適用されません
-
プレフィックスとSIDの競合解決はサポートされていません。
-
TI-LFA が優先される FRR 計算であるため、リモート ループフリーの代替機能はサポートされていません
-
拡張管理グループ(EAG)は、IS-IS でサポートされていないため、サポートされていません。