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

OSPF について

Open Shortest Path First(OSPF)は、Internet Engineering Task Force(IETF)の OSPF ワーキング グループによって開発された内部ゲートウェイ プロトコル(IGP)です。OSPF は特に IP ネットワーク向けに設計されており、IP サブネット化、および外部から取得したルーティング情報のタギングをサポートしています。OSPF を使用するとパケット認証も可能になり、パケットを送受信するときに IP マルチキャストが使用されます。

OSPF プロトコルのセグメント ルーティング設定は、プロセス レベルまたはエリア レベルで適用できます。プロセス レベルでセグメント ルーティングを設定すると、すべてのエリアで有効になります。ただし、エリア レベルごとに有効または無効にすることもできます。

OSPF プロトコルでのセグメント ルーティングは、次をサポートしています。

  • OSPFv2 のコントロール プレーン

  • マルチエリア

  • ループバック インターフェイス上のホスト プレフィックスの IPv4 プレフィックス SID

  • 隣接関係用の隣接関係 SID

隣接関係 SID のアドバタイズメント

OSPF は、セグメント ルーティング隣接関係 SID のアドバタイズメントをサポートしています。隣接関係セグメント識別子(Adj-SID)は、セグメント ルーティングにおけるルータ隣接関係を表します。

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

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

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

OSPFv2 は、ループバック インターフェイスに関連付けられたアドレスのプレフィックス SID のアドバタイズをサポートします。これを実現するために、OSPF は、不透明な拡張プレフィックス LSA で拡張プレフィックス サブ TLV を使用します。OSPF がネイバーからこの LSA を受信すると、SR ラベルは、拡張プレフィックス サブ TLV に存在する情報に基づいて、受信したプレフィックスに対応する RIB に追加されます。

設定では、セグメント ルーティングを OSPF で有効にする必要があり、OSPF で設定されたループバック インターフェイスに対応して、セグメント ルーティング モジュールでプレフィックス-SID マッピングが必要です。


(注)  


SID は、ループバック アドレスに対してのみ、またエリア内およびエリア間プレフィックス タイプに対してのみアドバタイズされます。外部プレフィックスまたは NSSA プレフィックスの SID 値はアドバタイズされません。

エリア間のプレフィックス伝播

エリア境界を越えたセグメント ルーティング サポートを提供するには、エリア間で SID 値を伝播するために OSPF が必要です。OSPF は、エリア間のプレフィックス到達可能性をアドバタイズするときに、プレフィックスの SID がアドバタイズされているかどうかを確認します。通常、SID 値はルータから取得され、送信元エリアのプレフィックスへの最適なパスに寄与します。この場合、OSPF はその SID を使用してエリア間でアドバタイズを行います。SID 値がエリア内のベスト パスに寄与するルータによってアドバタイズされない場合、OSPF は送信元エリア内の他のルータからの SID 値を使用します。

セグメント ルーティングのグローバル範囲の変更

OSPF は、SID/ラベル範囲 TLV のアドバタイズに関して、そのセグメント ルーティング機能をアドバタイズします。OSPFv2 では、SID/ラベル範囲 TLV はルータ情報 LSA で伝えられます。

セグメント ルーティングのグローバル範囲設定は、「segment-routing mpls」設定の下にあります。OSPF プロセスが来たら、segment-routing からグローバル範囲の値を取得し、その後の変更はそれに伝播する必要があります。

OSPF セグメント ルーティングが設定されている場合、OSPF は、OSPF セグメント ルーティングの動作状態を有効にする前に、セグメント ルーティング モジュールとのインタラクションをリクエストする必要があります。SRGB 範囲が作成されていない場合、OSPF は有効になりません。SRGB 変更イベントが発生した場合、OSPF は、そのサブブロック エントリで対応する変更を行います。

SID エントリの競合処理

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

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

  • 1 つのプレフィックスに複数の SID:同じプレフィックスが異なる SID を持つ複数の送信元によってアドバタイズされる場合、OSPF はそのプレフィックスのラベルのないパスをインストールします。OSPF は、到達可能なルータからの SID のみを考慮し、到達不能なルーターからの SID は無視します。1 つのプレフィックスに対して複数の SID がアドバタイズされると、競合と見なされ、そのプレフィックスの接続領域に SID はアドバタイズされません。同様のロジックは、バックボーン エリアと非バックボーン エリアの間でエリア間プレフィックスを伝搬するときにも使用されます。

  • SID の範囲外:SID 範囲に収まらない SID の場合、RIB の更新時にラベルは使用されません。

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

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

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

MPLS 転送は、IPIP/GRE トンネルを終端するインターフェイスではサポートされていません。

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

セグメント ルーティングを OSPFv2 プロトコルで設定します。

始める前に

OSPFv2 でセグメント ルーティングを設定する前に、次の条件が満たされていることを確認してください。

  • OSPFv2 機能が有効になっている。

  • セグメント ルーティング機能が有効になっている。

  • セグメント ルーティングが OSPF で有効になっている。

手順

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

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

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

ステップ 2

[no]router ospf process

例:

switch(config)# router ospf test

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

ステップ 3

segment-routing

例:

switch(config-router)# segment-routing mpls

OSPF でのセグメント ルーティング機能を設定します。

OSPF ネットワークでのセグメント ルーティングの設定:エリア レベル

始める前に

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

手順

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

ステップ 1

router ospf process

例:

switch(config)# router ospf test

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

ステップ 2

area <area id> segment-routing [mpls | disable]

例:

switch(config-router)# area 1 segment-routing mpls 

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

ステップ 3

[no]area <area id> segment-routing [mpls | disable]

例:

switch(config-router)#area 1 segment-routing disable 

指定されたエリアのセグメント ルーティング mpls モードを無効にします。

ステップ 4

show ip ospf プロセス segment-routing

例:

switch(config-router)# show ip ospf test segment-routing

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

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

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

始める前に

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

手順

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

ステップ 1

configure terminal

例:

switch# configure terminal

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

ステップ 2

[no]router ospf process

例:

switch(config)# router ospf test

OSPF を設定します。

ステップ 3

segment-routing

例:

switch(config-router)# segment-routing
switch(config-sr)#mpls
switch(config-sr-mpls)#

OSPF でのセグメント ルーティング機能を設定します。

ステップ 4

interface loopback interface_number

例:

switch(config-sr-mpls)# Interface loopback 0  

OSPF が有効になっているインターフェイスを指定します。

ステップ 5

ip address 1.1.1.1/32

例:

switch(config-sr-mpls)# ip address 1.1.1.1/32

ospf インターフェイスで設定された IP アドレスを指定します。

ステップ 6

ip router ospf 1 area 0

例:

switch(config-sr-mpls)# ip router ospf 1 area 0

エリア内のインターフェイスで有効になっている OSPF を指定します。

ステップ 7

segment-routing

例:

switch(config-router)#segment-routing
(config-sr)#mpls

SR モジュールの下でプレフィックス SID マッピングを設定します。

ステップ 8

connected-prefix-sid-map

例:

switch(config-sr-mpls)# connected-prefix-sid-map
switch(config-sr-mpls-conn-pfxsid)#

セグメント ルーティング モジュールの下でプレフィックス SID マッピングを設定します。

ステップ 9

address-family ipv4

例:

switch(config-sr-mpls-conn-pfxsid)# address-family ipv4
switch(config-sr-mpls-conn-pfxsid-af)#

OSPF インターフェイスで設定されている IPv4 アドレス ファミリを指定します。

ステップ 10

1.1.1.1/32 index 10

例:

switch(config-sr-mpls-conn-af)# 1.1.1.1/32 index 10

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

ステップ 11

exit

例:

switch(config-sr-mpls-conn-af)# exit

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

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

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

手順

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

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

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

ステップ 2

interface loopback3

例:

switch(config)# interface loopback3

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

ステップ 3

ip ospf prefix-attributes n-flag-clear

例:

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

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

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

この例は、OSPF のプレフィックス SID の設定を示しています。
Router ospf 10
     Segment-routing mpls    
Interface loop 0
    Ip address 1.1.1.1/32
    Ip router ospf 10 area 0
Segment-routing
   Mpls
      connected-prefix-sid-m  
          address-family ipv4
              1.1.1.1/32 index 10

トラフィック エンジニアリング用のセグメント ルーティングの設定

トラフィック エンジニアリング用のセグメント ルーティングについて

トラフィック エンジニアリング用のセグメント ルーティング(SR-TE)は、送信元と宛先のペア間のトンネルを通じて行われます。トラフィック エンジニアリング用のセグメント ルーティングでは、送信元ルーティングの概念が使用されます。送信元はパスを計算し、パケット ヘッダーでセグメントとしてエンコードします。トラフィック エンジニアリング(TE)トンネルは、トンネルの入力とトンネルの宛先との間でインスタンス化された TE LSP のコンテナです。TE トンネルは、同じトンネルに関連付けられた 1 つ以上の SR-TE LSP をインスタンス化できます。

トラフィック エンジニアリング用のセグメント ルーティング(SR-TE)では、ネットワークはアプリケーション単位およびフロー単位の状態を維持する必要はありません。代わりに、パケットで提供されている転送指示に従うだけです。

SR-TE は、すべてのセグメント レベルで ECMP を使用することにより、従来の MPLS-TE ネットワークよりも効果的にネットワーク帯域幅を利用します。単一のインテリジェント ソースを使用し、残りのルータをネットワーク経由で必要なパスを計算するタスクから解放します。

SR-TE ポリシー

トラフィック エンジニアリングを実現するためのセグメント ルーティング(SR-TE)では、ネットワークを介してトラフィックを誘導する「ポリシー」を使用します。SR-TE ポリシーは、セグメントまたはラベルのセットを含むコンテナです。このセグメントのリストは、ステートフル PCE であるオペレータによってプロビジョニングされます。ヘッドエンドは、SR-TE ポリシ-を介して伝送されるトラフィック フローに、対応する MPLS ラベル スタックを付します。SR-TE ポリシー パスに沿った各通過ノードは、パケットが最終的な宛先に到達するまで、着信トップ ラベルを使用してネクストホップを選択し、ラベルをポップまたはスワップし、ラベル スタックの残りの部分を使用して次のノードにパケットを転送します。

SR-TE ポリシーは、タプル(カラー、エンドポイント)によって一意に識別されます。カラーは 32 ビットの数値で表され、エンドポイントは IPv4 です。すべての SR-TE ポリシーにはカラー値があります。同じノード ペア間の各ポリシーには、一意のカラー値が必要です。ポリシーに異なるカラーを選択することで、同じ 2 つのエンドポイント間で複数の SR-TE ポリシーを作成できます。

Cisco Nexus 9000 シリーズ スイッチは、次の 2 種類の SR-TE ポリシーをサポートしています。

  • ダイナミック SR-TE ポリシー:SR-TE ポリシー構成またはオンデマンド カラー構成でダイナミック パス プリファレンスを構成すると、パス計算エンジン(PCE)が宛先アドレスへのパスを計算します。PCE でのダイナミック パス計算の結果、ヘッドエンド SR-TE ポリシーに適用されるセグメント/ラベルのリストが生成されます。したがって、トラフィックは、SR-TE ポリシーが保持するセグメントにヒットすることによってネットワークを介してルーティングされます。

  • 明示 SR-TE ポリシー:明示パスはラベルのリストであり、明示パスのノードまたはリンクを示します。この機能をイネーブルにするには、explicit-path コマンドを使用します。このコマンドにより、明示パスを作成し、パスを指定するためのコンフィギュレーション サブモードを開始できます。

SR-TE ポリシー パス

SR-TE ポリシー パスは、セグメント ID(SID)リストと呼ばれるパスを指定するセグメントのリストです。すべての SR-TE ポリシーは、動的パスまたは明示パスのいずれかである 1 つ以上の候補パスで構成されます。SR-TE ポリシーは 1 つのパスをインスタンス化します。この選択されたパスが優先される有効な候補パスとなります。

動的パス オプションを使用してオンデマンドでカラーを追加し、同じカラーとエンドポイントに対して明示的なパス オプションを使用して明示的なポリシー構成を追加することもできます。この場合、単一のポリシーがヘッドエンドで作成され、設定された優先番号が最も高いパスがトラフィックの転送に使用されます。

SR-TE ポリシー パスの計算には、以下の 2 つの方法が使用されます。

  • 動的パス:オンデマンド カラー構成またはポリシー構成でパス プリファレンスを構成するときに動的 PCEP オプションを指定すると、パス計算はパス計算エンジン(PCE)委任されます。

  • 明示的なパス:このパスは明示的に指定された SID リストまたは SID リストのセットです。

Cisco NX-OS リリース 10.2(2)F 以降では、SR-TE ポリシーをロックダウンまたはシャットダウンするか、その両方を実行すること、 SR-TE ポリシーまたはオンデマンド カラー テンプレートのシャットダウン設定を行うこと、特定の優先順位を SRTE ポリシーのアクティブ パス オプションに強制すること、または、すべてまたは特定の SRTE ポリシーのパスの再最適化を強制することができます。この機能は、Cisco Nexus 9300-EX、9300-FX、9300-FX2、9300-GX、および N9K-C9332D-GX2B プラットフォーム スイッチでサポートされています。詳細については、SR-TE 手動プレファレンス選択の設定を参照してください。

リリース 7.0(3)I7(1) から現在のリリースまでのさまざまな機能をサポートする Cisco Nexus 9000 スイッチの詳細については、Nexus スイッチ プラットフォーム サポート マトリックスを参照してください。

アフィニティおよびディスジョイント制約について

アフィニティ制約:パス計算エンジン(PCE)にアドバタイズされるリンクには、属性を割り当てることができます。SRTE プロセスは、アフィニティ マップとインターフェイス レベルの構成をホストします。ルーティング プロトコル (IGP) はインターフェイスの更新を登録し、SRTE は IGP にインターフェイスの更新を通知します。IGP tlv は BGP に渡され、外部ピアにアドバタイズされます。アフィニティ制約には 3 つのタイプがあります。

  • exclude-any: 指定されたアフィニティ カラーのいずれかを持つリンクをパスが通過してはならないことを指定します。

  • include-any: 指定されたアフィニティ カラーのいずれかを持つリンクのみをパスが通過しなければならないことを指定します。したがって、指定されたアフィニティ カラーを持たないリンクを使用してはなりません。

  • include-all: 指定されたアフィニティ カラーをすべて持つリンクのみをパスが通過しなければならないことを指定します。したがって、指定されたアフィニティ カラーのすべてを持たないリンクを使用してはなりません。

ディスジョイント制約 - PCE にアドバタイズされる SR-TE ポリシーにディスジョイント制約を割り当てることができます。次に、PCE は、同じアソシエーション グループ ID およびディスジョイントのディスジョイントネス タイプを共有するポリシーに、ディスジョイント パスを提供します。

Cisco NX-OS リリース 9.3(1) は、次のディスジョイント パス レベルをサポートします。

  • リンク:パスは異なるリンクを通過します(ただし、同じノードを通過する場合があります)。

  • ノードのディスジョイントネス:パスは異なるリンクを通過しますが、同じノードを通過する場合があります。

セグメント ルーティング オン デマンド ネクスト ホップ

オン デマンド ネクスト ホップ(ODN)は、BGP ダイナミック SR-TE 機能を活用し、要件に基づいてエンド ツー エンド パスを検索してダウンロードするためのパス計算(PCE)機能を追加します。ODN は定義された BGP ポリシーに基づいて SR-TE 自動トンネルをトリガーします。次の図に示すように、ToR1 と AC1 間のエンド ツー エンド パスは、IGP メトリックに基づいて両端から確立できます。ODN のワークフローは次のようにまとめられます。

図 1. ODN 操作

SR-TE に関する注意事項と制限事項

SR-TE には、次の注意事項と制限事項 があります。

  • IPv4 および IPv6 オーバーレイの両方の SR-TE ODN がサポートされています。

  • SR-TE ODN は、IS-IS アンダーレイでのみサポートされます。

  • 転送では、再帰ネクスト ホップがバインド SID を持つルートに解決される場合、再帰ネクスト ホップを持つルートはサポートされません。

  • 転送は、同じルートに対するバインディング ラベルを持つパスとバインディング ラベルのないパスの混合をサポートしていません。

  • アフィニティとディスジョイントの制約は、動的な PCEP オプションを持つ SR-TE ポリシーにのみ適用されます。

  • XTC は、同じグループ内でディスジョイントになっている 2 つのポリシーのみをサポートします。

  • SR-TE アフィニティ インターフェイスを構成する場合、インターフェイス範囲はサポートされません。

  • プリファレンスは、動的 PCEP と明示的なセグメント リストの両方を同じプリファレンスに対し一緒に設定することはできません。

  • ポリシーごとに動的 PCEP オプションを持つことができるプリファレンスは 1 つだけです。

  • 明示的なポリシーについては、同じプリファレンスで ECMP パスを構成する場合、最初のホップ(NHLFE)が両方の ECMP パスで同じであるなら、ULB はスイッチングに 1 つのパスのみをインストールします。このことは、NHLFE が両方で同じであるため、両方の ECMP パスが同じ SRTE FEC を構築するので発生します。

  • Cisco NX-OS リリース 9.3(1) では、アフィニティ設定による非保護モードは PCE(XTC)でサポートされていません。

  • Cisco NX-OS リリース 9.3(3) 以降、SR-TE ODN、ポリシー、ポリシー パス、およびアフィニティとディスジョイントの制約は、Cisco Nexus 9364C-GX、Cisco Nexus 9316D-GX、および Cisco Nexus 93600CD-GX スイッチでサポートされています。

  • Cisco NX-OS リリース 10.2(2)F 以降、SR-TE ポリシーの新しい show コマンドがいくつか導入されました。また、既存の SR-TE ポリシー コマンドの一部にオートコンプリート機能が提供され、使いやすさが向上しています。この機能は、Cisco Nexus 9300-EX、9300-FX、9300-FX2、9300-GX、および N9K-C9332D-GX2B プラットフォーム スイッチでサポートされています。


(注)  


リリース 7.0(3)I7(1) から現在のリリースまでのさまざまな機能をサポートする Cisco Nexus 9000 スイッチの詳細については、Nexus スイッチ プラットフォーム サポート マトリックスを参照してください。


SR-TE の設定

トラフィック エンジニアリング用にセグメント ルーティングを設定することができます。

始める前に

mpls セグメント ルーティング機能が有効になっていることを確認する必要があります。

手順

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

ステップ 1

configure terminal

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

ステップ 2

segment-routing

セグメントルーティング モードを開始します。

ステップ 3

traffic-engineering

トラフィック エンジニアリング モードに入ります。

ステップ 4

encapsulation mpls source ipv4 tunnel_ip_address

SR-TE トンネルの送信元アドレスを設定します。

ステップ 5

pcc

PCC モードに入ります。

ステップ 6

source-address ipv4 pcc_source_address

PCC の送信元アドレスを設定する

ステップ 7

pce-address ipv4 pce_source_address precedence num

PCE の IP アドレスを設定します。最も小さい番号の PCE が優先され、その他はバックアップとして使用されます。

ステップ 8

on-demand color color_num

オンデマンド モードに入り、カラーを設定します。

ステップ 9

candidate-paths

ポリシーの候補パスを指定します。

ステップ 10

preference preference_number

候補パスの優先順位を指定します。

ステップ 11

dynamic

パス オプションを指定します。

ステップ 12

pcep

PCE から実行する必要があるパス計算を指定します。

アフィニティ制約の設定

SR-TE ポリシーに対するアフィニティ制約を設定できます。

始める前に

mpls セグメント ルーティング機能が有効になっていることを確認する必要があります。

手順

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

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

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

ステップ 2

segment-routing

例:

switch(config)# segment-routing
switch(config-sr)#

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

ステップ 3

traffic-engineering

例:

switch(config-sr)# traffic-engineering
switch(config-sr-te)#

トラフィック エンジニアリング モードに入ります。

ステップ 4

pcc

PCC モードに入ります。

ステップ 5

source-address ipv4 pcc_source_address

PCC の送信元アドレスを設定する

ステップ 6

pce-address ipv4 pce_source_address precedence num

PCE の IP アドレスを設定します。

最も小さい番号の PCE が優先され、その他はバックアップとして使用されます。

ステップ 7

affinity-map

例:

switch(config-sr-te)#affinity-map
switch(config-sr-te-affmap)#

アフィニティマップ コンフィギュレーション モードを設定します。

ステップ 8

color name bit-position position

例:

switch(config-sr-te-affmap)# color red bit-position 2
switch(config-sr-te-affmap)#

アフィニティ ビットマップ内の特定のビット位置へのユーザー定義名のマッピングを構成します。

ステップ 9

interface interface-name

例:

Enter SRTE interface config mode
switch(config-sr-te-if)#interface eth1/1
switch(config-sr-te-if)#

インターフェイスの名前を指定します。これは、アフィニティ ビットマップの特定のビットを参照するアフィニティ マッピング名です。

ステップ 10

affinity

例:

switch(config-sr-te-if)# affinity
switch(config-sr-te-if-aff)#
switch(config-sr-te-if-aff)# color red
switch(config-sr-te-if-aff)#

インターフェイスにアフィニティ カラーを追加します。

ステップ 11

policy name | on-demand color color_num

例:

switch(config-sr-te)# on-demand color 211

または

switch(config-sr-te-color)# policy test_policy

ポリシーを設定します。

ステップ 12

color color end-point address

例:

switch(config-sr-te-pol)#color 200 endpoint 2.2.2.2

ポリシーのカラーとエンド ポイントを設定します。これは、「ポリシー名」設定モードを使用してポリシーを設定するときに必要です。

ステップ 13

candidate-path

例:

switch(config-sr-te-color)# candidate-paths
switch(cfg-cndpath)#

ポリシーの候補パスを指定します。

ステップ 14

preference preference_number

例:

switch(cfg-cndpath)# preference 100
switch(cfg-pref)#

候補パスの優先順位を指定します。

ステップ 15

dynamic

例:

switch(cfg-pref)# dynamic
switch(cfg-dyn)#

パス オプションを指定します。

ステップ 16

pcep

例:

switch(cfg-dyn)# pcep
switch(cfg-dyn)#

ヘッドエンドが PCEP を使用して、それ自体からセグメント ルーティングのポリシーのエンド ポイントまでのパスを計算するように PCE に要求することを指定します。

ステップ 17

constraints

例:

switch(cfg-dyn)# constraints
switch(cfg-constraints)#

候補パス優先制約モードに入ります。

ステップ 18

affinity

例:

switch(cfg-constraints)# affinity
switch(cfg-const-aff)#

ポリシーのアフィニティ制約を指定します。

ステップ 19

exclude-any |include-all | include-any

例:

switch(cfg-const-aff)# include-any
switch(cfg-aff-inclany)#

アフィニティ制約タイプを指定します。次のアフィニティ タイプを使用できます。

  • exclude-any - 指定されたアフィニティ カラーのいずれかを持つリンクをパスが通過してはならないことを指定します。

  • include-any - 指定されたアフィニティ カラーのいずれかを持つリンクのみをパスが通過する必要があることを指定します。

  • include-all - 指定されたアフィニティ カラーをすべて持つリンクのみをパスが通過する必要があることを指定します。

ステップ 20

color color_name

例:

switch(cfg-aff-inclany)# color blue
switch(cfg-aff-inclany)# 

アフィニティ カラーの定義を指定します。

ディスジョイント パスの構成

SR-TE ポリシーに対するディスジョイント制約を設定できます。

始める前に

mpls セグメント ルーティング機能が有効になっていることを確認する必要があります。

手順

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

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

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

ステップ 2

segment-routing

例:

switch(config)# segment-routing
switch(config-sr)# 

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

ステップ 3

traffic-engineering

例:

switch(config-sr)# traffic-engineering
switch(config-sr-te)#

トラフィック エンジニアリング モードに入ります。

ステップ 4

pcc

PCC モードに入ります。

ステップ 5

source-address ipv4 pcc_source_address

PCC の送信元アドレスを設定する

ステップ 6

pce-address ipv4 pce_source_address precedence num

PCE の IP アドレスを設定します。

最も小さい番号の PCE が優先され、その他はバックアップとして使用されます。

ステップ 7

policy name | on-demand color color_num

例:

switch(config-sr-te)# on-demand color 211

または

switch(config-sr-te-color)# policy test_policy

ポリシーを設定します。

ステップ 8

color color end-point address

例:

switch2(config-sr-te-pol)# color 200 endpoint 2.2.2.2

ポリシーのカラーとエンド ポイントを設定します。これは、「ポリシー名」設定モードを使用してポリシーを設定するときに必要です。

ステップ 9

candidate-path

例:

switch(config-sr-te-color)# candidate-paths
switch(cfg-cndpath)#

ポリシーの候補パスを指定します

ステップ 10

preference preference_number

例:

switch(cfg-cndpath)# preference 100
switch(cfg-pref)#

候補パスの優先順位を指定します。

ステップ 11

dynamic

例:

switch(cfg-pref)# dynamic
switch(cfg-dyn)#

パス オプションを指定します。

ステップ 12

pcep

例:

switch(cfg-dyn)# pcep
switch(cfg-dyn)#

ヘッドエンドが PCEP を使用して、それ自体からセグメント ルーティングのポリシーのエンド ポイントまでのパスを計算するように PCE に要求することを指定します。

ステップ 13

constraints

例:

switch(cfg-dyn)# constraints
switch(cfg-constraints)#

候補パス優先制約モードに入ります。

ステップ 14

association-group

例:

switch(cfg-constraints)# association-group
switch(cfg-assoc)#

アソシエーション グループ タイプを指定します。

ステップ 15

disjoint

例:

switch(cfg-assoc)# disjoint
switch(cfg-disj)# 

ディスジョイントネス アソシエーション グループに属するパスを指定します。

ステップ 16

type | link | node

例:

switch(config-if)#type link

ディスジョイントネス グループ タイプを指定します。

ステップ 17

id number

例:

switch(config-if)#id 1

アソシエーション グループの識別子を指定します。

SR-TE の設定例

このセクションの例は、アフィニティおよびディスジョイントの設定を示しています。

この例は、ユーザー定義名から管理グループへのマッピングを示しています。
segment-routing
 traffic-eng
  affinity-map
   color green bit-position 0
   color blue bit-position 2
   color red bit-position 3
この例では、eth1/1 の隣接のアフィニティ リンクの色が赤と緑、eth1/2 の隣接のアフィニティ リンクの色が緑であることを示しています。
segment-routing
 traffic-eng
  interface eth1/1
   affinity
    color red
    color green
  !
  interface eth1/2
   affinity
    color green
この例は、ポリシーのアフィニティ制約を示しています。
segment-routing
  traffic-engineering
    affinity-map
      color blue bit-position 0
      color red  bit-position 1
    on-demand color 10
      candidate-paths
        preference 100 
          dynamic
            pcep
          constraints
            affinity
              [include-any|include-all|exclude-any]
                color <col_name>
                color <col_name>
    policy new_policy
      color 201 endpoint 2.2.2.0
      candidate-paths
        preference 200 
          dynamic
            pcep
          constraints
            affinity
              include-all
                color red
この例は、ポリシーのディスジョイント制約を示しています。
segment-routing
 traffic-eng
  on-demand color 99
   candidate-paths
     preference 100
       dynamic
         pcep
       constraints
         association-group
           disjoint
             type link
             id 1

SR-TE ODN の設定例 - ユースケース

SR-TE の ODN を設定するには、次のステップを実行します。設定ステップを説明するため、次の図を参考として使用します。

図 2. 参照トポロジ
  1. PE1 から PE2 への IS-IS ポイントツーポイント セッションですべてのリンクを設定します。また、上記のトポロジーに従ってドメインを設定します。

  2. R1、R3、および R6 の IS-IS セッションに対して「リンク状態の配布」を有効にします。

    router isis 1
      net 31.0000.0000.0000.712a.00
      log-adjacency-changes
      distribute link-state
      address-family ipv4 unicast
        bfd
        segment-routing mpls
        maximum-paths 32
        advertise interface loopback0
  3. ルータ R1(ヘッドエンド)と R6(テールエンド)に VRF インターフェイスを設定します。

    R1 上の VRF 設定:
    interface Ethernet1/49.101
    encapsulation dot1q 201
      vrf member sr
      ip address 101.10.1.1/24
      no shutdown
     
    vrf context sr
      rd auto
      address-family ipv4 unicast
        route-target import 101:101
        route-target import 101:101 evpn
        route-target export 101:101
        route-target export 101:101 evpn
    router bgp 6500
      vrf sr
        bestpath as-path multipath-relax
        address-family ipv4 unicast
          advertise l2vpn evpn
  4. R6(テールエンド)での BGP コミュニティで VRF プレフィックスをタグ付けします。

    route-map color1001 permit 10
      set extcommunity color 1001
  5. R6(テールエンド)および R1(ヘッドエンド)上の BGP を有効にして VRF SR プレフィックスのアドバタイズと受信を行い、R6(テールエンド)上のコミュニティ設定とマッチングします。

    R6 < EVPN > R3 < EVPN > R1

    BGP の設定 R6:
    router bgp 6500
      address-family ipv4 unicast
         allocate-label all
      neighbor 53.3.3.3
        remote-as 6500
        log-neighbor-changes
        update-source loopback0
        address-family l2vpn evpn
          send-community extended
         route-map Color1001 out
          encapsulation mpls
     
    BGP の設定 R1:
    router bgp 6500
      address-family ipv4 unicast
         allocate-label all
      neighbor 53.3.3.3
        remote-as 6500
        log-neighbor-changes
        update-source loopback0
        address-family l2vpn evpn
          send-community extended
           encapsulation mpls
  6. R3 での BGP 構成と、R1、R3.abd での XTC による BGP LS の有効化

    BGP の設定 R3:
    router bgp 6500
      router-id 2.20.1.2
    address-family ipv4 unicast
    allocate-label all
    address-family l2vpn evpn
    retain route-target all
      neighbor 56.6.6.6
        remote-as 6500
        log-neighbor-changes
        update-source loopback0
        address-family l2vpn evpn
          send-community extended
           route-reflector-client
           route-map NH_UNCHANGED out
          encapsulation mpls
      neighbor 51.1.1.1
        remote-as 6500
        log-neighbor-changes
        update-source loopback0
        address-family l2vpn evpn
          send-community extended
          route-reflector-client
          route-map NH_UNCHANGED out
          encapsulation mpls
    neighbor 58.8.8.8
        remote-as 6500
        log-neighbor-changes
        update-source loopback0
        address-family link-state
     
    route-map NH_UNCHANGED permit 10
      set ip next-hop unchanged
    BGP の設定 R1:
    router bgp 6500
    neighbor 58.8.8.8
                  remote-as 6500
                   log-neighbor-changes
                   update-source loopback0
                   address-family link-state
    BGP の設定 R6: 

    outer bgp 6500
       neighbor 58.8.8.8
        remote-as 6500
           log-neighbor-changes
           update-source loopback0
           address-family link-state
  7. R1 で PCE および SR-TE トンネル設定を有効にします。

    segment-routing
      traffic-engineering
        pcc
          source-address ipv4 51.1.1.1
          pce-address ipv4 58.8.8.8
        on-demand color 1001
          metric-type igp