ネットワークにおけるソースパケットルーティングを理解する(SPRING)
ソースパケットルーティングまたはセグメントルーティングは、ingressルーターが、ネットワークの中間ノードに頼らずに、実際のパスを決定し、ネットワーク内の特定のノードやリンクを経由してパケットを誘導することを可能にする、コントロールプレーンのアーキテクチャです。この文脈では、「ソース」という用語は、「明示的なルートが課されるポイント」を意味します。Junos OS リリース 17.2R1以降、IS-ISおよびOSPFv2のセグメントルーティングは、QFX5100およびQFX10000スイッチでサポートされます。
Junos OS リリース 20.3R1 以降、OSPF および IS-IS プロトコルのセグメント ルーティングをサポートし、Source Packet Routing in Networking(SPRING)で基本的な機能を提供します。
基本的にセグメントルーティングでは、IS-ISやOSPFなどのIGPを使用して、2種類のネットワークセグメントまたはトンネルをアドバタイズします。
-
1つ目は、隣 接セグメントと呼ばれる、リンクコストに関係なく、2つのノード間の特定のリンクを介してパケットを伝送する、厳密な転送シングルホップトンネルです。
-
2つ目は、 ノードセグメントと呼ばれる、2つの特定のノード間の最短パスリンクを使用するマルチホップトンネルです。
イングレス ルーターは、パケットに適切なトンネルの組み合わせを事前に追加することで、パケットを目的のノードとリンクのセットを介して誘導できます。
セグメントルーティングは、ソースルーティングパラダイムを利用します。ノードは、セグメントと呼ばれる命令の順序付きリストを介してパケットを誘導します。セグメントは、トポロジーまたはサービスベースの任意の指示を表すことができます。セグメントは、セグメントルーティングノードまたはセグメントルーティングドメイン内のグローバルノードに対するローカルセマンティックを持つことができます。セグメントルーティングは、セグメントルーティングドメインへのイングレスノードのみでフローごとの状態を維持しながら、あらゆるトポロジーパスとサービスチェーンを通るフローを強制します。セグメントルーティングは、転送プレーンを変更することなく、MPLSアーキテクチャに直接適用できます。セグメントはMPLSラベルとしてエンコードされます。セグメントの順序付きリストは、ラベルのスタックとしてエンコードされます。処理するセグメントはスタックの一番上にあります。セグメントが完了すると、関連するラベルがスタックからポップされます。セグメントルーティングは、新しいタイプのルーティング拡張ヘッダーを使用して、IPv6アーキテクチャに適用できます。セグメントは IPv6 アドレスとしてエンコードされます。セグメントの順序指定リストは、ルーティング拡張ヘッダーの IPv6 アドレスの順序指定リストとしてエンコードされます。処理するセグメントは、ルーティング拡張ヘッダー内のポインターで示されます。セグメントが完了すると、ポインターがインクリメントされます。
以下の階層レベルで shortcuts
を設定すると、ラベル付き IS-IS セグメント ルートでトラフィック制御のショートカットが有効になります。
-
[edit protocols is-is traffic-engineering family inet]
IPv4 トラフィックの場合は。 -
[edit protocols is-is traffic-engineering family inet6]
IPv6 トラフィックの場合は。
送信元パケットルーティングがネットワーク、データセンター、バックボーン、およびピアリングデバイスに展開されている場合、トラフィックの送信元によって構築されたラベルスタックでMPLSパケットを切り替えます。たとえば、データセンターサーバーなどです。Junos OS リリース 17.4R1では、ソースルーティングされたトラフィックはRSVPシグナルパスを取るトラフィックと共存し、ソースルーティングは、ラベル操作であるポップ、スワップ(同じラベル値へ)、およびスワッププッシュ(インターフェイス保護用)を使用して、mpls.0テーブルを介して通常のラベルスイッチとして実装されます。いずれの場合も、トラフィックは複数のレイヤー3インターフェイス間、または集約インターフェイス内でロードバランシングできます。Junos OS リリース 17.4R1 以降、レイヤー 3 インターフェイスのセグメント ルーティング ネットワークのトラフィック統計を OpenConfig 準拠形式で記録できるようになりました。統計は、RSVP と LDP シグナリングされたトラフィックを除く、Source Packet Routing in Networking(SPRING)トラフィックについてのみ記録され、インターフェイスごとのファミリー MPLS 統計は別個に考慮されます。SR 統計情報には、リンク アグリゲーション グループ(LAG)メンバーごと、セグメント識別子(SID)ごとの SPRING トラフィック統計情報も含まれます。セグメントルーティング統計の記録を有効にするには、[edit protocol isis source-packet-routing]
階層レベルでsensor-based-stats
ステートメントを含めます。
Junos OS リリース 19.1R1 以前は、センサーは MPLS トランジット トラフィック(本質的には MPLS 間)のセグメント ルーティング統計の収集にしか利用できませんでした。Junos OS リリース 19.1R1 以降、MPC および MIC インターフェイスを搭載した MXシリーズ ルーターと PTXシリーズ ルーターでは、MPLS イングレス トラフィック(本質的には IP-to-MPLS)のセグメント ルーティング統計を収集する追加のセンサーが導入されています。この機能を使用すると、ラベル IS-IS セグメント ルーティング トラフィックのみのセンサーを有効にし、統計情報を gRPC クライアントにストリーミングできます。
MPLS イングレス トラフィックのセグメント ルーティング統計は、per-sid
設定ステートメントの egress
オプションで有効にできます。sid 単位のエグレス機能のリソース名は次のとおりです。
/junos/services/segment-routing/sid/egress/usage/
show isis spring sensor info
コマンド出力を使用して、ラベル IS-IS とセンサーとのルート関連付けを表示できます。このコマンドでは、実際のセンサーのカウンタ値は表示されません。
セグメントルーティング統計レコードは、サーバーにエクスポートされます。セグメント ルーティング統計データは、次の OpenConfig パスから表示できます。
-
/mpls/signalling-protocols/segment-routing/aggregate-sid-counters/aggregate-sid-counter[ip-addr='L-ISIS-10.1.1.1']/state/counters[name='oc-xxx']/out-pkts
-
/mpls/signalling-protocols/segment-routing/aggregate-sid-counters/aggregate-sid-counter[ip-addr='L-ISIS-10.1.1.1']/state/counters[name='oc-xxx']/out-pkts
-
グレースフル ルーティングエンジン スイッチオーバー(GRES)は、セグメント ルーティング統計ではサポートされていません。
ノンストップ アクティブ ルーティング(NSR)は、ラベル IS-IS ではサポートされていません。ルーティングエンジンの切り替え時に、新しいプライマリルーティングエンジンに新しいセンサーが作成され、以前のプライマリルーティングエンジンで作成されたセンサーが置き換えられます。その結果、ルーティングエンジンのスイッチオーバー時に、セグメント ルーティング統計カウンタはゼロから始まります。
-
グレースフル リスタートは、ラベル IS-IS をサポートしていません。
グレースフル リスタートの場合、IS-IS の初期化中に既存のセンサーが削除され、新しいセンサーが作成されます。セグメントルーティング統計カウンタがゼロから再起動します。
-
インサービスソフトウェアアップグレード(ISSU)およびノンストップソフトウェアアップグレード(NSSU)はサポートされていません。この場合、セグメントルーティング統計カウンターが再起動されます。
-
統計情報ゼロのセグメント ルーティング データは抑制され、gRPC クライアントにストリーミングされません。
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。