今回はPCEのDisjoint Pathと呼ばれる機能について説明します。
概要
Disjoint Pathについて
以下のように、冗長性を確保するために、2つの拠点間で、SR-TEを用いて、LSPを2本構築するとします。
しかし、通常のSR-TEの場合、他のHead-endが計算したLSPの状態を考慮できないため、2本のLSPが同じリンクを経由してしまう可能性があります。
この結果、もし、R2-R3間のリンクで障害が発生した場合、同時に2本のLSPに影響が発生します。
PCEでは、Disjoint Pathと呼ばれる機能を使用することで、LSPの計算の依頼を受けた際に、既に計算済みの別のLSPの状態を考慮し、既存のLSPと同じリンクを経由しないように、新しいLSPを計算可能です。
この結果、特定のリンクに障害が発生した際に、複数のLSPに影響が発生することを回避できます。
Disjoint Pathでは、Head-endがPCEにLSPの計算を依頼する際に、Disjoint Groupと呼ばれる識別子を送信する必要があります。
PCEはLSPを計算する際、同じDisjoint Groupに属している既に計算済みのLSPの状態のみ考慮します。
(補足)
Disjoint Groupの情報はWiresharkでデコードできなかったため、フォーマットの情報は省略します。
検証内容と設定
基本設定の内容
R1-R2-R3-R4-R5-R6-R7間でOSPF Area 0を構成します。
OSPFでSR-TEを有効にします。
R3-R4間の10.4.4.0/24のリンクのコストを30、10.5.5.0/24のリンクのコストを50に変更します。
R1でLoopback Interfaceの1.1.1.1/32にPrefix SIDとして20101を割り当てます。
R3でLoopback Interfaceの2.2.2.2/32にPrefix SIDとして20201を割り当てます。
R3でLoopback Interfaceの3.3.3.3/32にPrefix SIDとして20301を割り当てます。
R4でLoopback Interfaceの4.4.4.4/32にPrefix SIDとして20401を割り当てます。
R5でLoopback Interfaceの5.5.5.5/32にPrefix SIDとして20501を割り当てます。
R6でLoopback Interfaceの6.6.6.6/32にPrefix SIDとして20601を割り当てます。
R7でLoopback Interfaceの7.7.7.7/32にPrefix SIDとして20701を割り当てます。
R7をPCE、R1とR2をPCCとして動作させます。
初期設定
interface Loopback0
ipv4 address 1.1.1.1 255.255.255.255
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.1.1.1 255.255.255.0
!
interface GigabitEthernet0/0/0/1
ipv4 address 10.8.8.1 255.255.255.0
!
router ospf 1
router-id 1.1.1.1
segment-routing mpls
area 0
mpls traffic-eng
interface Loopback0
prefix-sid absolute 20101
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
!
segment-routing
traffic-eng
pcc
pce address ipv4 7.7.7.7
interface Loopback0
ipv4 address 2.2.2.2 255.255.255.255
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.2.2.2 255.255.255.0
!
interface GigabitEthernet0/0/0/1
ipv4 address 10.9.9.2 255.255.255.0
!
router ospf 1
router-id 2.2.2.2
segment-routing mpls
area 0
mpls traffic-eng
interface Loopback0
prefix-sid absolute 20201
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
!
segment-routing
traffic-eng
pcc
pce address ipv4 7.7.7.7
interface Loopback0
ipv4 address 3.3.3.3 255.255.255.0
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.1.1.3 255.255.255.0
!
interface GigabitEthernet0/0/0/1
ipv4 address 10.2.2.3 255.255.255.0
!
interface GigabitEthernet0/0/0/2
ipv4 address 10.3.3.3 255.255.255.0
!
interface GigabitEthernet0/0/0/3
ipv4 address 10.4.4.3 255.255.255.0
!
interface GigabitEthernet0/0/0/4
ipv4 address 10.5.5.3 255.255.255.0
!
router ospf 1
router-id 3.3.3.3
segment-routing mpls
area 0
mpls traffic-eng
interface Loopback0
prefix-sid absolute 20301
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
interface GigabitEthernet0/0/0/2
network point-to-point
!
interface GigabitEthernet0/0/0/3
cost 30
network point-to-point
!
interface GigabitEthernet0/0/0/4
cost 50
network point-to-point
!
!
!
segment-routing
traffic-eng
interface Loopback0
ipv4 address 4.4.4.4 255.255.255.255
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.6.6.4 255.255.255.0
!
interface GigabitEthernet0/0/0/1
ipv4 address 10.7.7.4 255.255.255.0
!
interface GigabitEthernet0/0/0/2
ipv4 address 10.3.3.4 255.255.255.0
!
interface GigabitEthernet0/0/0/3
ipv4 address 10.4.4.4 255.255.255.0
!
interface GigabitEthernet0/0/0/4
ipv4 address 10.5.5.4 255.255.255.0
!
router ospf 1
router-id 4.4.4.4
segment-routing mpls
area 0
mpls traffic-eng
interface Loopback0
prefix-sid absolute 20401
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
interface GigabitEthernet0/0/0/2
network point-to-point
!
interface GigabitEthernet0/0/0/3
cost 30
network point-to-point
!
interface GigabitEthernet0/0/0/4
cost 50
network point-to-point
!
!
!
segment-routing
traffic-eng
interface Loopback0
ipv4 address 5.5.5.5 255.255.255.255
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.6.6.5 255.255.255.0
!
router ospf 1
router-id 5.5.5.5
segment-routing mpls
area 0
mpls traffic-eng
interface Loopback0
prefix-sid absolute 20501
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
!
!
segment-routing
traffic-eng
interface Loopback0
ipv4 address 6.6.6.6 255.255.255.255
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.7.7.6 255.255.255.0
!
router ospf 1
router-id 6.6.6.6
segment-routing mpls
area 0
mpls traffic-eng
interface Loopback0
prefix-sid absolute 20601
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
!
!
segment-routing
traffic-eng
pce
address ipv4 7.7.7.7
!
interface Loopback0
ipv4 address 7.7.7.7 255.255.255.255
!
interface GigabitEthernet0/0/0/0
ipv4 address 10.8.8.7 255.255.255.0
!
interface GigabitEthernet0/0/0/1
ipv4 address 10.9.9.7 255.255.255.0
!
router ospf 1
distribute link-state
router-id 7.7.7.7
segment-routing mpls
area 0
mpls traffic-eng
interface Loopback0
prefix-sid absolute 20701
!
interface GigabitEthernet0/0/0/0
network point-to-point
!
interface GigabitEthernet0/0/0/1
network point-to-point
!
!
!
segment-routing
traffic-eng
Disjoint Group設定無し
SR-TE Policyの設定
R1でEnd-pointに5.5.5.5、R2でEnd-pointに6.6.6.6を指定したSR-TE Policyを設定し、PCEにLSPの計算を依頼します。ただし、Disjoint Groupは設定しません。
segment-routing
traffic-eng
policy SR-TE_POLICY
color 1 end-point ipv4 5.5.5.5
autoroute
include all
!
candidate-paths
preference 10
dynamic
pcep
segment-routing
traffic-eng
policy SR-TE_POLICY
color 1 end-point ipv4 6.6.6.6
autoroute
include all
!
candidate-paths
preference 10
dynamic
pcep
PCEが計算したLSPの確認
R7が計算したR1とR2のLSPを見ると、両方とも、R3-R4間の10.3.3.0/24のリンクを経由していることが確認できます。
RP/0/RP0/CPU0:R7#show pce lsp pcc ipv4 1.1.1.1 detail
PCE's tunnel database:
----------------------
PCC 1.1.1.1:
Tunnel Name: cfg_SR-TE_POLICY_discr_10
Color: 1
Interface Name: srte_c_1_ep_5.5.5.5
LSPs:
LSP[0]:
source 1.1.1.1, destination 5.5.5.5, tunnel ID 1, LSP ID 1
State: Admin up, Operation up
Setup type: Segment Routing
Binding SID: 24006
Maximum SID Depth: 10
Preference: 10
Bandwidth: signaled 0 kbps, applied 0 kbps
PCEP information:
PLSP-ID 0x1, flags: D:1 S:0 R:0 A:1 O:1 C:0
LSP Role: Single LSP
State-sync PCE: None
PCC: 1.1.1.1
LSP is subdelegated to: None
Reported path:
Metric type: TE, Accumulated Metric 3
SID[0]: Node, Label 20501, Address 5.5.5.5
Computed path: (Local PCE)
Computed Time: Sat Jun 27 19:46:14 UTC 2020 (00:02:01 ago)
Metric type: TE, Accumulated Metric 3
SID[0]: Node, Label 20501, Address 5.5.5.5
Recorded path:
None
Disjoint Group Information:
None
RP/0/RP0/CPU0:R7#show pce lsp pcc ipv4 2.2.2.2 detail
PCE's tunnel database:
----------------------
PCC 2.2.2.2:
Tunnel Name: cfg_SR-TE_POLICY_discr_10
Color: 1
Interface Name: srte_c_1_ep_6.6.6.6
LSPs:
LSP[0]:
source 2.2.2.2, destination 6.6.6.6, tunnel ID 1, LSP ID 1
State: Admin up, Operation up
Setup type: Segment Routing
Binding SID: 24006
Maximum SID Depth: 10
Preference: 10
Bandwidth: signaled 0 kbps, applied 0 kbps
PCEP information:
PLSP-ID 0x1, flags: D:1 S:0 R:0 A:1 O:1 C:0
LSP Role: Single LSP
State-sync PCE: None
PCC: 2.2.2.2
LSP is subdelegated to: None
Reported path:
Metric type: TE, Accumulated Metric 3
SID[0]: Node, Label 20601, Address 6.6.6.6
Computed path: (Local PCE)
Computed Time: Sat Jun 27 19:46:24 UTC 2020 (00:02:25 ago)
Metric type: TE, Accumulated Metric 3
SID[0]: Node, Label 20601, Address 6.6.6.6
Recorded path:
None
Disjoint Group Information:
None
疎通確認
R1の1.1.1.1からR5の5.5.5.5へTracerouteを実施します。
R3-R4間の10.3.3.0/24のリンクを経由していることが確認できます。
RP/0/RP0/CPU0:R1#traceroute 5.5.5.5 source 1.1.1.1
Type escape sequence to abort.
Tracing the route to 5.5.5.5
1 10.1.1.3 [MPLS: Label 20501 Exp 0] 116 msec 127 msec 104 msec
2 10.3.3.4 [MPLS: Label 20501 Exp 0] 100 msec 96 msec 87 msec
3 10.6.6.5 100 msec * 123 msec
R2の2.2.2.2からR6の6.6.6.6へTracerouteを実施します。
R3-R4間の10.3.3.0/24のリンクを経由していることが確認できます。
RP/0/RP0/CPU0:R2#traceroute 6.6.6.6 source 2.2.2.2
Type escape sequence to abort.
Tracing the route to 6.6.6.6
1 10.2.2.3 [MPLS: Label 20601 Exp 0] 198 msec 119 msec 158 msec
2 10.3.3.4 [MPLS: Label 20601 Exp 0] 150 msec 147 msec 142 msec
3 10.7.7.6 168 msec * 170 msec
Disjoint Group設定有り
SR-TE Policyの設定
R1でEnd-pointに5.5.5.5、R2でEnd-pointに6.6.6.6を指定したSR-TE Policyを設定し、PCEPにLSPの計算を依頼します。
また、R1とR2のLSPが同じリンクを経由しないように、Disjoint Groupは設定します。同じリンクを経由させないDisjoint Groupはdisjoint-path group-id <group-id> type linkコマンドで設定します。
segment-routing
traffic-eng
policy SR-TE_POLICY
color 1 end-point ipv4 5.5.5.5
autoroute
include all
!
candidate-paths
preference 10
dynamic
pcep
!
!
constraints
disjoint-path group-id 1 type link
segment-routing
traffic-eng
policy SR-TE_POLICY
color 1 end-point ipv4 6.6.6.6
autoroute
include all
!
candidate-paths
preference 10
dynamic
pcep
!
!
constraints
disjoint-path group-id 1 type link
PCEが計算したLSPの確認
R7が計算したR1とR2のLSPを見ると、R1のLSPはR3-R4間の10.3.3.0/24のリンク、R2のLSPはR3-R4間の10.4.4.0/24のリンクを経由していることが確認できます。
RP/0/RP0/CPU0:R7#show pce lsp pcc ipv4 1.1.1.1 detail
PCE's tunnel database:
----------------------
PCC 1.1.1.1:
Tunnel Name: cfg_SR-TE_POLICY_discr_10
Color: 1
Interface Name: srte_c_1_ep_5.5.5.5
LSPs:
LSP[0]:
source 1.1.1.1, destination 5.5.5.5, tunnel ID 2, LSP ID 1
State: Admin up, Operation up
Setup type: Segment Routing
Binding SID: 24011
Maximum SID Depth: 10
Preference: 10
Bandwidth: signaled 0 kbps, applied 0 kbps
PCEP information:
PLSP-ID 0x2, flags: D:1 S:0 R:0 A:1 O:1 C:0
LSP Role: Exclude LSP
State-sync PCE: None
PCC: 1.1.1.1
LSP is subdelegated to: None
Reported path:
Metric type: TE, Accumulated Metric 3
SID[0]: Node, Label 20501, Address 5.5.5.5
Computed path: (Local PCE)
Computed Time: Sat Jun 27 20:04:50 UTC 2020 (00:05:12 ago)
Metric type: TE, Accumulated Metric 3
SID[0]: Node, Label 20501, Address 5.5.5.5
Recorded path:
None
Disjoint Group Information:
Type Link-Disjoint, Group 1
RP/0/RP0/CPU0:R7#show pce lsp pcc ipv4 2.2.2.2 detail
PCE's tunnel database:
----------------------
PCC 2.2.2.2:
Tunnel Name: cfg_SR-TE_POLICY_discr_10
Color: 1
Interface Name: srte_c_1_ep_6.6.6.6
LSPs:
LSP[0]:
source 2.2.2.2, destination 6.6.6.6, tunnel ID 2, LSP ID 2
State: Admin up, Operation up
Setup type: Segment Routing
Binding SID: 24008
Maximum SID Depth: 10
Preference: 10
Bandwidth: signaled 0 kbps, applied 0 kbps
PCEP information:
PLSP-ID 0x2, flags: D:1 S:0 R:0 A:1 O:1 C:0
LSP Role: Disjoint LSP
State-sync PCE: None
PCC: 2.2.2.2
LSP is subdelegated to: None
Reported path:
Metric type: TE, Accumulated Metric 32
SID[0]: Node, Label 20301, Address 3.3.3.3
SID[1]: Adj, Label 24003, Address: local 10.4.4.3 remote 10.4.4.4
SID[2]: Node, Label 20601, Address 6.6.6.6
Computed path: (Local PCE)
Computed Time: Sat Jun 27 20:04:50 UTC 2020 (00:05:26 ago)
Metric type: TE, Accumulated Metric 32
SID[0]: Node, Label 20301, Address 3.3.3.3
SID[1]: Adj, Label 24003, Address: local 10.4.4.3 remote 10.4.4.4
SID[2]: Node, Label 20601, Address 6.6.6.6
Recorded path:
None
Disjoint Group Information:
Type Link-Disjoint, Group 1
疎通確認
R1の1.1.1.1からR5の5.5.5.5へTracerouteを実施します。
R3-R4間の10.3.3.0/24のリンクを経由していることが確認できます。
RP/0/RP0/CPU0:R1#traceroute 5.5.5.5 source 1.1.1.1
Type escape sequence to abort.
Tracing the route to 5.5.5.5
1 10.1.1.3 [MPLS: Label 20501 Exp 0] 116 msec 127 msec 104 msec
2 10.3.3.4 [MPLS: Label 20501 Exp 0] 100 msec 96 msec 87 msec
3 10.6.6.5 100 msec * 123 msec
R2の2.2.2.2からR6の6.6.6.6へTracerouteを実施します。
R3-R4間の10.4.4.0/24のリンクを経由していることが確認できます。
RP/0/RP0/CPU0:R2#traceroute 6.6.6.6 source 2.2.2.2
Type escape sequence to abort.
Tracing the route to 6.6.6.6
1 10.2.2.3 [MPLS: Labels 24003/20601 Exp 0] 84 msec 87 msec 105 msec
2 10.4.4.4 [MPLS: Label 20601 Exp 0] 131 msec 106 msec 163 msec
3 10.7.7.6 98 msec * 72 msec
コメント