IS-ISネットワークでSRv6ネットワークプログラミングを有効にする方法
概要 IS-IS プロトコルで SRv6 ネットワーク プログラミングを有効にする方法について説明します。
この後について
SRv6 ネットワーク プログラミングの詳細については、 例:IS-IS ネットワークでの SRv6 ネットワーク プログラミングの設定を参照してください。
IS-ISネットワークにおけるSRv6ネットワークプログラミングの理解
- SRv6 ネットワーク プログラミングの利点
- SRv6 ネットワーク プログラミングの概要
- セグメントルーティング拡張ヘッダー(SRH)とは?
- SRv6データプレーン向けの柔軟なアルゴリズム
- TI-LFA for SRv6
- SRv6 でのマイクロ SID のサポート
- TI-LFA、マイクロループ回避、フレックスアルゴ、IS-IS MTでのマイクロSIDサポート
- IS-IS の SRv6 ネットワーク プログラミングでサポートされている機能とサポートされていない機能
SRv6 ネットワーク プログラミングの利点
SRv6 ネットワーク プログラミングは、IPv6 ネットワークで次の利点を提供します。
-
ネットワークプログラミングは、パケットを転送するためにIPv6ヘッダーとヘッダー拡張に完全に依存し、MPLSなどのプロトコルを排除します。これにより、コアIPv6ネットワークにハードウェアやソフトウェアの大幅なアップグレードを行うことなく、シームレスな導入が可能です。
-
トランジットルーターがSRv6に対応していない場合でも、パケットはSRv6イングレスノードを介して転送できるため、IPv6ネットワーク内のすべてのノードにセグメントルーティングを展開する必要がなくなります。
-
Junos OSは、単一セグメント識別子(SID)で複数の機能をサポートしており、挿入モードとカプセル化モードで相互運用できます。これにより、単一のデバイスでプロバイダー(P)ルーターとプロバイダーエッジ(PE)ルーターの役割を同時に実行できます。
SRv6 ネットワーク プログラミングの概要
ネットワーク プログラミングは、ネットワーク プログラムを個々の命令にエンコードし、IPv6 パケット ヘッダーに挿入するネットワークの機能です。ネットワーク命令を運ぶ IPv6 パケットは、パケット処理に使用できる正確な SRv6 ノードについてネットワークに明示的に通知します。ネットワーク命令は、128 ビットの IPv6 アドレスで表される SRv6 セグメント識別子 (SID) です。IS-ISプロトコルは、ネットワーク命令をIPv6パケットヘッダーにエンコードし、ネットワークを介して配布します。ネットワーク命令は、アドレス指定とともに、SRv6 ネットワーク内の SRv6 対応ノードごとに特定のタスクまたは機能を定義します。
Junos OSリリース20.3R1以降、MPC7E、MPC8E、およびMPC9Eラインカードを搭載したMXシリーズデバイスで、MPLSデータプレーンのないコアIPv6ネットワークでセグメントルーティングを設定できるようになりました。
この機能は、ネットワークが主にIPv6であり、MPLSを導入していないサービスプロバイダにとって便利です。このようなネットワークは、データを送信する際に IPv6 ヘッダーとヘッダー拡張にのみ依存します。この機能は、セグメントルーティング機能がまだないトランジットルーターを介してセグメントルーティングトラフィックを展開する必要があるネットワークにもメリットをもたらします。このようなネットワークでは、SRv6 ネットワーク プログラミング機能により、MPLS を導入せずにセグメント ルーティングを柔軟に活用できます。
セグメントルーティング拡張ヘッダー(SRH)とは?
セグメント識別子は、セグメントルーティングドメイン内の特定のセグメントを表します。IPv6 ネットワークで使用される SID タイプは、SRv6 セグメントまたは SRv6 SID とも呼ばれる 128 ビット IPv6 アドレスです。SRv6は、セグメントルーティング拡張ヘッダーのMPLSラベルの代わりに、これらのIPv6アドレスをスタックします。セグメントルーティング拡張ヘッダー(SRH)は、IPv6ルーティング拡張ヘッダーの一種です。通常、SRH には SRv6 SID としてエンコードされたセグメント リストが含まれています。SRv6 SID は、次の部分で構成されます。
-
Locator— ロケータは、特定の SRv6 ノードのアドレスを表す最上位ビットで構成される SID の最初の部分です。ロケーターは、親ノードへのルートを提供するネットワーク アドレスと非常によく似ています。IS-IS プロトコルは、
inet6.0
ルーティング テーブルにロケータ ルートをインストールします。IS-ISはセグメントを親ノードにルーティングし、その後、SRv6 SIDの他の部分で定義された機能を実行します。このロケーターに関連付けられたアルゴリズムを指定することもできます。ネットワークの要件に応じて柔軟なアルゴリズムを定義できます。 -
Function- SID の他の部分は、ロケーターによって指定されたノード上でローカルに実行される機能を定義します。インターネットドラフトdraft-ietf-spring-srv6-network-programming-07draft、 SRv6ネットワークプログラミングですでに定義されているいくつかの機能があります。ただし、IS-IS でシグナリングされる Junos OS では、以下の機能を利用できます。IS-ISは、これらの機能SIDを
inet6.0
ルーティングテーブルにインストールします。-
End— プレフィックスSIDのSRv6インスタンス化のためのエンドポイント関数。SRH を削除するための外部ヘッダーのカプセル化解除は許可されていません。したがって、終了SIDをSIDリストの最後のSIDにすることはできず、SRHのないパケットの宛先アドレス(DA)にすることはできません(PSP、USP、またはUSDフレーバーと組み合わせた場合を除く)。
-
End.X— エンドポイント X 関数は、隣接する SID の SRv6 インスタンス化です。これは、レイヤー3隣接関係の配列へのレイヤー3クロスコネクトを備えたエンドポイント機能の変形です。
最後から2番目のセグメントポップ(PSP)、アルティメットセグメントポップ(USP)、アルティメットセグメントのカプセル化解除(USD)などのEnd SID動作を指定できます。
-
PSP— 最後の SID が宛先アドレスに書き込まれると、PSP フレーバーを持つ End および End.X 機能が最上位の SRH をポップします。後続のスタック SRH が存在する場合がありますが、関数の一部としては処理されません。
-
USP次のヘッダーがSRHで、セグメントが残っていない場合、IS-ISプロトコルは一番上のSRHをポップし、更新された宛先アドレスを検索し、一致テーブルエントリに基づいてパケットを転送します。
-
USD— パケットの次のヘッダーが41であるか、またはSRHで、セグメントが残っていない場合、IS-ISは外側のIPv6ヘッダーとその拡張ヘッダーをポップし、公開されている内部IP宛先アドレスを検索して、一致したテーブルエントリにパケットを転送します。
-
ロケーターと関数のサイズは柔軟で、要件に応じてサイズをカスタマイズできます。関数を定義する前に、ロケーターを構成する必要があります。各ロケーターは、複数のエンド SID とエンドをアドバタイズできます。関連付けられている X SID。コミット エラーを回避するために、ロケーターと SID が同じサブネットに属していることを確認します。
たとえば、2001:::d b8:AC05:FF01:FF01:がロケーターで、A000:B000:C000:A000 が関数である SRv6 SID を使用できます。
ロケータ |
機能 |
2001年:d b8:AC05:FF01:FF01 |
A000:B000:C000:A000 |
SRv6データプレーン向けの柔軟なアルゴリズム
セグメント ルーティングで構成されたコア IPv6 ドメインでは、要件に基づいてさまざまなパラメーターとリンク制約を使用してパスを計算する柔軟なアルゴリズムを定義できます。例えば、IGPメトリックを最小化するパスを計算する柔軟なアルゴリズムを定義したり、トラフィック制御メトリックに基づいてパスを計算する別の柔軟なアルゴリズムを定義して、ネットワークを別々のプレーンに分割することができます。柔軟なアルゴリズムロケータを設定して、SRv6ドメインの制約ベースのパスに沿ってパケットを誘導することができます。
SRv6 の柔軟なアルゴリズムを設定するには、『 IS-IS でセグメント ルーティング トラフィック制御の柔軟なアルゴリズムを設定する方法』を参照してください。
ロケーターにマッピングされたフレキシブル アルゴリズムをアドバタイズするには、[edit protocols isis segment-packet-routing srv6 locator]
階層レベルで algorithm
オプションを含めます。マッピングされたフレキシブルアルゴリズムは、SRv6ロケーターの下のエンドSIDとエンドX-SIDに適用されます。
ノードが特定のフレキシブル アルゴリズムに参加している場合は、SR、MPLS、SRv6 ノードの両方に適用されます。SR、MPLS、SRv6専用の柔軟なアルゴリズムを定義することはできません。
イングレストラフィックの場合、Junos OSはデフォルトでカプセル化モードを使用します。したがって、宛先にはUSD対応のSIDが必要です。柔軟なアルゴリズムパス内の他のSRHアンカーノードは、任意のフレーバーにすることができます。
挿入モードのトランジットトラフィックの場合、フレキシブルアルゴリズムパスの最後のアンカーノードにPSP対応SIDが必要です。PSP 対応の SID がない場合、IS-IS はそのアンカー ノードを経由するパスをダウンロードしません。このような場合、IS-IS は適切なフレーバー SID を持つ他の ECMP パスをダウンロードします。
TI-LFA for SRv6
トポロジーに依存しないループフリーの代替(TI-LFA)は、ポストコンバージェンスのパスに合わせた高速リルート(FRR)パスを確立します。SRv6対応ノードは、IPv6ヘッダーに単一のセグメントを挿入するか、SRHに複数のセグメントを挿入します。SRHが複数あると、カプセル化のオーバーヘッドが大幅に増加する可能性があり、実際のパケットペイロードよりも大きくなることもあります。そのため、デフォルトでは、Junos OSはSRHを抑えたSRv6トンネルカプセル化をサポートしています。ポイントオブローカル リペア(PLR)は、SRv6 SID を含む FRR パス情報を SRH に追加します。
TI-LFA バックアップ パスは、SRH 内の SRv6 SID のグループとして表されます。イングレス ルーターでは、IS-IS は SRH を新しい IPv6 ヘッダーにカプセル化します。ただし、トランジット ルーターでは、IS-IS は次の方法で SRH をデータ トラフィックに挿入します。
-
Insert Mode— IS-ISは、元のIPv6パケットヘッダーの次のヘッダーとしてSRHを挿入し、SRHの値に従って次のヘッダーを変更します。IPv6 宛先アドレスはセグメント リストの最初の SID の IPv6 アドレスに置き換えられ、元の IPv6 宛先アドレスはリストの最後のセグメントとして SRH ヘッダーに伝送されます。トランジット ルーターで挿入モードを有効にするには、
[edit protocols isis source-packet-routing srv6]
階層レベルでtransit-srh-insert
ステートメントを含めます。 -
Encap Mode— encap モードでは、元の IPv6 パケットがカプセル化され、IPv6-in-IPv6 カプセル化パケットの内部パケットとして転送されます。外側の IPv6 パケットは、SRH とセグメント リストを伝送します。元の IPv6 パケットは、ネットワーク内を変更せずに移動します。デフォルトでは、Junos OSは縮小SRHでのSRv6トンネルカプセル化をサポートしています。ただし、次のトンネルのカプセル化方法のいずれかを選択できます。
-
Reduced SRH (default)- 縮小 SRH モードでは、SID が 1 つしかない場合、SRH は追加されず、最後の SID が IPV6 宛先アドレスにコピーされます。SRH を小さくした状態で SRH の SID リスト全体を保存することはできません。
-
Non-reduced SRH— SRH で SID リスト全体を保持したい場合に、非縮小 SRH トンネル カプセル化モードを設定できます。
非縮小 SRH を設定するには、
[edit routing-options source-packet-routing srv6]
階層レベルでno-reduced-srh
ステートメントを含めます。
-
フェイトシェアリングの設定は、現在IPv6のみのネットワークではサポートされていません。また、SRv6 TI-LFA では、バックアップ パスを計算する際に SRLG(共有リスク リンク グループ)は考慮されません。TI-LFA の詳細については、 IS-IS のセグメント ルーティングを使用したトポロジに依存しないループフリーの代替についてを参照してください。
SRv6 でのマイクロ SID のサポート
Junos OSリリース23.4R1以降、複数のSRv6アドレスを単一のIPv6アドレス(マイクロSID)に圧縮できるようになりました。パケットが複数のノードを通過する必要がある場合、IS-ISはセグメントルーティングヘッダーを使用してSRv6 SIDをスタックできます。この SID のスタックにより、帯域幅のオーバーヘッドとセグメント ルーティング ヘッダー処理のオーバーヘッドが増加します。マイクロSIDを使用すると、SIDリストを単一の宛先アドレスに圧縮し、帯域幅のオーバーヘッドを削減できます。6つ以上のSRv6 SIDを含める必要がある場合は、マイクロSIDロケータを有効にします。 マイクロSIDを設定する場合、他のパラメータを設定することはできません。このロケーターから派生したすべてのマイクロ SID の長さは、既定のマイクロ SID 長 (16) と同じです。
マイクロSIDを設定するには、[edit routing-options source-packet-routing srv6 locator]
階層レベルと[edit routing-options source-packet-routing srv6]
階層レベルでマイクロSIDステートメントとブロックステートメントを含めます。
TI-LFA、マイクロループ回避、フレックスアルゴ、IS-IS MTでのマイクロSIDサポート
Junos リリース 23.4R1 より、トポロジーに依存しないループフリーの代替(TI-LFA)、マイクロループ回避、柔軟アルゴリズム(フレックス アルゴ)パス計算において、SRv6 アドレスを単一の IPv6 アドレス(マイクロSID)に圧縮するサポートが拡張されます。このリリース以降では、マイクロセグメント識別子(マイクロSID)のアルゴリズムを設定して、新しい拡張機能を容易にすることもできます。また、TI-LFAにおけるIPv6ユニキャストトポロジー(IS-IS MTの一部)、マイクロループ回避、フレックスアルゴ計算にも対応しています。
フレックスアルゴがトランスポートクラスのルーティング情報ベース(RIB)にイングレスルートをインストールできるようにするには、[edit routing-options flex-algorithm id]
階層レベルで use-transport-class
ステートメントを設定します。
IS-IS の SRv6 ネットワーク プログラミングでサポートされている機能とサポートされていない機能
IS-ISネットワークのSRv6ネットワークプログラミングでは、現在以下をサポートしています。
-
コアIPv6とデュアルスタック。IPv4 および IPv6 トランスポートは、デュアルスタックでサポートされています。
-
IPv4 および IPv6 ペイロード。
-
イングレス ルーターで縮小モードで最大 6 つの SID。
-
転送ルーターで最大 7 つの SID。
IS-ISネットワークのSRv6ネットワークプログラミングでは、現在以下をサポートしていません。
-
ロケーター プレフィックスのエニーキャスト。
-
バックアップパスを計算する際の共有リスクリンクグループ(SRLG)。
-
セグメント リストを使用した静的 SRv6 トンネル。
-
ICMP および ICMPv6 のエラー処理。
-
SRv6 トンネルの SR-TE ポリシー設定。
-
柔軟なアルゴリズムロケーターの競合解決。異なるアルゴリズム値を持つ同じロケーター接頭部を共有する複数のノードは、予期しないルーティング動作を引き起こす可能性があります。
-
End-X-SID のインターフェイス グループ。
-
MPLS を使用しない IPv6 ネットワークの通常または拡張管理グループの設定これらの機能は、[edit protocols mpls]階層レベルでのみ設定できます。