SR-TE ポリシーの設定

トラフィック エンジニアリングを実現するためのセグメント ルーティング(SR-TE)では、ネットワークを介してトラフィックを誘導する「ポリシー」を使用します。SR-TE ポリシー パスは、セグメント ID(SID)リストと呼ばれるパスを指定するセグメントのリストとして表されます。各セグメントは、送信元から宛先までのエンドツーエンドのパスであり、ネットワークのルータに、IGP によって計算された最短パスに従うのではなく指定されたパスに従うように指示します。パケットが SR-TE ポリシーへと誘導される場合、SID リストはヘッドエンドによってパケットにプッシュされます。残りのネットワークは、SID リストに埋め込まれた命令を実行します。

SR-TE ポリシーは、順序付きリスト(ヘッドエンド、カラー、エンドポイント)として識別されます。

  • ヘッドエンド:SR-TE ポリシーがインスタンス化される場所

  • カラー:同じノード ペアへの 2 つ以上のポリシーを区別する数値(ヘッドエンド - エンドポイント)

  • エンドポイント:SR-TE ポリシーの宛先

すべての SR-TE ポリシーにはカラー値があります。同じノード ペア間の各ポリシーには、一意のカラー値が必要です。

SR-TE ポリシーは、1 つ以上の候補パスを使用します。候補パスは、単一セグメント リスト(SID リスト)または重み付け SID リストのセット(重み付け等コスト マルチパス(WECMP))です。候補パスは動的または明示的のどちらかです。

動的パスは、最適化の目的と一連の制約に基づいています。ヘッドエンドはソリューションを計算し、結果として SID リストまたは SID リストのセットを生成します。トポロジが変更されると、新しいパスが計算されます。ヘッドエンドにトポロジーに関する十分な情報がない場合、ヘッドエンドは計算をパス計算エンジン(PCE)に委任できます。PCE として XTC を設定する詳細については、「IOS XR トラフィック コントローラ(XTC)の設定」の章を参照してください。

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

SR-TE ポリシーは、RIB/FIB 内で単一の(選択された)パスを開始します。これが優先される有効な候補パスです。

候補パスには次の特性があります。

  • 優先順位があります:2 つのポリシーに同じ {color, endpoint} があり、優先順位が異なる場合は、優先順位が最も高いポリシーが選択されます。

  • 単一のバインド SID(BSID)に関連付けられます:同じ BSID を持つ異なる SR ポリシーがある場合、BSID 競合が発生します。この場合、最初にインストールされたポリシーが BSID を取得し、選択されます。

  • 使用可能な場合に有効になります。

パスが有効で、その設定がそのポリシーのすべての候補パスの中でベストの場合にそのパスが選択されます。


(注)  

送信元のプロトコルは、パス選択ロジックには関係ありません。

設定例

ローカル SR-TE ポリシーを設定するには、次の設定を完了する必要があります。

  1. セグメント リストを作成します。

  2. ポリシーを作成します。

ローカル SR-TE ポリシーの設定


/* Enter the global configuration mode and create the SR-TE segment lists */
Router# configure
Router(config)# segment-routing
Router(config-sr)# traffic-eng
Router(config-sr-te)# segment-list name Plist-1
Router(config-sr-te-sl)# index 1 mpls label 400102
Router(config-sr-te-sl)# index 2 mpls label 400106
Router(config-sr-te-sl)# exit

Router(config-sr-te)# segment-list name Plist-2
Router(config-sr-te-sl)# index 1 mpls label 400222
Router(config-sr-te-sl)# index 2 mpls label 400106
Router(config-sr-te-sl)# exit

/* Create the SR-TE policy */
Router(config-sr-te)# policy P1
Router(config-sr-te-policy)# binding-sid mpls 15001 
Router(config-sr-te-policy)# color 1 end-point ipv4 6.6.6.6 
Router(config-sr-te-policy)# candidate-paths 
Router(config-sr-te-policy-path)# preference 10
Router(config-sr-te-pp-index)# explicit segment-list Plist-1
Router(config-sr-te-pp-info)# weight 2
Router(config-sr-te-pp-info)# exit

Router(config-sr-te-pp-index)# explicit segment-list Plist-2
Router(config-sr-te-pp-info)# weight 2
Router(config-sr-te-pp-info)# commit
Router(config-sr-te-pp-info)# end
Router(config)#

実行コンフィギュレーション


Router# show running-configuration
segment-routing
 traffic-eng
  segment-list name Plist-1
   index 1 mpls label 400102
   index 2 mpls label 400106
  !
  segment-list name Plist-2
   index 1 mpls label 400222
   index 2 mpls label 400106
  !
  policy P1
   binding-sid mpls 15001
   color 1 end-point ipv4 6.6.6.6
   candidate-paths
    preference 10
     explicit segment-list Plist-1
      weight 2
     !
     explicit segment-list Plist-2
      weight 2
     !
    !
   !
  !
 !
!

確認


Router# show segment-routing traffic-eng policy name P1 
Sat Jul  8 12:25:34.114 UTC
SR-TE policy database
---------------------
Name: P1 (Color: 1, End-point: 6.6.6.6)
  Status:
    Admin: up  Operational: up for 00:06:21 (since Jul  8 12:19:13.198)
  Candidate-paths:
    Preference 10:
      Explicit: segment-list Plist-1 (active)
        Weight: 2
          400102 [Prefix-SID, 2.1.1.1]
          400106
      Explicit: segment-list Plist-2 (active)
        Weight: 2
          400222 [Prefix-SID, 22.11.1.1]
          400106
  Attributes:
    Binding SID: 15001
      Allocation mode: explicit
      State: programmed
      Policy selected: yes
    Forward Class: 0

BGP SR-TE

SR-TE は、データセンター(DC)のオペレータがさまざまなレベルの Service Level Assurance(SLA)を提供するために使用できます。BGP(BGP SR-TE)を使用して SR-TE パスを設定すると、この目的のために新しいプロトコルを導入することなく、DC ネットワーク操作が簡素化されます。

明示的 BGP SR-TE

明示的 BGP SR-TE は、各明示パスに対応する SID を持つ明示パスの一覧を含む SR-TE ポリシー(固有色 ID で識別される)を使用します。BGP スピーカーは明示的 SR-TE ポリシーをリモート ピアに信号で伝え、特定の特性と明示パスを持つ TE トンネルの設定がトリガーされます。受信側では、明示パスに対応する TE トンネルが BGP によって設定されます。BGP 更新で言及された宛先のパケットは、ポリシーによって記述された明示パスに従います。各ポリシーは複数の明示パスを含むことができ、TE はパスごとにトンネルを作成します。


(注)  

ルーティング ポリシーとルーティング ポリシー言語(RPL)の詳細については、『Routing Configuration Guide for Cisco NCS 5500 Series Routers』の「Implementing Routing Policy」の章を参照してください。

明示的 BGP SR-TE の設定

明示的な BGP SR-TE を設定するには、次の作業を実行します。

始める前に

ヘッドエンド ルータには、次の設定を適用する必要があります。


Router(config)# ipv4 unnumbered mpls traffic-eng Loopback0
Router(config)# mpls traffic-eng 
Router(config-mpls-te)# auto-tunnel p2p tunnel-id min number max number 

手順

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

configure

ステップ 2

extcommunity-set opaque name

例:


RP/0/RP0/CPU0:router(config)# extcommunity-set opaque color1

カラー拡張コミュニティセットを定義します。

ステップ 3

name

例:


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

カラー拡張コミュニティセットを定義します。

ステップ 4

end-set

例:


RP/0/RP0/CPU0:router(config-ext)# end-set

拡張コミュニティセットの定義を終了します。

ステップ 5

route-policy route-policy-name

例:


RP/0/RP0/CPU0:router(config)# route-policy color
RP/0/RP0/CPU0:router(config-rpl)# if destination in (5.5.5.1/32) then
RP/0/RP0/CPU0:router(config-rpl-if)# set extcommunity color color1
RP/0/RP0/CPU0:router(config-rpl-if)# endif
RP/0/RP0/CPU0:router(config-rpl)# end-policy

ルート ポリシーを作成し、ルート ポリシー コンフィギュレーション モードを開始します。このモードでは、カラー拡張コミュニティ値を使用してプレフィックスをマークするルート ポリシーを定義できます。

ステップ 6

end-policy

例:


RP/0/RP0/CPU0:router(config-rpl)# end-policy

ルート ポリシーの定義を終了して、ルート ポリシー コンフィギュレーション モードを終了します。

ステップ 7

router bgp as-number

例:


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

BGP AS 番号を指定し、BGP コンフィギュレーション モードを開始します。このモードでは、BGP ルーティング プロセスを設定できます。

ステップ 8

bgp router-id ip-address

例:


RP/0/RP0/CPU0:router(config-bgp)# bgp router-id 10.10.0.2

指定したルータ ID で、ローカル ルータを設定します。

ステップ 9

address-family { ipv4 | ipv6 } sr-policy

例:


RP/0/RP0/CPU0:router(config-bgp)# address-family ipv4 sr-policy

IPv4 または IPv6 のいずれかのアドレス ファミリを指定し、アドレス ファミリのコンフィギュレーション サブモードを開始します。

ステップ 10

exit

ステップ 11

neighbor ip-address

例:


RP/0/RP0/CPU0:router(config-bgp)# neighbor 10.10.0.1

BGP ルーティングのためにルータをネイバー コンフィギュレーション モードにして、ネイバーの IP アドレスを BGP ピアとして設定します。

ステップ 12

remote-as as-number

例:


RP/0/RP0/CPU0:router(config-bgp-nbr)# remote-as 1

ネイバーを作成し、リモート自律システム番号を割り当てます。

ステップ 13

address-family { ipv4 | ipv6 } unicast

例:


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

IPv4 または IPv6 のいずれかのアドレス ファミリを指定し、アドレス ファミリのコンフィギュレーション サブモードを開始します。

ステップ 14

route-policy route-policy-name { in | out }

例:


RP/0/RP0/CPU0:router(config-bgp-nbr-af)# route-policy color out

指定したポリシーを IPv4 ユニキャスト ルートに適用します。

ステップ 15

send-extended-community-ebgp

例:


RP/0/RP0/CPU0:router(config-bgp-nbr-af)# send-extended-community-ebgp

拡張コミュニティ属性を外部ボーダー ゲートウェイ プロトコル(eBGP)ネイバーに送信します。

バインド セグメントの使用

バインド セグメントは、SR-TE ポリシーを識別するローカル セグメントです。各 SR-TE ポリシーは、バインド セグメント ID(BSID)に関連付けられています。BSID は、SR-TE ポリシーがインスタンス化されるときに SR-TE ポリシーごとに自動的に割り当てられるローカル ラベルです。


(注)  

Cisco IOS XR 6.3.2 以降のリリースでは、SR-TE ポリシーに明示的な BSID を指定できます。次の「明示的バインド SID」の項を参照してください。

BSID を使用して、トラフィックを SR-TE ポリシーにドメイン境界を超えて誘導し、シームレスなエンドツーエンドのドメイン間 SR-TE ポリシーを作成できます。各ドメインはローカルの SR-TE ポリシーを制御します。リモート ドメインのヘッドエンドとは独立して、ローカルの SR-TE ポリシーを検証し、必要に応じて再ルーティングすることができます。バインド セグメントを使用すると、リモート ドメインのトポロジの変更からヘッドエンドが分離されます。

トップ ラベルとして BSID で受信されたパケットは、BSID に関連付けられている SR-TE ポリシーに誘導されます。BSID ラベルがポップされると、SR-TE ポリシーの SID リストがプッシュされます。

BSID は次の場合に使用できます。

  • マルチドメイン(ドメイン間、自律システム間):BSID を使用して、ドメイン境界を越えてトラフィックを誘導し、シームレスなエンドツーエンドのドメイン間 SR-TE ポリシーを作成できます。

  • 単一ドメイン内の大規模:ヘッドエンドは、SR-TE ポリシーの別のレイヤ内でエンドツーエンド(エッジツーエッジ)の SR-TE ポリシーをネストすることにより、階層型 SR-TE ポリシーを使用できます(アグリゲーションからアグリゲーションまで)。SR-TE ポリシーは、BSID を使用する別のポリシーのレイヤ内にネストされ、シームレスなエンドツーエンドの SR-TE ポリシーが作成されます。

  • ラベル スタック圧縮:SR-TE ポリシーに必要なラベル スタックのサイズがプラットフォーム機能を超えている場合、SR-TE ポリシーは、バインド セグメントを使用して他の SR-TE ポリシーにシームレスにステッチしたり、ネストすることができます。

  • BGP SR-TE ダイナミック:ヘッドエンドはパケットをネクスト ホップがバインド SID である BGP ベースの FIB エントリに誘導します。

明示的なバインド SID

SR-TE ポリシーに指定した BSID 値を使用するように要求するには、binding-sid explicit {fallback-dynamic | enforce-srlb } コマンドを使用します。明示的な BSID は、セグメント ルーティング ローカル ブロック(SRLB)またはラベルのダイナミック レンジから割り当てられます。

SR-TE ポリシーへのこの BSID の要求と取得はベストエフォートで行われます。要求された BSID が利用できない場合(利用可能な SRLB に属していない、または別のアプリケーションまたは SR-TE ポリシーによってすでに使用されている場合)、ポリシーはダウン状態のままです。

BSID 値が利用できない場合は、BSID 割り当ての動作を指定することができます。

  • 動的割り当てへのフォールバック:BSID が利用できない場合、BSID は動的に割り当てられ、ポリシーが起動します。

    
    Router# configure
    Router(config)# segment-routing
    Router(config-sr)# traffic-eng
    Router(config-sr-te)# binding-sid explicit fallback-dynamic
    
    
  • 厳格な SRLB 適用:BSID が SRLB 内にない場合、ポリシーはダウン状態のままです。

    
    Router# configure
    Router(config)# segment-routing
    Router(config-sr)# traffic-eng
    Router(config-sr-te)# binding-sid explicit enforce-srlb
    
    

バインド SID を使用した SR-TE ポリシーのステッチング:例

このドメイン内の例では、3 つの SR-TE ポリシーがステッチされて、ノード 1 からノード 10 までのシームレスなエンドツーエンドのパスが形成されています。

図 1. ドメイン内トポロジ
表 1. ルータ IP アドレス

ルータ

IPv4 アドレス

3

10.1.1.3

4

10.1.1.4

192.168.46.4

5

10.1.1.5

6

192.168.46.6

9

192.168.59.9

10

10.1.1.10

手順


ステップ 1

ノード 9 を介して、ノード 5 からノード 10 への SR-TE ポリシーを設定します。ノード 5 は、SR-TE ポリシーにバインド SID(24012)を自動的に割り当てます。

例:


RP/0/0/CPU0:xrvr-5(config)# explicit-path name PATH5-9_10
RP/0/0/CPU0:xrvr-5(config-expl-path)# index 10 next-address strict ipv4 unicast 192.168.59.9
RP/0/0/CPU0:xrvr-5(config-expl-path)# index 20 next-address strict ipv4 unicast 10.1.1.10
RP/0/0/CPU0:xrvr-5(config-expl-path)# exit

RP/0/0/CPU0:xrvr-5(config)# interface tunnel-te1
RP/0/0/CPU0:xrvr-5(config-if)# ipv4 unnumbered Loopback0
RP/0/0/CPU0:xrvr-5(config-if)# destination 10.1.1.10
RP/0/0/CPU0:xrvr-5(config-if)# path-option 1 explicit name PATH5-9_10 segment-routing
RP/0/0/CPU0:xrvr-5(config-if)# commit

RP/0/0/CPU0:xrvr-5# show mpls traffic-eng tunnels 1 detail 
Name: tunnel-te1  Destination: 10.1.1.10  Ifhandle:0x680 
  Signalled-Name: xrvr-5_t1
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected
    path option 1, (Segment-Routing) type dynamic (Basis for Setup, path weight 10)
<...>
 Binding SID: 24012
<...>
    Segment-Routing Path Info (IS-IS 1 level-2)
      Segment0[Link]: 192.168.59.5 - 192.168.59.9, Label: 24007
      Segment1[Node]: 10.1.1.10, Label: 16010

ステップ 2

ノード 4 と Link4-6 を介してノード 3 からノード 5 への SR-TE ポリシーを設定し、ノード 5(24012)で SR-TE ポリシーのバインド SID をノード 5 の SR-TE ポリシーにステッチするようにプッシュします。ノード 3 は、この SR-TE ポリシーにバインド SID(24008)を自動的に割り当てます。

例:


RP/0/0/CPU0:xrvr-3(config)# explicit-path name PATH4_4-6_5_BSID
RP/0/0/CPU0:xrvr-3(config-expl-path)# index 10 next-address strict ipv4 unicast 10.1.1.4
RP/0/0/CPU0:xrvr-3(config-expl-path)# index 20 next-address strict ipv4 unicast 192.168.46.6
RP/0/0/CPU0:xrvr-3(config-expl-path)# index 30 next-address strict ipv4 unicast 10.1.1.5
RP/0/0/CPU0:xrvr-3(config-expl-path)# index 40 next-label 24012
RP/0/0/CPU0:xrvr-3(config-expl-path)# exit

RP/0/0/CPU0:xrvr-3(config)# interface tunnel-te1
RP/0/0/CPU0:xrvr-3(config-if)# ipv4 unnumbered Loopback0
RP/0/0/CPU0:xrvr-3(config-if)# destination 10.1.1.10
RP/0/0/CPU0:xrvr-3(config-if)# path-option 1 explicit name PATH4_4-6_5_BSID segment-routing
RP/0/0/CPU0:xrvr-3(config-if)# commit

RP/0/0/CPU0:xrvr-3# show mpls traffic-eng tunnels 1 detail 
Name: tunnel-te1  Destination: 10.1.1.10  Ifhandle:0x780 
  Signalled-Name: xrvr-3_t1
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected
    path option 1, (Segment-Routing) type explicit PATH4_6_5 (Basis for Setup)
<...>
 Binding SID: 24008
<...>
    Segment-Routing Path Info (IS-IS 1 level-2)
      Segment0[Node]: 10.1.1.4, Label: 16004
      Segment1[Link]: 192.168.46.4 - 192.168.46.6, Label: 24003
      Segment2[Node]: 10.1.1.5, Label: 16005
      Segment3[ - ]: Label: 24012

ステップ 3

ノード 1 からノード 3 への SR-TE ポリシーを設定し、ノード 3(24008)で SR-TE ポリシーのバインド SID をノード 3 の SR-TE ポリシーにステッチするようにプッシュします。

例:


RP/0/0/CPU0:xrvr-1(config)# explicit-path name PATH3_BSID
RP/0/0/CPU0:xrvr-1(config-expl-path)# index 10 next-address strict ipv4 unicast 10.1.1.3
RP/0/0/CPU0:xrvr-1(config-expl-path)# index 20 next-label 24008
RP/0/0/CPU0:xrvr-1(config-expl-path)# exit

RP/0/0/CPU0:xrvr-1(config)# interface tunnel-te1
RP/0/0/CPU0:xrvr-1(config-if)# ipv4 unnumbered Loopback0
RP/0/0/CPU0:xrvr-1(config-if)# destination 10.1.1.10
RP/0/0/CPU0:xrvr-1(config-if)# path-option 1 explicit name PATH3_BSID segment-routing
RP/0/0/CPU0:xrvr-1(config-if)# commit

RP/0/0/CPU0:xrvr-1# show mpls traffic-eng tunnels 1 detail 
Name: tunnel-te1  Destination: 10.1.1.10  Ifhandle:0x2f80 
  Signalled-Name: xrvr-1_t1
  Status:
    Admin:    up Oper:   up   Path:  valid   Signalling: connected
    path option 1, (Segment-Routing) type explicit PATH3_BSID (Basis for Setup)
<...>
 Binding SID: 24002
<...>
    Segment-Routing Path Info (IS-IS 1 level-2)
      Segment0[Node]: 10.1.1.3, Label: 16003
      Segment1[ - ]: Label: 24008



このパスは、バインド SID を使用してステッチされた SR-TE ポリシーのチェーンであり、シームレスなエンドツーエンドのパスが提供されます。


RP/0/0/CPU0:xrvr-1# traceroute 10.1.1.10
Type escape sequence to abort.
Tracing the route to 10.1.1.10
 1  99.1.2.2 [MPLS: Labels 16003/24008 Exp 0] 29 msec  19 msec  19 msec 
 2  99.2.3.3 [MPLS: Label 24008 Exp 0] 29 msec  19 msec  19 msec 
 3  99.3.4.4 [MPLS: Labels 24003/16005/24012 Exp 0] 29 msec  19 msec  19 msec 
 4  99.4.6.6 [MPLS: Labels 16005/24012 Exp 0] 29 msec  29 msec  19 msec 
 5  99.5.6.5 [MPLS: Label 24012 Exp 0] 29 msec  29 msec  19 msec 
 6  99.5.9.9 [MPLS: Label 16010 Exp 0] 19 msec  19 msec  19 msec 
 7  99.9.10.10 29 msec  19 msec  19 msec