MPLS データプレーンのセグメントルーティングの概要

この章では、セグメントルーティング(SR)の概念を次のセクションに分けて紹介します。

セグメントルーティングに関する機能情報

次の表に、このモジュールで説明した機能に関するリリース情報を示します。この表は、ソフトウェア リリース トレインで各機能のサポートが導入されたときのソフトウェア リリースだけを示しています。その機能は、特に断りがない限り、それ以降の一連のソフトウェア リリースでもサポートされます。

プラットフォームのサポートおよびシスコ ソフトウェアイメージのサポートに関する情報を検索するには、Cisco Feature Navigator を使用します。Cisco Feature Navigator にアクセスするには、https://cfnng.cisco.com/に進みます。Cisco.com のアカウントは必要ありません。
表 1. セグメントルーティングに関する機能情報

機能名

リリース

機能情報

セグメント ルーティングの概要

Cisco IOS XE Amsterdam 17.3.2

セグメントルーティング(SR)は、送信元ルーティングを実行するための柔軟でスケーラブルな方法です。

MPLS データプレーンのセグメントルーティングの概要

セグメント ルーティング(SR)は、送信元ルーティングを実行するための柔軟でスケーラブルな方法です。送信元がパスを選択し、セグメントの番号付きリストとしてパケット ヘッダー内で暗号化します。セグメントは、任意のタイプの命令の識別子です。各セグメントは、セグメント ID(SID)によって識別されます。次のようなセグメント命令があります。

  • 最短パスを使用してノード N へ移動する。

  • ノード M への最短パスを経由してノード N に移動し、次に特定のリンクセットをたどる。

  • サービス S を適用する。

セグメント ルーティングを使用すると、ネットワークでアプリケーションごとやフロー状態ごとに管理する必要がなくなります。代わりに、パケット内に指定されている転送命令に従います。

セグメントルーティングは、Intermediate System-to-Intermediate System(IS-IS)および Open Shortest Path First(OSPF)プロトコルの拡張機能に依存しています。MPLS(マルチプロトコル ラベル スイッチング)データプレーンを使用して運用する場合、レイヤ 3 VPN(L3VPN)、仮想プライベートワイヤサービス(VPWS)、仮想プライベート LAN サービス(VPLS)、イーサネット VPN(EVPN)などの、さまざまなマルチサービス機能と統合されます。


(注)  


Cisco IOS XE Amsterdam 17.3.2 リリースは、IPv4 アドレスファミリの MPLS データプレーンのみをサポートします。


セグメント ルーティングは、転送プレーンを変更することなく、マルチプロトコル ラベル スイッチング(MPLS)アーキテクチャに直接適用できます。セグメント ルーティングは従来の MPLS ネットワークよりも効率的にネットワーク帯域幅を利用し、遅延を低減します。セグメントは MPLS ラベルとしてエンコードされます。セグメントの番号付きリストはラベルのスタックとしてエンコードされます。処理するセグメントは、スタックの一番上にあります。セグメントの完了後に関連するラベルがスタックからポップします。

セグメント ルーティングは自動トラフィック保護を提供しますが、トポロジ上の制約事項はありません。ネットワークがリンク障害やノード障害からトラフィックを保護し、ネットワーク内での追加シグナリングは必要ありません。既存の IP 高速再ルート(FRR)技術と、セグメントルーティングの明示的なルーティング機能を組み合わせると、最適なバックアップパスを備えた完全な保護適用範囲が保証されます。トラフィック保護には、他のシグナリング要件は適用されません。

セグメント ルーティングの仕組み

セグメント ルーティング ネットワーク内のルータは、明示的な最短パスか、または内部ゲートウェイプロトコル(IGP)の計算された最短パスかどうかにかかわらず、トラフィックを転送する任意のパスを選択できます。セグメントは、ネットワークの宛先への完全なパスを形成するためにルータを組み合わせることができるサブパスを表しています。各セグメントには識別子(セグメント識別子)があり、IGP 拡張機能を使用してネットワーク全体にアドバタイズされます。従来の MPLS ネットワークとは異なり、セグメント ルータ ネットワーク内のルータに転送をサポートするための Label Distribution Protocol(LDP)や Resource Reservation Protocol - Traffic Engineering(RSVP-TE)は必要ありません。

各ルータ(ノード)と各リンク(隣接関係)には関連付けられたセグメント識別子(SID)があります。ノードセグメント識別子はグローバルに一意です。ネットワーク管理者は各ルータに予約済みブロックからノード ID を割り当てます。一方、隣接関係セグメント ID はアドバタイズノードにとってローカルで重要なものであり、出力インターフェイスなどの隣接ルータに固有の隣接関係を表します。ルータは、ノード ID に使用される予約済みブロック外の隣接関係識別子を自動的に生成します。MPLS ネットワークでは、セグメント識別子は MPLS ラベル スタック エントリとしてエンコードされます。セグメント ID は指定したパスに沿ってデータパケットを移動します。次の 2 種類のセグメント ID があります。

  • プレフィックス SID

    ネットワーク内のノードに関連付けられた IP アドレスプレフィックスに関連付けられたセグメント ID。プレフィックス SID はグローバルに一意です。ノードセグメントは、ノードのループバックアドレスにバインドされる特別なプレフィックスセグメントです。これは、インデックスとしてノード固有の SR グローバルブロック(SRGB)にアドバタイズされます。

  • 隣接 SID

    2 つのルータ間のリンクに関連付けられているセグメント ID。隣接関係 SID の範囲は特定のルータに限定されます。

ノードセグメントはマルチホップパスになり得ますが、隣接関係(アジャセンシー)セグメントは常にワンホップパスです。

セグメント ルーティングの例

次の図は、セグメントルーティング、IS-IS、ノード ID 用に 16000 ~ 23999 のラベル範囲、および 200 以上の隣接 ID を使用する、5 台のルータを含む MPLS ネットワークについて示しています。IS-IS は、ネットワーク全体にセグメント ID(MPLS ラベル)とともに IP プレフィックスの到達可能性を配布します。

図 1. セグメント ルーティングを使用する 5 台のルータを含む MPLS ネットワーク

図 1 では、ルータ E にトラフィックを送信しているルータは、ラベル 16103(ルータ E ノードセグメント識別子)をプッシュし、IS-IS 最短パスを使用してトラフィックを転送します。各ホップでの MPLS ラベルスワッピング操作は、パケットが E に到着するまでラベル 16103 を保持します(図 2)。一方、隣接関係セグメントの動作は異なります。たとえば、パケットが 203(D 対 E の隣接関係セグメント識別子)のスタックトップの MPLS ラベルを持つルータ D に到着する場合、ルータ D はラベルをポップし、ルータ E にトラフィックを転送します。

図 2. MPLS ラベルスワッピング操作

セグメント識別子は、トラフィック エンジニアリングを実行するための順序付きリストとして組み合わせることができます。セグメント リストには、転送要件に応じて複数の隣接関係セグメント、複数のノード セグメント、または両方の組み合わせを含めることができます。前の例では、ルータ A は、ラベルスタック(16104、203)を代わりにプッシュし、最短パスとルータ D に該当するすべての ECMP を使用し、次に宛先への明示的なインターフェイスを通って、ルータ E に到達することができます(図 3)。ルータ A は新しいパスをシグナリングする必要がなく、状態情報はネットワーク内で一定に保たれます。ルータ A は、最終的に特定のパス経由でルータ E 宛てのどのフローを切り替えるかを決定する転送ポリシーを適用します。

図 3. ルータ E の宛先パス

セグメント ルーティングの利点

  • SDN の準備:セグメントルーティングは、ソフトウェア定義型ネットワーク(SDN)の採用を構想した魅力的なアーキテクチャであり、アプリケーション対応ルーティング(AER)の基盤です。これは、自動リンクおよびノード保護などのネットワークベースの分散インテリジェンスと、トラフィック最適化などのコントローラベースの集中型インテリジェンスとの間のバランスをとります。

    厳格なネットワーク パフォーマンス保証、ネットワーク リソースの効率的な使用、およびアプリケーションベースのトランザクションに対する非常に高いスケーラビリティを提供することができます。ネットワークは、これらの要件を満たすために最小限の状態情報を使用します。セグメント ルーティングは、コントローラベースの SDN アーキテクチャと簡単に統合できます。

    次の図は、コントローラが帯域幅アドミッションコントロールなどの集中最適化を実行する SDN シナリオの例を示しています。このシナリオでは、コントローラがネットワーク トポロジとフローの全体像をもっています。ルータは、遅延、帯域幅、ダイバーシティなど、特定の特性を持つ宛先へのパスを要求できます。コントローラは最適なパスを計算し、MPLS ラベル スタックなどの対応するセグメント リストを要求元ルータに返します。その時点で、ルータはネットワークに追加のシグナリングなしでセグメント リストとともにトラフィックを注入できます。

    さらに、セグメント リストを使用すると、ネットワークにアプリケーションの状態を追加することなく、完全なネットワーク仮想化を実現できます。状態は、セグメントのリストとしてパケットにエンコードされます。ネットワークはセグメント状態を維持するだけなので、ネットワークに負荷をかけることなく、大量で高頻度のトランザクションベースのアプリケーション要求をサポートできます。

    図 4. SDN コントローラ
    MPLS ネットワーク内の SDN コントローラ
  • 運用のシンプル化

    • MPLS データ プレーンに適用された場合、セグメント ルーティングは、IGP(ISIS または OSPF)以外のプロトコルを使用せずに、入力プロバイダー エッジから出力プロバイダー エッジへの MPLS サービス(VPN、VPLS、および VPWS)をトンネリングする機能を提供します。

    • ラベル配布用に別のプロトコルを使用しない単純な動作です(たとえば LDP や RSVP が不要)。

    • トラブルシューティングを行うための複雑な LDP または IGP 同期はありません。

    • ECMP に対応した最短パス転送(ノード セグメント ID を使用)により、設置済みインフラストラクチャの使用率を向上し、設備投資(CapEx)を削減します。

  • 高速再ルーティング(FRR)のサポート:任意のトポロジに対して自動化 FRR を提供します。ネットワーク内でリンクまたはノード障害が発生した場合、MPLS は FRR メカニズムを使用してコンバージェンスを行います。セグメント ルーティングでは、コンバージェンス時間は 50 ミリ秒以下です。

  • 大規模データセンター

    • セグメント ルーティングでは、ボーダー ゲートウェイ プロトコル(BGP)RFC 3107(トップオブラック/リーフ/スパイン スイッチ間の IPv4 ラベル付きユニキャスト)を使用して、MPLS 対応のデータセンター設計を簡素化します。

    • BGP は、IGP ノード SID と同等のノード セグメント ID を配布します。

    • トポロジ内のノードは、同じスイッチに同じ BGP セグメントを割り当てます。

    • IGP ノード SID:ECMP および自動 FRR(BGP PIC(プレフィックス独立コンバージェンス))の場合と同じ利点が提供されます。

    • これは、トラフィック エンジニアリング(SR TE データセンター ファブリックの最適化)のためのビルディング ブロックです。

  • デュアルプレーン ネットワーク
    • セグメントルーティングは、プレーンが分割されていない限り、特定のプレーンからエッジの宛先へのルートがプレーン内に留まるデュアルプレーン ネットワークでのディスジョイントネスを強制するための簡単なソリューションを提供します。

    • 追加の SID エニーキャストセグメント ID により、「ノード Z に向けてノード A に投入されたフロー 1 は、プレーン 1 を経由しなければならない」、「ノード Z に向けてノード A に投入されたフロー 2 は、プレーン 2 を経由しなければならない」といったマクロポリシーの表現が可能になります。

  • 集中型トラフィック エンジニアリング
    • コントローラとオーケストレーション プラットフォームは、WAN 最適化などの集中型の最適化のために、セグメント ルーティング トラフィック エンジニアリングと対話することができます。

    • 輻輳などのネットワーク変更により、アプリケーションがセグメント ルーティング トラフィック エンジニアリング トンネルの配置を最適化(再計算)することをトリガーできます。

    • セグメント ルーティング トンネルは、PCE のようなサウスバウンド プロトコルを使用してオーケストレータからネットワーク上に動的にプログラムされます。

    • セグメント ルーティング トンネルは中間点およびテール エンド ルータでのシグナリングおよびフローごとの状態を必要としないため、アジャイル ネットワーク プログラミングが可能です。

  • 出力ピアリング トラフィック エンジニアリング(EPE)
    • セグメント ルーティングは集中型 EPE を可能にします。

    • コントローラは、特定の出力プロバイダーのエッジと特定の外部インターフェイスを使用して宛先に到達するように、入力プロバイダーのエッジとコンテンツ ソースに指示します。

    • BGP ピアリングセグメント ID は、ソースルーティングされたドメイン間パスを表すために使用されます。

    • コントローラは、BGP リンクの状態(BGP-LS)EPE ルートを介して、BGP ピアリング SID と出力境界ルータの外部トポロジを学習します。

    • コントローラは、必要なパスを使用して入力ポイントをプログラムします。

  • プラグアンドプレイ展開:セグメント ルーティング トンネルは、既存の MPLS コントロールプレーンおよびデータプレーンと相互運用可能で、既存の展開に実装できます。

セグメント ルーティング グローバル ブロック

セグメント ルーティング グローバル ブロック(SRGB)は、セグメント ルーティングのグローバルスコープの SID に予約されたラベルの範囲のことです。SRGB は、セグメント ルーティング ノードのローカルプロパティです。MPLS アーキテクチャでは、SRGB はグローバルセグメントに予約済みの一連のローカルラベルです。セグメント ルーティングでは、各ノードを異なる SRGB で設定できます。そのため、IGP プレフィックス セグメントに関連付けられた絶対 SID はノードごとに変更できます。

SRGB のデフォルト範囲は 16000 ~ 23999 です。SRGBは、次のように設定できます。

Device(config)# segment-routing mpls
Device(config-srmpls)#segment-routing global-block 45000 55000

SRGB ラベル値は、次のようにホップバイホップで計算されます。

  • ノード SID は、ローカル SRGB へのインデックスとしてアドバタイズされます。

  • IGP は、ネクスト ホップによってアドバタイズされた SRGB にインデックスを追加することで、ノード SID に関連付けられた適切な MPLS ラベルを計算します。

  • プラットフォームには、SRGB の下限と上限に特定の制限がある場合があります。これらの境界は、segment-routing global-block コマンドに関連付けられたヘルプ文字列に表示されます。例:
    Router(config-srmpls)#global-block ?
      <16-1048575>  SR GB/LB Label Range Start
    

隣接関係セグメント識別子

隣接関係セグメント識別子(adj-SID)は、パケットの方向を特定のインターフェイスとネクストホップに指定するローカルラベルです。adj-SID を有効にするために必要な特定の設定はありません。隣接関係 SID は、すべてのネイバーに対して IGP によって自動的に割り当てられます。

プレフィックス セグメント識別子

プレフィックスセグメント識別子(SID)は、プレフィックスによって表される宛先にトラフィックを転送するために使用されます。

プレフィックス SID は、セグメント ルーティング グローバル ブロック(SRGB)へのインデックスです。インデックスはローカル MPLS ラベルにマッピングされます。このラベルの値は、ローカルにアドバタイズされた SRGB の開始値にインデックス値を追加することによって、ノードごとに計算されます。次に例を示します。

  • ノードが 16000 ~ 23999 の SRGB 範囲をアドバタイズする場合、SID インデックス 100 は MPLS ラベル 16100 にマッピングされます。

  • ノードが 25000 ~ 39999 の SRGB 範囲をアドバタイズする場合、SID インデックス 100 は MPLS ラベル 25100 にマッピングされます。