OSPFv2 ノード SID のセグメント ルーティング

この章では、セグメント ルーティングが OSPFv2 ノード SID でどのように機能するかについて説明します。

OSPFv2 ノード SID のセグメント ルーティングに関する機能情報

表 1. OSPFv2 ノード SID のセグメント ルーティングに関する機能情報

機能名

リリース

機能情報

OSPF によるセグメント ルーティング

Cisco IOS XE Amsterdam 17.3.2

セグメント ルーティング OSPFv2 ノード SID 機能は、OSPF ネットワークでのセグメント ルーティングのサポートを提供します。

次のコマンドが導入または変更されました。connected-prefix-sid-map show ip ospf 10 segment-routing sr-label-preferred ip ospf prefix-attributes n-flag-clear

OSPFv2 ノード SID のセグメント ルーティングに関する情報

セグメント ルーティングは、Open Shortest Path First(OSPF)プロトコルのいくつかの拡張機能に依存しています。ルーティング プロトコル インスタンスのセグメント ルーティングを有効にするには、2 つのレベルの構成が必要です。セグメント ルーティング インフラストラクチャ コンポーネントによって管理される最上位のセグメント ルーティング構成では、セグメント ルーティングが可能になり、一方、ルータ ospf レベルでのセグメント ルーティング構成では、ospf インスタンスに対してセグメント ルーティングが可能になります。セグメント ルーティングの状態には、次の 3 つがあります。
  • SR_NOT_CONFIGURED

  • SR_DISABLED

  • SR_ENABLED

IGP 下のセグメント ルーティング構成は、SR の状態が SR_DISABLED または SR_ENABLED のいずれかである場合にのみ許可されます。SR_ENABLED 状態は、少なくとも予約済みの有効な SRGB 範囲にあることを示します。コマンドを使用して、ルータ設定サブ モードで IGP のセグメント ルーティングを有効にすることができます。ただし、IGP セグメント ルーティングは、グローバル SR が設定された後にのみ有効になります。

SR_ENABLED は、SR を有効にするためにすべてのプロトコルに必要な状態ですが、プロトコル インスタンスの SR を有効にするには十分ではありません。その理由は、OSPF にセグメント ルーティング グローバル ブロック(SRGB)情報に関する情報がまだないことです。SRGB に関する情報を受信する要求が正常に処理されると、OSPF SR の動作状態が有効になります。

セグメント ルーティングでは、各ルータが、セグメント ルーティング データプレーン機能と、グローバル SID が割り当てられている場合にセグメント ルーティングに使用される MPLS ラベル値の範囲をアドバタイズする必要があります。データプレーン機能とラベル範囲は、OSPF ルータ情報不透明 LSA に挿入される SR 機能サブ TLV を使用してアドバタイズされます。

OSPF SR 機能サブ TLV には、すべての予約済み SRGB 範囲が含まれます。ただし、シスコの実装でサポートされる SRGB 範囲は 1 つだけです。

リモート ルータからのラベル スイッチド パスで受信されたプレフィックス SID

OSPF は、その不透明な拡張プレフィックス LSA 内の拡張プレフィックス サブ TLV を使用して、接続されたプレフィックスに関連付けられたプレフィックス SID を送信します。到達可能性がある LSA で受信したプレフィックス SID は、次の条件が満たされている場合にのみ、プレフィックス VPN ラベルごとの BGP ダウンロードと同じ方法でルーティング情報ベース(RIB)にダウンロードされます。

  • トポロジとアドレスファミリに対してセグメント ルーティングが有効。

  • プレフィックス SID が有効。

  • MFI へのローカル ラベルのバインドが成功している。


(注)  


指定された SID 範囲に収まらない SID の場合、RIB の更新時にラベルは使用されません。SID が SID の範囲内には収まるが、ネクストホップのネイバー SID の範囲には収まらない場合は、そのパスに関連付けられているリモート ラベルはインストールされません。


セグメント ルーティング隣接関係 SID アドバタイズメント

Cisco IOS XE リリース 3.17 では、OSPF によるセグメント ルーティング隣接関係 SID のアドバタイズメントのサポートが有効です。隣接関係セグメント識別子(Adj-SID)は、セグメント ルーティングにおけるルータ隣接関係を表します。

セグメント ルーティング対応ルータは、隣接関係ごとに Adj-SID を割り当てることができ、この SID を拡張不透明リンク LSA で伝送するように Adj-SID サブ TLV が定義されます。

OSPF は、OSPF 隣接関係が 2 つの方法または完全な状態にある場合、各 OSPF ネイバーに隣接関係 SID を割り当てます。OSPF は、セグメント ルーティングが有効になっている場合にのみ隣接関係 SID を割り当てます。隣接関係 SID のラベルは、システムによって動的に割り当てられます。これにより、ローカルでしか有効でないため、設定ミスの可能性がなくなります。

複数の隣接関係 SID

Cisco IOS XE リリース 16.3 では、複数の隣接関係 SID がサポートされています。OSPF の隣接関係ごとに、OSPF は拡張リンク LSA で伝送される隣接関係 SID、非保護および保護された Adj-SID を割り当てます。保護された隣接関係 SID(またはバックアップ Adj-SID)は、ルータで FRR が有効になっている場合のみ、また SR がシステムで有効になっているインターフェイスでのみ、割り当てられてアドバタイズされます。FRR または SR が無効になっている場合、保護された Adj-SID は解放されます。

フォワーディング プレーンでの保護された adj-SID の永続化はサポートされます。プライマリ リンクがダウンしている場合、OSPF は、遅延タイマー(30 秒)が期限切れになるまでバックアップ Adj-SID の解放を遅らせます。これにより、フォワーディング プレーンは、ルータがコンバージされるまで、バックアップ パスを経由してトラフィックを転送し続けることができます。

割り当てられ、アドバタイズされたバックアップ Adj-SID は、 show ip ospf neighbor detail および show ip ospf segment-routing protected-adjacencies command の出力で表示できます。

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

セグメント ルーティング マッピング サーバー(SRMS)を使用すると、プレフィックス SID マッピング ポリシー エントリの構成と保守を行うことができます。Cisco IOS XE リリース 3.17 では、IGP は SRMS のアクティブ ポリシーを使用して、フォワーディング プレーンのプログラミング時に SID 値を決定します。

SRMS は、ネットワークの SID/ラベル マッピング ポリシーにプレフィックスを提供します。一方、IGP は、プレフィックス SID/ラベル バインディング TLV を介して SID/ラベル マッピング ポリシーにプレフィックスをアドバタイズする役割を担います。

アクティブ ポリシー情報と変更は、アクティブ ポリシー情報を使用して転送情報を更新する IGP に通知されます。

接続されたプレフィックス SID

ルータが LSP にアドバタイズしたものとは異なる SID を持つプレフィックスをインストールする場合、たとえば、複数のプロトコルまたは複数の IGP インスタンスが、異なる SID を持つ同じプレフィックスを SRMS にアナウンスしている場合、SRMS は競合を解決し、ローカル インスタンスと同じでない可能性がある競合に勝ったプレフィックスと SID をアナウンスします。その場合、IGP は、常にソース LSP から学習した内容をアドバタイズしますが、その LSP で学習したものとは異なる可能性がある SID のインストールを試みます。これは IGP が別のプロトコルまたは別のプロトコル インスタンスから SID を再配布することを防ぐために行われます。

SRGB 範囲の変更

OSPF セグメント ルーティングが設定されている場合、OSPF は、OSPF SR の動作状態を有効にする前に SRGB とのインタラクションを要求する必要があります。SRGB 範囲が作成されていない場合、OSPF は有効になりません。

SRGB 変更イベントが発生した場合、OSPF は、そのサブブロック エントリで対応する変更を行います。また OSPF は、SR 機能サブ TLV で新しく作成または拡張された SRGB 範囲をアドバタイズし、プレフィックス SID サブ TLV アドバタイズメントを更新します。

インターフェイスでの MPLS 転送

セグメント ルーティングがインターフェイスを使用する前に、MPLS 転送を有効にする必要があります。OSPF は、インターフェイスでの MPLS 転送を有効にする役割を担います。

セグメント ルーティングが OSPF トポロジに対して有効になっている場合、または OSPF セグメント ルーティングの動作状態が有効になっている場合、OSPF は、OSPF トポロジがアクティブである任意のインターフェイスに対して MPLS を有効にします。同様に、OSPF トポロジのセグメント ルーティングが無効になっている場合、OSPF は、そのトポロジのすべてのインターフェイスで MPLS 転送を無効にします。

SID エントリの競合処理

SID エントリと関連付けられているプレフィックス エントリの間に競合がある場合は、次のいずれかの方法を使用して競合を解決します。

  • システムが同じプレフィックスに対して 2 つの SID エントリを受信すると、より高いルータ ID で受信したプレフィックスが、プレフィックスに対応する SID として扱われます。プレフィックスは、上位のルータ ID によってアドバタイズされた SID エントリを使用してインストールされます。
  • システムが、1 つは OSPF プロトコル、他方は IS-IS プロトコルによる 2 つの SID エントリを受信すると、OSPF プロトコルによって受信した SID エントリが有効な SID として扱われます。プレフィックスは、OSPF プロトコルによって受信した SID エントリを使用してインストールされます。

  • 2 つのプレフィックスが同じ SID エントリでアドバタイズされると、上位のルータ ID によってアドバタイズされたプレフィックスが SID エントリを使用してインストールされ、もう一方のプレフィックスは SID エントリなしでインストールされます。

理想的な状況では、各プレフィックスに一意の SID エントリが割り当てられている必要があります。

OSPFv2 ノード SID のセグメント ルーティングの設定方法

OSPFv2 ノード SID を使用してセグメント ルーティングを設定するには、次の手順を実行します。

OSPF のセグメント ルーティングの設定

始める前に

セグメント ルーティングをサポートするように OSPF を設定する前に、最初にグローバル コンフィギュレーション モードでセグメント ルーティング機能を設定する必要があります。

手順の概要

  1. enable
  2. configure terminal
  3. segment-routing mpls
  4. connected-prefix-sid-map
  5. address-family ipv4
  6. 10.1.1.1/32 index 100 range 1
  7. exit-address-family

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

enable

例:


Device# enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:


Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

segment-routing mpls

例:


Device(config-sr)# segment-routing mpls

mpls データ プレーンを使用してセグメント機能を有効にします。

ステップ 4

connected-prefix-sid-map

例:


Device(config-srmpls)# connected-prefix-sid-map

ローカル プレフィックスと SID のアドレス ファミリ固有のマッピングを設定できるサブモードを開始します。

ステップ 5

address-family ipv4

例:


Device(config-srmpls-conn)# address-family ipv4

IPv4 アドレス プレフィックスを指定します。

ステップ 6

10.1.1.1/32 index 100 range 1

例:


Device(config-srmpls-conn-af)# 10.1.1.1/32 100 range 1

SID 100 にアドレス 1.1.1.1/32 を関連付けます。

ステップ 7

exit-address-family

例:


Device(config-srmpls-conn-af)# exit-address-family

アドレス ファミリを終了します。

OSPF ネットワークでのセグメント ルーティングの設定

始める前に

OSPF ネットワークでセグメント ルーティングを設定する前に、ネットワーク上で OSPF を有効にする必要があります。

手順の概要

  1. router ospf 10
  2. router-id<id>
  3. segment-routing mpls
  4. segment-routing area <area id> mpls
  5. show ip ospf 10 segment-routing

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

router ospf 10

例:


Device(config)# router ospf 10

OSPF モードを有効にします。

ステップ 2

router-id<id>

例:


Device(config-router)# router-id 10.0.0.0

OSPF ルートを設定します。

ステップ 3

segment-routing mpls

例:


Device(config-router)# segment-routing mpls

セグメント ルーティング MPLS モードを設定します。

ステップ 4

segment-routing area <area id> mpls

例:


Device(config-router) # segment-routing area 0 mpls

特定の領域にセグメント ルーティング MPLS モードを設定します。

ステップ 5

show ip ospf 10 segment-routing

例:


Device# show ip ospf 10 segment-routing

OSPF の下で SR を設定するための出力を示します。

次の例は、OSPF のセグメント ルーティングに対する show ip ospf segment-routing state コマンドからの出力を表しています。


Device#show ip ospf 10 segment-routing              

            OSPF Router with ID (10.0.0.1) (Process ID 10)

Global segment-routing state: Enabled

Segment Routing enabled:
           Area        Topology name   Forwarding
              0                 Base      MPLS
              1                 Base      MPLS

SR Attributes
    Prefer non-SR (LDP) Labels
    Do not advertise Explicit Null

Local MPLS label block (SRGB):
    Range: 16000 - 23999
    State: Created

Registered with SR App, client handle: 3
  Connected map notifications active (handle 0x4), bitmask 0x1
  Active policy map notifications active (handle 0x5), bitmask 0xC
Registered with MPLS, client-id: 100

Bind Retry timer not running
Adj Label Bind Retry timer not running

OSPF のプレフィックス SID の設定

ここでは、各インターフェイスでプレフィックス セグメント ID(SID)を設定する方法について説明します。

始める前に

セグメント ルーティングを対応するアドレス ファミリでイネーブルにする必要があります。

手順の概要

  1. enable
  2. configure terminal
  3. segment-routing mpls
  4. connected-prefix-sid-map
  5. address-family ipv4
  6. 10.1.1.1/32 index 100 range 1
  7. exit

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

enable

例:


Device# enable

特権 EXEC モードを有効にします。

ステップ 2

configure terminal

例:


Device# configure terminal

グローバル設定モードを開始します。

ステップ 3

segment-routing mpls

例:


Device(config)# segment-routing mpls

セグメント ルーティング MPLS モードを設定します。

ステップ 4

connected-prefix-sid-map

例:


Device(config-srmpls)# connected-prefix-sid-map

ローカル プレフィックスと SID のアドレス ファミリ固有のマッピングを設定できるサブモードを開始します。

ステップ 5

address-family ipv4

例:


Device(config-srmpls-conn)# address-family ipv4

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

ステップ 6

10.1.1.1/32 index 100 range 1

例:


Device(config-srmpls-conn-af)# 10.1.1.1/32 100 range 1

SID 100 にアドレス 1.1.1.1/32 を関連付けます。

ステップ 7

exit

例:


Device(config-router)# exit

セグメント ルーティング モードを終了し、コンフィギュレーション端末モードに戻ります。

プレフィックス属性 N-flag-clear の設定

OSPF は、その不透明 LSA に拡張プレフィックス TLV を介してプレフィックス SID をアドバタイズします。これはプレフィックスのフラグを伝送します。そのうちの 1 つは N フラグ(ノード)で、プレフィックスに沿って送信されたトラフィックが、LSA を発信するルータ宛てであることを示します。このフラグは通常、ルータのループバックのホスト ルートをマークします。

手順の概要

  1. enable
  2. configure terminal
  3. interface loopback3
  4. ip ospf prefix-attributes n-flag-clear

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

enable

例:


Device# enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:


Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

interface loopback3

例:


Device(config)# interface loopback3

インターフェイス ループバックを指定します。

ステップ 4

ip ospf prefix-attributes n-flag-clear

例:


Device(config-if)# ip ospf prefix-attributes n-flag-clear

プレフィックス N-flag をクリアします。

OSPF での明示的ヌル属性の設定

penultimate-hop-popping(PHP)を無効にし、明示的ヌル ラベルを追加するには、explicit-null オプションを指定する必要があります。このオプションを指定すると、OSPF は、拡張プレフィックス SID TLV の E フラグをその LSA に設定します。

デフォルトでは、ループバック アドレスに関連付けられたプレフィックス SID をアドバタイズするときに、OSPF によって E-flag(明示的ヌル フラグ)と呼ばれるフラグが 0 に設定されます。このフラグを設定するには、明示的な設定を追加します。

手順の概要

  1. enable
  2. configure terminal
  3. segment-routing mpls
  4. set-attributes
  5. address-family ipv4
  6. explicit-null
  7. exit-address-family

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

enable

例:


Device# enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:


Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

segment-routing mpls

例:


Device(config)# segment-routing mpls

セグメント ルーティング MPLS モードを設定します。

ステップ 4

set-attributes

例:


Device(config-srmpls)# set-attributes

属性を設定します。

ステップ 5

address-family ipv4

例:


Device(config-srmpls-attr)# address-family ipv4

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

ステップ 6

explicit-null

例:


Device(config-srmpls-attr-af)# explicit-null

明示的ヌルを指定します。

ステップ 7

exit-address-family

例:


Device(config-srmpls-attr-af)# exit-address-family

アドレス ファミリを終了します。

OSPF のセグメント ルーティング Label Distribution Protocol 優先順位の設定

手順の概要

  1. enable
  2. configure terminal
  3. segment-routing mpls
  4. set-attributes
  5. address-family ipv4
  6. sr-label-preferred
  7. exit-address-family

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

enable

例:


Device# enable

特権 EXEC モードを有効にします。

  • パスワードを入力します(要求された場合)。

ステップ 2

configure terminal

例:


Device# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 3

segment-routing mpls

例:


Device(config)# segment-routing mpls

セグメント ルーティング MPLS モードを設定します。

ステップ 4

set-attributes

例:


Device(config-srmpls)# set-attributes

属性を設定します。

ステップ 5

address-family ipv4

例:


Device(config-srmpls-attr)# address-family ipv4

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

ステップ 6

sr-label-preferred

例:


Device(config-srmpls-attr-af)# sr-label-preferred

LDP より優先される SR ラベルを指定します。

ステップ 7

exit-address-family

例:


Device(config-srmpls-attr-af)# exit-address-family

アドレス ファミリを終了します。

OSPF SRMS の設定

次のコマンドは、OSPF SRMS を有効にして、OSPF がローカル マッピング エントリをアドバタイズできるようにします。OSPF は、SRMS ライブラリにリモート エントリを送信しません。ただし、OSPF は、ローカルに設定されたマッピング エントリのみに基づいて計算される SRMS アクティブ ポリシーを使用します。


[no] segment-routing prefix-sid-map advertise-local 

OSPF SRMS クライアントの設定

デフォルトでは、OSPF SRMS クライアント モードが有効になっています。OSPF は、常に SRMS に LSA を通じて受信したリモート プレフィックス SID マッピング エントリを送信します。SRMS アクティブ ポリシーは、ローカルおよびリモートの両方のマッピング エントリに基づいて計算されます。

次のコマンドを実行すると、プレフィックス SID マッピング クライアント機能が無効になります。これは受信側で設定されます。


segment-routing prefix-sid-map receive [disable]