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を展開することなく、セグメントルーティングを活用する柔軟性が得られます。

Network topology diagram showing SRv6 nodes in an IPv6 backbone with routers R1 R2 R3 and R4 handling IPv4 and IPv6 traffic flow.

セグメントルーティング拡張ヘッダーとは

セグメント識別子は、セグメントルーティングドメイン内の特定のセグメントを表します。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 OS リリース 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 の NSR サポート

動的マイクロ隣接セグメント識別子(SID)および動的クラシック隣接関係End-x SIDでは、IS-ISノンストップアクティブルーティング(NSR)をサポートしています。Junos OSは、スイッチオーバー後にアクティブとバックアップの両方のルーティングエンジン(RE)に同じ動的SIDを割り当て、プライマリREに動的に割り当てられたSIDが再利用されないようにします。また、動的 DT SID に BGP NSR を使用することもできます。Junos OSは現在、従来の動的エンドSIDのNSRをサポートしていないことに注意してください。

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

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

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

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

  • 最大 6 SID(ingressルーターの削減モード)

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

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

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

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

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

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

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

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

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

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