セグメント ルーティング マッピング サーバ

Cisco IOS XR セグメント ルーティングのマッピング サーバ機能では、プレフィックス SID が既知のプレフィックスの一部またはすべてに集中的に割り当てられます。ルータは、マッピング サーバ、マッピング クライアント、またはその両方として動作できる必要があります。

  • マッピング サーバとして機能するルータでは、ユーザは、SID マッピング エントリを設定して、一部またはすべてのプレフィックスに対しプレフィックス SID を指定できます。これにより、ローカル SID マッピング ポリシーが作成されます。ローカル SID マッピング ポリシーには、重複しない SID マッピング エントリが含まれています。マッピング サーバは、ローカル SID マッピング ポリシーをマッピング クライアントにアドバタイズします。

  • マッピング クライアントとして機能するルータは、マッピング サーバからリモートで受信した SID を受信して解析し、リモート SID マッピング エントリを作成します。

  • マッピング サーバおよびマッピング クライアントとして機能するルータは、リモートで学習されローカルに設定されたマッピング エントリを使用して、重複しない一貫したアクティブなマッピング ポリシーを構築します。IGP インスタンスは、アクティブなマッピング ポリシーを使用して、一部またはすべてのプレフィックスのプレフィックス SID を計算します。

マッピング サーバは、マッピング エントリの挿入および削除を自動的に管理して、重複しない一貫した SID マッピング エントリを含むアクティブなマッピング ポリシーを常に生成します。

  • ローカルに設定されたマッピング エントリは、互いに重複してはいけません。

  • マッピング サーバは、ローカルに設定されたマッピング ポリシーと、特定の IGP インスタンスからリモートで学習されたマッピング エントリを入力として受け取り、その IGP インスタンスの設定ルールに従って重複するマッピング エントリの中から単一のマッピング エントリを選択します。その結果、重複しない一貫したマッピング エントリで構成されるアクティブなマッピング ポリシーが作成されます。

  • 定常状態では、少なくとも同じエリアまたはレベルにあるすべてのルータは、同一のアクティブなマッピング ポリシーを持っている必要があります。

セグメント ルーティング マッピング サーバの制限事項

  • ネットワーク内のマッピング サーバの位置は重要ではありません。ただし、マッピング アドバタイズメントは通常の IGP アドバタイズメント メカニズムを使用して IGP に配布されるため、マッピング サーバにはネットワークへの IGP 隣接関係が必要です。

  • マッピング サーバの役割は非常に重要です。冗長性を確保するには、ネットワーク内に複数のマッピング サーバを設定する必要があります。

  • マッピング サーバ機能は、1 つの IS-IS インスタンスを通じて学習された SID マッピング エントリが、プレフィックスのプレフィックス SID を決定するために別の IS-IS インスタンスによって使用されるというシナリオをサポートしていません。たとえば、「ルータの isis 1」によってリモート ルータから学習されたマッピング エントリを使用して、「ルータ isis 2」によって FIB に学習、アドバタイズ、またはダウンロードされたプレフィックスのプレフィックス SID を計算することはできません。マッピング サーバは IS-IS 領域ごとに必要です。

  • セグメント ルーティング マッピング サーバは現在、Virtual Routing and Forwarding(VRF)をサポートしていません。

セグメント ルーティングと LDP の相互運用性

IGP では、セグメント ルーティング(SR)が Label Distribution Protocol(LDP; ラベル配布プロトコル)と相互運用するためのメカニズムが提供されます。セグメント ルーティングのコントロール プレーンは、LDP と共存します。

SR のセグメント ルーティング マッピング サーバ(SRMS)機能は、SR をサポートしていないネットワークの LDP 部分で、宛先に SID をアドバタイズするために使用されます。SRMS は、そのような宛先へのセグメント識別子(SID)マッピング エントリを維持およびアドバタイズします。IGP は SRMS マッピング エントリを伝播し、SRMS と相互に作用して、フォワーディング プレーンのプログラミング時に SID 値を決定します。IGP は、転送情報ベース(FIB)をプログラムするために使用されるプレフィックスと対応するラベルをルーティング情報ベース(RIB)にインストールします。

例:セグメント ルーティング LDP の相互運用性

セグメント ルーティング(SR)と Label Distribution Protocol(LDP; ラベル配布プロトコル)を混在させたネットワークを考えてみましょう。相互運用性を促進することにより、連続するマルチプロトコル ラベル スイッチング(MPLS)LSP(ラベル付きスイッチド パス)を確立できます。SR ドメイン内の 1 つ以上のノードがセグメント ルーティング マッピング サーバ(SRMS)として機能します。SRMS は、非 SR 対応ノードに代わって SID マッピングをアドバタイズします。各 SR 対応ノードは、個々のノードを明示的に構成することなく、非 SR 対応ノードに割り当てられた SID について学習します。

次の図に示すようなネットワークを考えてみましょう。このネットワークは、LDP 対応ノードと SR 対応ノードの両方を組み合わせたものです。

この混在ネットワークでは、

  • ノード P6、P7、P8、PE4、および PE3 は LDP に対応しています。

  • ノード PE1、PE2、P5、P6 は SR に対応しています。

  • ノード PE1、PE2、P5、および P6 は、セグメント ルーティング グローバル ブロック(SRGB)が(100, 200)に設定されています。

  • ノード PE1、PE2、P5、および P6 は、ノード セグメントがそれぞれ 101、102、105、106 に設定されています。

サービス フローは、連続する MPLS トンネル上で PE1 から PE3 まで確立する必要があります。これには、SR と LDP の相互運用が必要です。

LDP から SR へ

LDP から SR へのトラフィック フロー(右から左へ)では、次のような流れとなります。

  1. PE3 は、nhop が PE1 であるサービス ルートを学習します。PE3 には、FEC PE1 用に nhop P8 からの LDP ラベル バインドがあります。PE3 はパケット P8 を転送します。

  2. P8 には、FEC PE1 用に nhop P7 からの LDP ラベル バインドがあります。P8 はパケットを P7 に転送します。

  3. P7 には、FEC PE1 用に nhop P6 からの LDP ラベル バインドがあります。P7 はパケットを P6 に転送します。

  4. P6 には、FEC PE1 用の nhop P5 からの LDP バインドがありません。しかし、P6 には、IGP ルート PE1 への SR ノード セグメントがあります。P6 はパケットを P5 に転送し、等価ノード セグメント 101 によってローカル LDP ラベルを FEC PE1 と交換します。このプロセスは、ラベルのマージと呼ばれます。

  5. P5 は、PE1 が最後から 2 番目のポップ フラグがセットされたノード セグメント 101 をアドバタイズしたと仮定して 101 をポップし、PE1 に転送します。

  6. PE1 は、トンネリングされたパケットを受信し、サービス ラベルを処理します。

エンドツーエンドの MPLS トンネルは、PE3 から P6 までの LDP LSP と、P6 から PE1 までの関連ノード セグメントから確立されます。

SR から LDP へ

オペレータがセグメント ルーティング マッピング サーバ(SRMS)として P5 を設定し、マッピング(P7, 107)、(P8, 108)、(PE3, 103)および(PE4, 104)をアドバタイズすると仮定します。PE3 が SR 対応だった場合、オペレータは PE3 にノード セグメント 103 を設定している可能性があります。PE3 は非 SR 対応であるため、オペレータはそのポリシーを SRMS で設定します。SRMS は非 SR 対応ノードに代わってマッピングをアドバタイズします。冗長性のために、複数の SRMS サーバをネットワークにプロビジョニングできます。マッピング サーバのアドバタイズメントは、SR 対応ノードによってのみ認識されます。SR 対応ルータは、ノード セグメントがノード自体によってアドバタイズされた場合と全く同じ方法で、関連するノード セグメントを MPLS データ プレーンにインストールします。

SR から LDP へのトラフィック フロー(左から右へ)では、次のような流れとなります。

  1. PE1 は、PE3 がノード セグメント 103 をアドバタイズした場合と全く同じ方法で、ノード セグメント 103 を nhop P5 でインストールします。

  2. P5 は 103 を 103 と交換し、P6 に転送します。

  3. IGP ルート PE3 に対する P6 の nhop は非 SR 対応です。(P7 は SR 機能をアドバタイズしません)。ただし、P6 には同じ FEC に対してその nhop からの LDP ラベル バインドがあります。(たとえば、LDP ラベル 1037)。P6 は 103 を 1037 と交換し、P7 に転送します。このプロセスをラベル マージと呼びます。

  4. P7 はこのラベルを P8 から受け取った LDP ラベルと交換し、P8 に転送します。

  5. P8 は LDP ラベルをポップし、PE3 に転送します。

  6. PE3 はパケットを受信し、必要に応じて処理します。

エンドツーエンドの MPLS LSP は、PE1 から P6 までの SR ノード セグメントと、P6 から PE3 までの LDP LSP から確立されます。

マッピング サーバの設定

これらのタスクを実行して、マッピング サーバを設定し、プレフィックス SID マッピング エントリをアクティブなローカル マッピング ポリシーに追加します。

手順

  コマンドまたはアクション 目的
ステップ 1

configure

ステップ 2

segment-routing

例:


RP/0/RP0/CPU0:router(config)# segment-routing

セグメント ルーティングを有効にします。

ステップ 3

mapping-server

例:


RP/0/RP0/CPU0:router(config-sr)# mapping-server

マッピング サーバ コンフィギュレーション モードを有効にします。

ステップ 4

prefix-sid-map

例:


RP/0/RP0/CPU0:router(config-sr-ms)# prefix-sid-map

プレフィックス SID マッピング コンフィギュレーション モードを有効にします。

(注)   

双方向プレフィックス SID は、IS-IS の下で直接、またはマッピング サーバ経由で有効にできます。

ステップ 5

address-family ipv4 | ipv6

例:

次の例に、ipv4 用のアドレスファミリを示します。

RP/0/RP0/CPU0:router(config-sr-ms-map)# address-family ipv4
次の例に、ipv6 用のアドレスファミリを示します。

RP/0/RP0/CPU0:router(config-sr-ms-map)# address-family ipv6

IS-IS 用のアドレスファミリを設定します。

ステップ 6

ip-address/ prefix-length first-SID-value range range

例:


RP/0/RP0/CPU0:router(config-sr-ms-map-af)# 10.1.1.1/32 10 range 200
RP/0/RP0/CPU0:router(config-sr-ms-map-af)# 20.1.0.0/16 400 range 300

アクティブなローカル マッピング ポリシーに SID マッピング エントリを追加します。設定された例では、

  • プレフィックス 10.1.1.1/32 にはプレフィックス SID 10 が割り当てられ、プレフィックス 10.1.1.2/32 にはプレフィックス SID SID 11 が割り当てられ、プレフィックス 10.1.1.199/32 にはプレフィックス SID 200 が割り当てられています。

  • プレフィックス 20.1.0.0/16 にはプレフィックス SID 400 が割り当てられ、プレフィックス 20.2.0.0/16 にはプレフィックス SID SID 401 が割り当てられ、以下同様となります。

ステップ 7

commit

ステップ 8

show segment-routing mapping-server prefix-sid-map [ipv4 | ipv6 ] [detail ]

例:


RP/0/RP0/CPU0:router# show segment-routing mapping-server prefix-sid-map ipv4
Prefix               SID Index    Range        Flags
20.1.1.0/24          400          300
10.1.1.1/32          10           200

Number of mapping entries: 2

RP/0/RP0/CPU0:router# show segment-routing mapping-server prefix-sid-map ipv4 detail
Prefix
20.1.1.0/24
    SID Index:      400
    Range:          300
    Last Prefix:    20.2.44.0/24
    Last SID Index: 699
    Flags:          
10.1.1.1/32
    SID Index:      10
    Range:          200
    Last Prefix:    10.1.1.200/32
    Last SID Index: 209
    Flags:          

Number of mapping entries: 2


ローカルで設定されたプレフィックス/SID マッピングに関する情報を表示します。

(注)   

IS-IS 用のアドレス ファミリを指定します。

次のタスク

IGP でローカル SID マッピング ポリシーのアドバタイズメントを有効にします。

マッピング アドバタイズメントの有効化

スタティック マッピング ポリシーの設定に加えて、IGP でマッピングのアドバタイズメントを有効にする必要があります。

IGP がローカルに設定されたプレフィックス SID マッピングをアドバタイズできるようにするには、次の手順を実行します。

IS-IS 向けマッピング アドバタイズメントの設定

手順

  コマンドまたはアクション 目的
ステップ 1

router isis instance-id

例:


RP/0/RP0/CPU0:router(config)# router isis 1

指定したルーティング インスタンスの IS-IS ルーティングをイネーブルにし、ルータをルータ コンフィギュレーション モードにします。

  • is-type ルータ コンフィギュレーション コマンドを使用して、特定のルーティング インスタンスによって実行されるルーティングのレベルを変更できます。

ステップ 2

address-family {ipv4 | ipv6 } [unicast ]

例:

次に、IPv4 アドレス ファミリの例を示します。

RP/0/RP0/CPU0:router(config-isis)# address-family ipv4 unicast 

IPv4 または IPv6 アドレス ファミリを指定して、ルータ アドレス ファミリ コンフィギュレーション モードを開始します。

ステップ 3

segment-routing prefix-sid-map advertise-local

例:


RP/0/RP0/CPU0:router(config-isis-af)# segment-routing prefix-sid-map advertise-local

ローカルに設定されたプレフィックス SID マッピングをアドバタイズするように IS-IS を設定します。

ステップ 4

commit

ステップ 5

show isis database verbose

例:


RP/0/RP0/CPU0:router# show isis database verbose

<...removed...>

 SID Binding:  10.1.1.1/32 F:0 M:0 S:0 D:0 A:0 Weight:0 Range:200
    SID: Start:10, Algorithm:0, R:0 N:0 P:0 E:0 V:0 L:0 
 SID Binding:  20.1.1.0/24 F:0 M:0 S:0 D:0 A:0 Weight:0 Range:300
    SID: Start:400, Algorithm:0, R:0 N:0 P:0 E:0 V:0 L:0

IS-IS プレフィックス SID マッピング アドバタイズメントと TLV を表示します。

OSPF 向けマッピング アドバタイズメントの設定

手順

  コマンドまたはアクション 目的
ステップ 1

router ospf process-name

例:


RP/0/RP0/CPU0:router(config)# router ospf 1

指定したルーティング インスタンスに OSPF ルーティングをイネーブルにし、ルータ コンフィギュレーション モードでルータを配置します。

ステップ 2

segment-routing prefix-sid-map advertise-local

例:


RP/0/RP0/CPU0:router(config-ospf)# segment-routing prefix-sid-map advertise-local

ローカルに設定されたプレフィックス SID マッピングをアドバタイズするように OSPF を設定します。

ステップ 3

commit

ステップ 4

show ospf database opaque-area

例:


RP/0/RP0/CPU0:router# show ospf database opaque-area

<...removed...>

    Extended Prefix Range TLV: Length: 24
      AF        : 0
      Prefix    : 10.1.1.1/32
      Range Size: 200
      Flags     : 0x0

      SID sub-TLV: Length: 8
        Flags     : 0x60
        MTID      : 0
        Algo      : 0
        SID Index : 10

OSPF プレフィックス SID マッピング アドバタイズメントと TLV を表示します。

マッピング クライアントの有効化

デフォルトでは、マッピング クライアント機能は有効になっています。

segment-routing prefix-sid-map receive disable コマンドを使用して、マッピング クライアント機能を無効にできます。

segment-routing prefix-sid-map receive コマンドを使用して、マッピング クライアント機能を再度有効にできます。

次に、IS-IS 用にマッピング クライアントを有効にする例を示します。



RP/0/RP0/CPU0:router(config)# router isis 1
RP/0/RP0/CPU0:router(config-isis)# address-family ipv4 unicast 
RP/0/RP0/CPU0:router(config-isis-af)# segment-routing prefix-sid-map receive

次に、OSPF 用にマッピング クライアントを有効にする例を示します。



RP/0/RP0/CPU0:router(config)# router ospf 1 
RP/0/RP0/CPU0:router(config-ospf)# segment-routing prefix-sid-map receive