IS-IS プロトコル用のセグメント ルーティングの有効化

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

  • レベル 1、レベル 2、およびマルチレベルのルーティング

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

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

  • MPLS penultimate hop popping(PHP)と明示的な NULL シグナリング

ここでは、IS-IS 用のセグメント ルーティングを有効にする方法について説明します。

始める前に

ルータで IS-IS のセグメント ルーティングをイネーブルにする前に、ネットワークで MPLS Cisco IOS XR ソフトウェア機能をサポートする必要があります。


(注)  

ネットワークのトラフィック エンジニアリング部分にあるすべての IS-IS ルータ上で、次のタスク リストのコマンドを入力する必要があります。


手順

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

configure

ステップ 2

router isis instance-id

例:


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

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

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

metric-style wide [level {1 | 2 }]

例:


RP/0/RP0/CPU0:router(config-isis-af)# metric-style wide level 1

レベル 1 エリアでワイド リンク メトリックのみを生成して受け入れるようにルータを設定します。

ステップ 4

segment-routing mpls

例:


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

セグメント ルーティングは、次の操作で有効になります。

  • IS-IS がアクティブなすべてのインターフェイスで MPLS 転送が有効化される。

  • 転送プレーン内のすべての既知プレフィックス SID が、リモート ルータによってアドバタイズされた、またはローカルまたはリモート マッピング サーバを介して学習されたプレフィックス SID を使用してプログラミングされる。

  • ローカルで設定されたプレフィックス SID がアドバタイズされる。

ステップ 5

exit

例:


RP/0/RP0/CPU0:router(config-isis-af)# exit
RP/0/RP0/CPU0:router(config-isis)# exit
ステップ 6

commit

次のタスク

プレフィックス SID を設定します。

IS-IS 対応ループバック インターフェイスでのプレフィックス SID の設定

プレフィックス SID は、IP プレフィックスに関連付けられます。プレフィックス SID は、ラベルのセグメント ルーティング グローバル ブロック(SRGB)の範囲から手動で設定されます。プレフィックス セグメントは、その宛先への最短パスに沿ってトラフィックを誘導します。ノード SID は、特定のノードを識別する特別なタイプのプレフィックス SID です。ノードのループバック アドレスをプレフィックスとして使用して、ループバック インターフェイスの下に設定されます。

プレフィックス SID は、セグメント ルーティング ドメイン内でグローバルに一意です。

このタスクでは、IS-IS 対応ループバック インターフェイスでプレフィックス セグメント識別子(SID)のインデックスまたは絶対値を設定する方法について説明します。

始める前に

セグメント ルーティングが対応するアドレス ファミリで有効になっていることを確認します。

手順

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

configure

ステップ 2

router isis instance-id

例:


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

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

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

ステップ 3

interface Loopback instance

例:


RP/0/RP0/CPU0:router(config-isis)# interface Loopback0

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

ステップ 4

prefix-sid {index SID-index | absolute SID-value } [n-flag-clear ] [explicit-null ]

例:


RP/0/RP0/CPU0:router(config-isis-if-af)# prefix-sid index 1001


RP/0/RP0/CPU0:router(config-isis-if-af)# prefix-sid absolute 17001

インターフェイスのプレフィックス SID インデックスまたは絶対値を設定します。

SRGB + インデックスの下限に基づいてプレフィックス SID を作成するには、各ノードに index SID-index を指定します。

SRGB 内に特定のプレフィックス SID を作成するには、各ノードに absolute SID-value を指定します。

デフォルトでは、n-flag がプレフィックス SID に設定され、ノード SID であることを示します。特定のプレフィックス SID(たとえば、Anycast プレフィックス SID)の場合は、n-flag-clear キーワードを入力します。IS-IS は、プレフィックス SID サブ タイプ/長さ/値(TLV)に N フラグを設定しません。

penultimate-hop-popping(PHP)を無効にし、明示的なヌル ラベルを追加するには、explicit-null キーワードを入力します。IS-IS は、プレフィックス SID サブ TLV に E フラグを設定します。

ステップ 5

commit

プレフィックス SID 設定を確認します。

隣接関係 SID の設定

隣接関係 SID(Adj-SID)は、隣接ノードへの隣接関係に関連付けられています。隣接関係 SID は、トラフィックを特定の隣接関係に誘導します。隣接関係 SID はローカルな意味を持ち、それらを割り当てるノードでのみ有効です。

隣接関係 SID は、動的ラベルの範囲から動的に割り当てることも、ラベルのセグメント ルーティング ローカル ブロック(SRLB)の範囲から手動で設定することもできます。

動的に割り当てられる隣接関係 SID には特別な構成は必要ありませんが、いくつかの制限があります。

  • 動的に割り当てられた Adj-SID 値は、割り当てられるまで認識されず、情報が IGP によってフラッディングされるまでコントローラは Adj-SID 値を認識しません。

  • 動的に割り当てられた Adj-SID は永続的ではなく、リロードまたはプロセスの再起動後に再割り当てすることができます。

  • 各リンクには一意の Adj-SID が割り当てられているため、複数のリンクで同じ Adj-SID を共有することはできません。

手動で割り当てられた Adj-SID は、リロードおよび再起動後も永続的です。同じネイバーまたは異なるネイバーへの複数の隣接関係にプロビジョニングできます。Adj-SID が保護されることを指定できます。Adj-SID がプライマリ インターフェイスで保護されていて、バックアップ パスが利用可能な場合、バックアップ パスがインストールされます。デフォルトでは、手動 Adj-SID は保護されていません。

隣接関係 SID は、既存の IS-IS Adj-SID サブ TLV を使用してアドバタイズされます。S フラグと P フラグは、手動で割り当てられた Adj-SID に対して定義されています。


 0 1 2 3 4 5 6 7 
+-+-+-+-+-+-+-+-+
|F|B|V|L|S|P|   |
+-+-+-+-+-+-+-+-+

表 1. 隣接関係セグメント識別子(Adj-SID)のフラグ サブ TLV フィールド

フィールド

説明

S(セット)

このフラグは、同じ Adj-SID 値が複数のインターフェイスにプロビジョニングされている場合に設定されます。

P(永続的)

このフラグは、Adj-SID が永続的(手動割り当て)の場合に設定されます。

手動で割り当てられた Adj-SID は、ポイントツーポイント(P2P)インターフェイスでサポートされています。

ここでは、インターフェイスに Adj-SID を設定する方法について説明します。

始める前に

セグメント ルーティングが対応するアドレス ファミリで有効になっていることを確認します。

show mpls label table detail コマンドを使用して、SRLB の範囲を確認します。

手順

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

configure

ステップ 2

router isis instance-id

例:


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

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

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

ステップ 3

interface type interface-path-id

例:


RP/0/RP0/CPU0:router(config-isis)# interface GigabitEthernet0/0/0/7

インターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。

ステップ 4

point-to-point

例:


RP/0/RP0/CPU0:router(config-isis-if)# point-to-point

インターフェイスがポイントツーポイント インターフェイスになるように指定します。

ステップ 5

adjacency-sid {index adj-SID-index | absolute adj-SID-value } [protected ]

例:


RP/0/RP0/CPU0:router(config-isis-if-af)# adjacency-sid index 10


RP/0/RP0/CPU0:router(config-isis-if-af)# adjacency-sid absolute 15010

インターフェイスの Adj-SID インデックスまたは絶対値を設定します。

SRLB + インデックスの下限に基づいて Ajd-SID を作成するには、各リンクに index adj-SID-index を指定します。

SRLB 内に特定の Ajd-SID を作成するには、各リンクに absolute adj-SID-value を指定します。

Adj-SID が protected であるかを指定します。各プライマリ パスについて、Adj-SID がプライマリ インターフェイスで保護されていて、バックアップ パスが利用可能な場合、バックアップ パスがインストールされます。デフォルトでは、手動 Adj-SID は保護されていません。

ステップ 6

commit

Adj-SID 設定を確認します。

ラベルが MPLS Forwarding Information Base(LFIB)に追加されていることを確認します。


RP/0/RP0/CPU0:router# show mpls forwarding labels 15010
Mon Jun 12 02:50:12.172 PDT
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ------------
15010  Pop         SRLB (idx 10)      Gi0/0/0/3    10.0.3.3        0           
       Pop         SRLB (idx 10)      Gi0/0/0/7    10.1.0.5        0           
       16004       SRLB (idx 10)      Gi0/0/0/7    10.1.0.5        0            (!)
       16004       SRLB (idx 10)      Gi0/0/0/3    10.0.3.3        0            (!)

帯域幅ベースのローカル UCMP の設定

帯域幅ベースのローカル非等コスト マルチパス(UCMP)を使用すると、ローカル リンクの帯域幅に基づいて、等コスト マルチパス(ECMP)のパス間で UCMP 機能をローカルで有効にできます。

帯域幅ベースのローカル UCMP は、IS-IS によってインストールされたプレフィックス、セグメント ルーティング隣接関係 SID、およびセグメント ルーティング ラベル クロスコネクトに対して実行され、有効な帯域幅を持つ物理インターフェイスまたは仮想インターフェイスでサポートされます。

たとえば、リンクまたはライン カードのアップ/ダウン イベントのためにバンドル インターフェイスの容量が変化した場合、利用可能なプロビジョニング済みバンドル メンバーに関係なく、トラフィックは引き続き影響を受けるバンドル インターフェイスを使用します。障害により一部のバンドル メンバーが利用できなかった場合、この動作によりトラフィックでバンドル インターフェイスが過負荷状態になる可能性があります。バンドル容量の変更に対処するために、帯域幅ベースのローカル UCMP は、バンドル容量が変更されたときにローカル リンクの帯域幅を使用してトラフィックの負荷を分散します。

始める前に

手順

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

configure

ステップ 2

router isis instance-id

例:


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

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

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

ステップ 3

apply-weight ecmp-only bandwidth

例:


RP/0/RP0/CPU0:router(config-isis-af)# apply-weight ecmp-only bandwidth

ローカル リンクの帯域幅に基づいて、ECMP パス間で UCMP 機能をローカルで有効にします。

ステップ 4

commit