Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

IS-ISネットワークでのSRv6ネットワークプログラミングの理解

SRv6ネットワークプログラミングのメリット

SRv6 ネットワーク プログラミングは、IPv6 ネットワークにおいて以下の利点を提供します。

  • ネットワークプログラミングは、MPLSなどのプロトコルを排除し、パケットを伝送するためにIPv6ヘッダーとヘッダー拡張に完全に依存しています。このため、コア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を展開することなく、セグメントルーティングを活用する柔軟性が得られます。

SRv6 Network Programming Overview

セグメントルーティング拡張ヘッダー(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 クロスコネクトを持つ Endpoint 機能のバリアントで、レイヤー 3 隣接関係の配列にレイヤー 3 クロスコネクトします。

    最後から 2 番目のセグメントポップ(PSP)、最終セグメントポップ(USP)、最終セグメントのカプセル化解除(USD)などの終了 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 があるとします。

表 1:128 ビット SRv6 SID

ロケータ

機能

2001::d b8:AC05:FF01:FF01

A000:B000:C000:A000

SRv6データプレーン用の柔軟なアルゴリズム

セグメントルーティングで構成されたコアIPv6ドメインでは、要件に基づいて異なるパラメータとリンク制約を使用してパスを計算する柔軟なアルゴリズムを定義できます。例えば、IGPメトリックを最小化するパスを計算する柔軟なアルゴリズムを定義し、トラフィック制御メトリックに基づいてパスを計算する別の柔軟なアルゴリズムを定義して、ネットワークを別々のプレーンに分割することができます。柔軟なアルゴリズムロケータを設定して、SRv6ドメインの制約ベースのパスに沿ってパケットを誘導できます。

SRv6に柔軟なアルゴリズムを設定するには、IS-ISでセグメントルーティングトラフィック制御用に柔軟なアルゴリズムを設定する方法を参照してください

ロケーターにマッピングされた柔軟なアルゴリズムをアドバタイズするには、[edit protocols isis source-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パスをダウンロードします。

SRv6 向け TI-LFA

Topology Independent- Loop Free Alternate(TI-LFA)は、コンバージェンス後のパスに合わせられた高速再ルート(FRR)パスを確立します。SRv6対応ノードは、単一のセグメントをIPv6ヘッダーに、または複数のセグメントをSRHに挿入します。SRH が複数あると、カプセル化のオーバーヘッドが大幅に増加し、実際のパケット ペイロードよりも多くなることがあります。そのため、デフォルトでは、Junos OSはSRHを削減したSRv6トンネルカプセル化をサポートしています。ポイントオブローカル修復(PLR)は、SRv6 SIDを含むSRHにFRRパス情報を追加します。

TI-LFA バックアップ パスは、SRH 内の SRv6 SID のグループとして表されます。ingressルーターでは、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— カプセル化モードでは、元のIPv6パケットがカプセル化され、IPv6-in-IPv6カプセル化パケットの内部パケットとして転送されます。外側の IPv6 パケットは、セグメント リストとともに SRH を伝送します。元の IPv6 パケットは、ネットワーク内で変更されずに転送されます。デフォルトでは、Junos OSは縮小SRHでSRv6トンネルカプセル化をサポートしています。ただし、以下のトンネルカプセル化方式のいずれかを選択できます。

    • Reduced SRH (default)— 縮小SRHモードでは、SIDが1つしかない場合、SRHは追加されず、最後のSIDがIPV6宛先アドレスにコピーされます。縮小された SRH では、SID リスト全体を保持することはできません。

    • Non-reduced SRH— SID リスト全体を SRH に保持する場合、非縮小 SRH トンネル カプセル化モードを設定できます。

      非削減SRHを設定するには、[edit routing-options source-packet-routing srv6]階層レベルでno-reduced-srhステートメントを含めます。

手記:

ACX7000プラットフォームで no-reduced-srh を設定または削除すると、パケット転送エンジン(PFE)が再起動されます。

手記:

フェイトシェアリングの設定は、現在IPv6のみのネットワークではサポートされていません。また、SRv6 TI-LFA では、バックアップ パスを計算する際に SRLG(共有リスク リンク グループ)は考慮されません。TI-LFA の詳細については、 IS-IS のセグメントルーティングによるトポロジーに依存しないループフリーの代替について理解するを参照してください。

SRv6 でのマイクロ SID のサポート

Junos OS リリース 23.4R1 以降、複数の SRv6 アドレスを 1 つの IPv6 アドレス(マイクロ SID)に圧縮できます。パケットが複数のノードを通過する必要がある場合、IS-ISはセグメントルーティングヘッダーを使用してSRv6 SIDをスタックアップできます。このSIDのスタッキングにより、帯域幅のオーバーヘッドとセグメントルーティングヘッダー処理のオーバーヘッドが増加します。マイクロSIDを使用すると、SIDリストを単一の宛先アドレスに圧縮し、帯域幅のオーバーヘッドを削減できます。SRv6 SIDを6つ以上含める必要がある場合は、マイクロSIDロケーターを有効にします。マイクロSIDを設定した場合、他のパラメータは設定できないことに注意してください。このロケーターから派生したすべてのマイクロSIDは、デフォルトのマイクロSIDの長さ(16)と同じ長さになります。

マイクロSIDを設定するには、[edit routing-options source-packet-routing srv6 locator]および[edit routing-options source-packet-routing srv6]階層レベルでmicro-sidおよびblockステートメントを含めます。

TI-LFA、マイクロループ回避、フレックスアルゴ、IS-IS MTでのマイクロSIDサポート

Junos リリース 23.4R1 から、トポロジーに依存しないループフリーの代替ルート(TI-LFA)、マイクロループ回避、フレキシブル アルゴリズム(フレックスアルゴ)パス計算において、SRv6 アドレスを単一の IPv6 アドレス(micro-SID)に圧縮するサポートが拡張されます。このリリース以降、マイクロセグメント識別子(マイクロSID)のアルゴリズムを設定して、新しい拡張機能を容易にすることもできます。また、TI-LFAにおけるIPv6ユニキャストトポロジー(IS-IS MT の一部)、マイクロループ回避、フレックスアルゴ計算もサポートしています。

フレックス アルゴがトランスポート クラス ルーティング情報ベース (RIB) にイングレス ルートをインストールできるようにするには、[edit routing-options flex-algorithm id] 階層レベルで use-transport-class ステートメントを設定します。

SRv6 IS-IS の NSR サポート

Junos OS 24.4R1 以降では、動的なマイクロ隣接 SID と動的なクラシック隣接 End-x SID に対して IS-IS ノンストップ アクティブ ルーティング(NSR)がサポートされています。Junos OSは、スイッチオーバー後、アクティブREとバックアップREの両方に同じ動的SIDを割り当て、マスターREで動的に割り当てられたSIDがスイッチオーバー後に他の目的に使用されないようにします。

IS-IS の SRv6 ネットワーク プログラミングでサポートされている機能とサポートされていない機能

IS-ISネットワークのSRv6ネットワークプログラミングは、現在以下をサポートしています。

  • コアIPv6とデュアルスタック。IPv4 および IPv6 トランスポートは、デュアルスタックでサポートされています。

  • IPv4 および IPv6 ペイロード。

  • ingressルーターでの削減モードで最大 6 SID。

  • トランジットルーターで最大 7 つの SID。

IS-ISネットワークのSRv6ネットワークプログラミングは、現在以下をサポートしていません。

  • ロケータープレフィックスのエニーキャスト。

  • バックアップ パスを計算する際の共有リスク リンク グループ(SRLG)。

  • セグメント リストを持つ静的 SRv6 トンネル

  • ICMP および ICMPv6 のエラー処理

  • SRv6 トンネルの SR-TE ポリシー設定。

  • フレキシブル アルゴリズム ロケーターの競合解決。複数のノードが同じロケータープレフィックスを異なるアルゴリズム値で共有すると、予期しないルーティング動作が発生する可能性があります。

  • End-X-SIDのインターフェイスグループ。

  • MPLS を使用しない IPv6 ネットワークの通常または拡張管理者グループの設定。これらの機能は、[edit protocols mpls]階層レベルでのみ設定できます。