概要
このドキュメントでは、Topology Independent(TI)- Loop-Free Alternative(LFA)による明示的なプライマリパスのノード保護、およびSR-TEメトリックとOpen Shortest Path First(OSPF)フレキシブルアルゴリズムによるセグメントルーティング(SR) – トラフィックエンジニアリング(TE)パスを使用したソリューションについて説明します。
問題
このセクションでは、XYZネットワークの要件、設計上の制約、およびTI-LFAバックアップパスが、明示的に定義されたプライマリパスの中間ノード障害の保護に失敗する理由について説明します。
要件
XYZ Networksによると、グリーンフィールドネットワーク設計の要件は次のとおりです。
1.プライマリトラフィックパスは、IGPメトリックではなく、SR-TEポリシー(admin)によって明示的に定義および制御される必要があります。
2.リンクまたはノードに障害が発生した場合、トラフィックはゼロスケールネットワークで50ミリ秒未満でバックアップパスに収束する必要があります。
図1を見ると、SR-TEポリシーは、PE3を宛先ノードとする送信元ノードPE1でエンドツーエンドに設定されています。
SR-TEとOSPFの設定の概要は次のとおりです。
segment-routing
traffic-eng
!
!
segment-list PrimaryPath1
index 10 mpls adjacency 10.1.11.0 --> First Hop (P1 node) of the explicit-path
index 20 mpls adjacency 10.1.3.1 --> Second Hop (P3 node) of the explicit-path
index 30 mpls adjacency 10.3.13.1 --> Third Hop (PE3 node) of the explicit-path
!
policy POL1
source-address ipv4 11.11.11.11 --> Source Node of the explicit-path
color 10 end-point ipv4 33.33.33.33 --> Destination Node of the explicit-path
candidate-paths
preference 100 --> Secondary Path taken care of dynamically by IGP TI-LFA
dynamic
metric
type igp
!
!
!
preference 200
explicit segment-list PrimaryPath1 --> Primary Explicit-Path of the SR-TE policy
!
!
router ospf CORE
nsr
distribute link-state
log adjacency changes
router-id 11.11.11.11
segment-routing mpls
nsf cisco
microloop avoidance segment-routing
max-metric router-lsa on-startup 360
area 0
interface Bundle-Ether111 --> Primary Explicit-Path Interface
authentication null
network point-to-point
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa enable --> Enabling TI-LFA on the primary interface
fast-reroute per-prefix tiebreaker node-protecting index 100
fast-reroute per-prefix tiebreaker srlg-disjoint index 200
prefix-suppression
!
interface Bundle-Ether211 --> Secondary Dynamic Path Interface
authentication null
network point-to-point
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa enable --> Enabling TI-LFA on the secondary interface
fast-reroute per-prefix tiebreaker node-protecting index 100
fast-reroute per-prefix tiebreaker srlg-disjoint index 200
prefix-suppression
!
interface Loopback80
passive enable
prefix-sid index 32130 --> Enabling Node SID on the loopback interface
!
!
この設定は、明示パス駆動型SR-TEポリシーを設定するサンプル方法です。他の方法もあります。また、OSPFでは、TI-LFAが有効になっていることが確認されています。
ただし、SR-TEとOSPFの機能の組み合わせでは、SR-TE Explicit Path Policyを使用したラボで、OSPF TI-LFAが、図2に示すように、中間ノード障害シナリオ用のSR-TE Explicit Primary Pathのコンバージェンス後のエンドツーエンド(PE1からPE3)バックアップパスを展開できないことが判明しています。その結果、P1またはP3ノードのいずれかがダウンした場合、トラフィック保護のコンバージェンス時間は50ミリ秒を大幅に超えます。
この問題を説明するために、簡単な例を選択しました。
図1:通常のトラフィックシナリオ
図1に示すように、トラフィックの送信元ノードはPE1で、宛先ノードはPE3です。ここでは、明示的なプライマリトラフィックパスPE1> P1> P3> PE3を介してトラフィックを送信する管理上の必要性がある場合に、SR-TE明示的パスポリシーを設定します。
この状況で、PE1> P1 > P3> PE3を介して明示的なSR-TEパスを設定すると、図2に示すようにノード障害の場合、TI-LFAはノード障害シナリオを保護できませんが、リンク障害シナリオだけを保護できます。リンク障害のシナリオについては、リファレンスドキュメント『リンク保護のためのSR-TE明示パスのコンバージェンス』で詳しく説明しています。
図2:トラフィックのフェールオーバーのシナリオ
TI-LFAバックアップパスが中間ノードの障害を保護できない理由
OSPFで設定されたTI-LFAは、デフォルトで、宛先ノードのノードSIDを指し、データプレーンにバックアップパスを計算してインストールします。
しかし、このシナリオとフィーチャセットの設定では、送信元ノードから宛先ノードへのTI-LFAカバレッジが機能しません。つまり、TI-LFAバックアップパスは、明示的に定義されたプライマリパスに対して50ミリ秒未満の中間ノード障害を保護できません。
分析によると、TI-LFAバックアップパス計算アルゴリズムは、実際の宛先ノードではなく、明示的なパスの最初のネクストホップ/ノードを宛先エンドポイントとして使用し、最初のネクストホップ/ノード(ノードP1など)だけを保護しようとするバックアップパスを計算します(図2を参照)。その結果、TI-LFAは、実際のエンドポイントまたは宛先ノード(ノードPE3など)を保護するためのバックアップパスを計算してインストールすることができません。
したがって、明示的に定義されたプライマリトラフィックパスの中間ノード障害に対して、実際の宛先ノードPE3のコンバージェンスから50ミリ秒未満の範囲でエンドツーエンド保護を提供することはできません。
もう1つの見方は図1です。明示的なパスでノードP3をネクストホップとして設定すると、TI-LFAはノードP1の障害に対して50ミリ秒以下の保護を提供できます。その逆も同様です。ただし、エンドツーエンドの明示的なパスの明示的なホップの1つとして定義されている特定のノードに対しては、ノード保護を実行できません。
解決方法
このセクションでは、明示的なプライマリパス固有のシナリオのポイントに焦点を当てます。
TI-LFAバックアップパスが50ミリ秒のコンバージェンス下で中間ノード障害を保護する仕組み
実証済みでテスト済みのソリューションは、シナリオに追加の機能や変更を取り入れて、TI-LFAがリンク障害に加えて、ノード障害のシナリオ中に50ミリ秒未満のコンバージェンスを処理できるようにすることです。 このソリューションは、「問題」セクションで説明したXYZネットワークの要件に基づいて選択されています。
1. Explicit-Pathが必要ですが、要件に従ってIGPメトリックを使用することはできません。
2.そのため、代替メトリック(SR-TEメトリック)を使用して、明示的なホップを指定せずに特定のパス上のトラフィックを誘導します。
3. OSPF Flex-Algoは、SR-TEメトリックを使用するトポロジを介して、トラフィックを宛先ノードに送信するために使用されます(Flex-Algo経由で到達可能な別のFlex-AlgoノードSIDを使用)。
3. OSPF Flex-Algoが追加されると、TI-LFAは実際の宛先ノードSIDを保護できるようになるため、正常に機能できます。
理解 ソリューションのさまざまなコンポーネント
明示的なパス特性
1つの要件に従い、プライマリパスの明示的な制御にはIGPメトリックを使用できないため、プライマリSR-TEパスの明示的な合理化された特性は、ヘッドエンドPEノードを含むすべてのノードのSR-TEインターフェイス(セグメントルーティング下)に追加で設定されたTEメトリックを介してリモート宛先PEまで制御されます。これらのSR-TEメトリックは、OSPF Flex Algoで使用され、flex-algoパラダイムの下で明示的なパスを作成します。
PE1のセグメントルーティングでのSR-TEメトリック:
segment-routing
global-block 100000 299999
traffic-eng
interface Bundle-Ether111
metric 10 --> SR-TE Metric of BE111 is less that BE211, so it is a more preferred explicit path given that rest of the SR-TE link cost is same
!
interface Bundle-Ether211
metric 100
!
logging
policy status
!
policy er100_to_er102 --> SR-TE policy defined
source-address ipv4 11.11.11.11. --> Source Node of the explicit-path
color 150 end-point ipv4 33.33.33.33 --> Destination Node of the explicit-path
autoroute
force-sr-include
include all
!
candidate-paths
preference 200
dynamic --> Here that the primary path is configured as dynamic but it is the SR-TE metric defined above which helps Flex-Algo make it fixed or explicit
!
constraints
segments
sid-algorithm 128. --> Primary SR-TE path is configured with constraint as Flex-Algo 128 with no explicit backup path since TI-LFA takes care of the backup path implicitly ensuring sub 50 msec of convergence
!
!
ノードPE1でのshowコマンド:
P/0/RP0/CPU0:PE1#show segment-routing traffic-eng policy
Fri Feb 3 10:25:24.716 UTC
SR-TE policy database
---------------------
Color: 150, End-point: 33.33.33.33 --> Color and Endpoint Loopback IP address of PE3
Name: srte_c_150_ep_33.33.33.33
Status:
Admin: up Operational: up for 04:57:30 (since Feb 3 05:27:54.774)
Candidate-paths:
Preference: 200 (configuration) (active) --> Preference of 200 as configured under SR-TE policy
Name: er100_to_er102
Requested BSID: dynamic
Constraints:
Prefix-SID Algorithm: 128 --> Attached to Flex-Algo 128 as configured under SR-TE policy
Protection Type: protected-preferred --> Protected Primary Path
Maximum SID Depth: 12
Dynamic (valid)
Metric Type: TE, Path Accumulated Metric: 0 --> Metric Type is SR-TE metric
133138 [Prefix-SID: 33.33.33.33, Algorithm: 128]. --> Node SID of destination node PE3 with index 33138
Attributes:
Binding SID: 24010
Forward Class: Not Configured
Steering labeled-services disabled: no
Steering BGP disabled: no
IPv6 caps enable: yes
Invalidation drop enabled: no
OSPFフレックスアルゴ
概要:
セグメントルーティングの柔軟なアルゴリズムにより、オペレータは自身のニーズに応じてIGP最短パス計算をカスタマイズできます。オペレータは、リンクコストベースのSPFを超えた転送を実現するために、カスタムSRプレフィックスSIDを割り当てることができます。その結果、Flexible Algorithm(FALGORITHM)は、IGPによって自動的に計算されたトラフィック処理されたパスを、IGPが到達可能な任意の宛先に提供します。
最大の柔軟性を提供するために、アルゴリズム値とその意味の間のマッピングをユーザが定義できます。ドメイン内のすべてのルータが、特定のアルゴリズム値が表す内容について共通の理解を持っている場合、そのようなアルゴリズムの計算は一貫しており、トラフィックはループの対象にはなりません。ここでは、アルゴリズムの意味は標準によって定義されていませんが、ユーザによって定義されているため、フレキシブルアルゴリズムと呼ばれます。
OSPFルーティングパラダイムでは、ネットワーク上のパスの計算に多くの制約が使用される可能性があります。ネットワークの中には、単一のIGPプレーンで展開されるものもあれば、複数のIGPプレーンで展開されるものもあります。特定のネットワークでは、各OSPFプロセスの下に、デフォルトで、OSPFメトリックなどの単純な形式の制約を持つFlex-Algo 0が存在します。
ただし、特定の要件を念頭に置いて、TE-metricなどの拡張パラメータを含む、より高度な制約形式が使用されます(複数のFlex-Algo番号の範囲は128から255です)。Cisco IOS® XR 7.3.2では、このTEメトリックはSR-TEトラフィックエンジニアリング(TE-TE)セクションで設定する必要がありますが、OSPF Flex-Algoで明示的なパスの計算に使用されます。
TI-LFAは、バックアップパスを計算し、プライマリパスに障害が発生した場合にデータプレーンを準備状態に保ち、ゼロスケールネットワークのコンバージェンス時間を50ミリ秒未満に切り替えます。
設定:
OSPF Flex-AlgoはRouter OSPFの下で設定され、ネットワーク全体にアドバタイズされます。OSPF flex-algoとTEメトリックはともに、明示的なパスと50ミリ秒未満のコンバージェンスを処理します。OSPFでFlex-Algoを設定すると、仮想OSPFトポロジが構築され、TI-LFAが送信元と宛先のエンドポイントのペアに対してエンドツーエンドのバックアップパスを事前に計算するのに役立ちます。これにより、プライマリパスの障害に対して50秒未満のコンバージェンスが保証されます。
PE1でのOSPF設定:
router ospf CORE
nsr
distribute link-state
log adjacency changes
router-id 11.11.11.11
segment-routing mpls
nsf cisco
microloop avoidance segment-routing
max-metric router-lsa on-startup 360
area 0
interface Bundle-Ether111
cost 10000
authentication null
network point-to-point
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa enable
fast-reroute per-prefix tiebreaker node-protecting index 100
fast-reroute per-prefix tiebreaker srlg-disjoint index 200
prefix-suppression
!
interface Bundle-Ether211
cost 10000
authentication null
network point-to-point
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa enable
fast-reroute per-prefix tiebreaker node-protecting index 100
fast-reroute per-prefix tiebreaker srlg-disjoint index 200
prefix-suppression
!
interface Loopback80
passive enable
prefix-sid index 32130
prefix-sid algorithm 128 index 33130 --> Assigning different Node SIDs to different Flex Algo to keep it unique
prefix-sid algorithm 129 index 34130 --> Assigning different Node SIDs to different Flex Algo to keep it unique
!
!
flex-algo 128 --> Defining OSPF Flex Algo which creates a virtual topology and enables TI-LFA to take care of sub 50 msec of convergence
metric-type te-metric
advertise-definition
!
flex-algo 129. --> One or more than one Flex Algo can be defined based on the requirement
metric-type delay
advertise-definition
!
!
PE3でのOSPF設定:
router ospf CORE
nsr
distribute link-state
log adjacency changes
router-id 33.33.33.33
segment-routing mpls
nsf cisco
microloop avoidance segment-routing
max-metric router-lsa on-startup 360
area 0
interface Bundle-Ether111
cost 10000
authentication null
network point-to-point
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa enable
fast-reroute per-prefix tiebreaker node-protecting index 100
fast-reroute per-prefix tiebreaker srlg-disjoint index 200
prefix-suppression
!
interface Bundle-Ether211
cost 10000
authentication null
network point-to-point
fast-reroute per-prefix
fast-reroute per-prefix ti-lfa enable
fast-reroute per-prefix tiebreaker node-protecting index 100
fast-reroute per-prefix tiebreaker srlg-disjoint index 200
prefix-suppression
!
interface Loopback80
passive enable
prefix-sid index 32138
prefix-sid algorithm 128 index 33138 --> Node SID assigned for OSPF Flex-Algo 128 which is shown above by show command at PE1
prefix-sid algorithm 129 index 34138 --> Assigning different Node SIDs to different Flex Algo to keep it unique
!
!
flex-algo 128. --> Defining OSPF Flex Algo which creates a virtual topology and enables TI-LFA to take care of sub 50 msec of convergence
metric-type te-metric --> Metric type te-metric
advertise-definition --> To enable the router to advertise the definition for the particular Flexible Algorithm, advertise-definition command is used
!
flex-algo 129 --> Additional Flex Algo definition (if needed)
metric-type delay --> Metric type delay
advertise-definition
!
!
ソリューションの概要
要約すると、IGPメトリックは使用できないため、SR-TEメトリックは、指定されたSR-TE明示パスを介してトラフィックをナビゲートするのに役立ちます。OSPF Flex-Algoは、仮想コントロールプレーンの1つのレイヤを追加することで、TI-LFAがプライマリの明示パストラフィックを事前に計算されたTI-LFAバックアップパスに50ミリ秒未満でコンバージェンスできるようにします。これは、TI-LFAが実際の宛先ノードを判別し、それによって明示的なプライマリパスPE1> P1 > P3> PE3の一対の発信元と宛先のノード間の両方の中間ノード(P1とP3)を保護できるように、宛先ノードSID(SID)のみがアドバタイズされているためです。ゼロスケールでの50ミリ秒未満のコンバージェンスを遵守する動的に保護されたバックアップパスは、PE1> P2 > P4> PE3です。
使用ソフトウェア
ソリューションのテストと検証に使用するソフトウェアは、Cisco IOS® XR 7.3.2です。
関連情報