セグメントルーティングは、送信元のルーティングパラダイムに基づいてネットワーク上でパケットを転送する方法です。送信元がパスを選択し、セグメントの順序付きリストとしてパケットヘッダー内でエンコードします。セグメントは、任意のタイプの命令の識別子です。例えば、トポロジ
セグメントは、宛先へのネクスト ホップを識別します。各セグメントは、32 ビットの符号なし整数で構成されるセグメント ID(SID)で識別されます。
トラフィック エンジニアリング用のセグメントルーティング(SR-TE)では、ネットワークでアプリケーション単位およびフロー単位の状態を維持する必要はありません。代わりに、パケットで指定されている転送命令に従うだけです。
セグメント
内部ゲートウェイ プロトコル(IGP)は、2 つのタイプのセグメント、プレフィックス セグメントと隣接関係セグメントを配布します。各ルータ(ノード)と各リンク(隣接関係)には、関連付けられたセグメント識別子(SID)があります。
-
プレフィックス SID は、IP プレフィックスに関連付けられます。プレフィックス SID は、ラベルのセグメント ルーティング グローバル ブロック(SRGB)の範囲から手動で設定され、IS-IS または OSPF によって配布されます。プレフィックス
セグメントは、その宛先への最短パスに沿ってトラフィックを誘導します。ノード SID は、特定のノードを識別する特別なタイプのプレフィックス SID です。ノードのループバック アドレスをプレフィックスとして使用して、ループバック インターフェイスの下に設定されます。
プレフィックス セグメントはグローバル セグメントであるため、プレフィックス SID はセグメント ルーティング ドメイン内でグローバルに一意です。
-
隣接関係セグメントは、隣接ルータへの出力インターフェイスなどの特定の隣接関係を表す隣接関係 SID と呼ばれるラベルによって識別されます。隣接関係 SID は、IS-IS または OSPF によって配布されます。隣接関係セグメントは、トラフィックを特定の隣接関係に誘導します。
隣接関係セグメントはローカル セグメントであるため、隣接関係 SID は特定のルータに対してローカルに一意です。
次の図に、各デバイスのノード SID と隣接関係 SID、およびデバイス間の接続を示す基本的なネットワークを示します。
セグメント ルーティング ポリシー
SR ポリシーパスはパス(SID リスト)を指定するセグメントのリストとして表されます。番号付きリストでプレフィックス(ノード)と隣接関係セグメント ID を組み合わせることにより、ネットワーク内で任意のパスを構築できます。各ホップにおいて、先頭のセグメントがネクスト
ホップを識別するために使用されます。セグメントはパケット ヘッダーの先頭に順番にスタックされます。先頭のセグメントに別のノードの ID が含まれている場合、受信ノードは等コスト マルチパス(ECMP)を使用してパケットをネクスト ホップに移動させます。ID
が受信ノードの ID である場合、ノードは先頭のセグメントをポップし、次のセグメントに必要なタスクを実行します。
SR ポリシーにはダイナミックと明示的の 2 つのタイプがあります。
ダイナミック SR ポリシー動的パスは、最適化の目的と一連の制約に基づいています。ヘッドエンドはソリューションを計算し、結果として SID リストまたは SID リストのセットを生成します。トポロジが変更されると、新しいパスが計算されます。ヘッドエンドにトポロジに関する十分な情報がない場合、ヘッドエンドはパス計算エンジン(PCE)に計算させることがあります。パスが見つからない場合、ポリシーは動作上ダウン(動作ステータスダウン)になり、パケットはポリシーに基づいてルーティングされません。
明示的 SR ポリシー明示的なポリシーを設定する場合は、プレフィックスまたは隣接 SID のリストで構成される明示的なパスを指定します。各 SID はパス上のノードまたはリンクを表します。各セグメントは、送信元から接続先までのエンドツーエンドのパスであり、ネットワーク内のルータに、IGP
によって計算された最短パスではなく指定されたパスに従うように指示します。パケットが SR ポリシーへと誘導される場合、SID リストはヘッドエンドによってパケットにプッシュされます。残りのネットワークは、SID リストに埋め込まれた命令を実行します。
(注) |
PCC によって開始されたポリシーの場合、明示パスが IP アドレスの形式で設定されている場合、ホップの 1 つがダウンすると、ポリシーの動作ステータスはダウンになります。ラベルのリストとして設定されている場合、ポリシーは、ダウンした最初のホップである場合にのみ、動作ステータスがダウンになります。残りのホップは
PCC によって解決されないため、失敗してもポリシーの動作ステータスはダウンになりません。
|
Segment Routing over MPLS(SR-MPLS)
セグメントルーティングは、MPLS データプレーンに適用できます。SR-MPLS 対応ネットワークでは、MPLS ラベルは命令を表します。送信元ノードでは、パケットヘッダーの宛先へのパスがラベルのスタックとしてプログラムされます。詳細については、IETF RFC 8660 MPLS データプレーンを使用したセグメントルーティング [英語] を参照してください。
Segment Routing over IPv6(SRv6)
Segment Routing over IPv6(SRv6)は、IPv6 データプレーンを使用してセグメントルーティングのサポートを拡張します。SRv6 にはネットワーク プログラミング フレームワークが導入されており、IPv6 パケットヘッダー内の一連の命令をエンコードすることで、ネットワークオペレータまたはアプリケーションがパケット処理プログラムを指定できます。各命令は、ネットワーク内の
1 つまたは複数のノードに実装され、パケット内の SRv6 セグメント識別子(SID)によって識別されます。詳細については、IETF RFC 8986 SRv6 ネットワークプログラミング [英語] を参照してください。
SRv6 では、IPv6 アドレスは命令を表します。SRv6 では、命令の順序付きリストをエンコードするために、セグメント ルーティング ヘッダー(SRH)と呼ばれる新しいタイプの IPv6 ルーティング拡張ヘッダーが使用されます。アクティブセグメントはパケットの宛先アドレスによって示され、次のセグメントは
SRH のポインタによって示されます。
詳細については、https://www.segment-routing.net/を参照してください。
SRv6 の制限事項
-
Cisco IOS XR 7.3.2 では、IS-IS IGP による SRv6 可視化のみサポートされます。
-
SRv6 ポリシーでのトラフィック収集は現在サポートされていません。
-
OSPFv3 IGP(PCE によって開始された)SRv6 ポリシーはサポートされていません。
-
SRv6 は、帯域幅最適化、オンデマンド帯域幅、またはローカル輻輳緩和機能パックではサポートされていません。
-
IPv4 と IPv6 のトポロジは一致している必要があります。IPv4 と IPv6 の異なるリンクメトリックはサポートされていません。
-
PCC によって開始されたダイナミックパス SRv6 ポリシーのみ可視化します。PCC によって開始されたパスと明示パスはサポートされていません。
トラフィック エンジニアリング用のセグメント ルーティング
SR-TE は、送信元と接続先のペア間のポリシーを介して実行されます。SR-TE では、送信元ルーティングの概念が使用されます。送信元はパスを計算し、パケット ヘッダーでセグメントとしてエンコードします。
SR-TE は、すべてのセグメント レベルで ECMP を使用することにより、従来の MPLS-TE ネットワークよりも効果的にネットワーク帯域幅を利用します。単一のインテリジェント ソースを使用し、残りのルータをネットワーク経由で必要なパスを計算するタスクから解放します。
分離
Crosswork では、分離ポリシーを使用して、同じ送信元と接続先からのトラフィックを誘導する 2 つの一意のパスを計算し、共通の指定リソース(リンクまたはノード)を回避します。これにより、ネットワークを介したトラフィックの誘導ではシングルポイント障害が発生しなくなります。次の分離パスの計算がサポートされています。
-
[リンク(Link)]:計算されたパス上でリンクが共有されないことを指定します。
-
[ノード(Node)]:計算されたパス上でノードが共有されないことを指定します。
-
[SRLG]:計算されたパスで同じ共有リスクリンクグループ(SRLG 値)を持つリンクが共有されないことを指定します。
-
[SRLGノード(SRLG-node)]:計算されたパス上で SRLG とノードが共有されないことを指定します。
(注) |
|