MPLS Traffic Engineering Fast Reroute Link Protection

MPLS Traffic Engineering Fast Reroute Link Protection

Configuration Guides(IOS XE Everest 16.6)
Multiprotocol Label Switching (MPLS)
MPLS Traffic Engineering Path Link and Node Protection Configuration Guide
Chap.2 MPLS Traffic Engineering--Fast Reroute Link and Node Protection

■ 1 ■ Configuration Guides
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/mp_te_path_protect/configuration/xe-16-6/mp-te-path-protect-xe-16-6-book/mpls-traffic-engineering-fast-reroute-link-and-node-protection.html

Chap.3 MPLS TE Link and Node Protection with RSVP Hellos Support
ここも同じようなことが書いてあった。

■ 2 ■ 雑に言うと...

https://www.ciscolive.com/c/dam/r/ciscolive/us/docs/2017/pdf/BRKMPL-2100.pdf
Deploying MPLS Traffic Engineering (Cisco-Live)

tunnel使って迂回経路を作るやり方
Link 保護 NHOP (Next-hop) Backup Tunnel
Node 保護 NNHOP(Next-next-hop) Backup Tunnel

各interfaceで " mpls ip " 不要!(CiscoPress見て気づく)

you do not need to configure Label Distribution Protocol (LDP) on the interfaces.
Therefore, the MPLS network does not strictly need to have mpls ip on the interfaces,
if TE is deployed.

検証した構成↓↓↓

f:id:chimay_wh:20201123104206p:plain

f:id:chimay_wh:20201123104224p:plain

----- node point (common) -----
= 1 = MPLS-TE enable
(config)#mpls traffic-eng tunnels
(config-if)#mpls traffic-eng tunnels
(config-if)#ip rsvp bandwidth 100000 100000

※ bandwidth は [kbps]
default は interface の75%!
100Mbps にしてみたかっただけ。

int XX
ip rsvp bandwidth XXX XXX
と指定をしないとこうなる。

R5(config-if)#do sh run int g2
Building configuration...

Current configuration : 195 bytes
!
interface GigabitEthernet2
description R4:GigabitEthernet2
ip address 10.4.5.5 255.255.255.0
negotiation auto
mpls traffic-eng tunnels
no mop enabled
no mop sysid
ip rsvp bandwidth
end

R5(config-if)#do sh int g2 | i BW
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
R5(config-if)#
R5(config-if)#do sh ip rsvp int
interface rsvp allocated i/f max flow max sub max VRF
Gi2 ena 0 750M 750M 0
R5(config-if)#

= 2 = MPLS-TE enable (OSPF)

 router ospf 1
  network 10.0.0.0 0.255.255.255 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0

----- Head end router point -----

= 1 = Primary TE tunnel

interface Tunnel14
no ip address
tunnel mode mpls traffic-eng
tunnel destination 10.10.10.104
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 100000
tunnel mpls traffic-eng path-option 1 dynamic
tunnel mpls traffic-eng fast-reroute
end

The default priority is 7 (for both Setup and Hold).


----- PLR router point -----

= 1 = Backup TE tunnel create

- tunnel -
interface Tunnel24
description LINK_R2_TO_R4_PROTECT
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 10.10.10.104
tunnel mpls traffic-eng path-option 1 explicit name BACKUP_TE_LSP
end

- steering -
ip explicit-path name BACKUP_TE_LSP enable
index 1 next-address 10.2.3.3
index 2 next-address 10.3.4.4

= 2 = apply to interface

interface GigabitEthernet3
description R4:GigabitEthernet3
ip address 10.2.4.2 255.255.255.0
negotiation auto
mpls traffic-eng tunnels
mpls traffic-eng backup-path Tunnel24
no mop enabled
no mop sysid
ip rsvp bandwidth 100000 100000
end

 

■ 3 ■ config
----- R1(Head end) -------------------------

mpls traffic-eng tunnels
!
interface GigabitEthernet1
description R2:GigabitEthernet1
ip address 10.1.2.1 255.255.255.0
negotiation auto
mpls traffic-eng tunnels
no mop enabled
no mop sysid
ip rsvp bandwidth 100000 100000
!
interface Tunnel14
description PRIMARY_TE_LSP_TO_R4
no ip address
tunnel mode mpls traffic-eng
tunnel destination 10.10.10.104
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 100000
tunnel mpls traffic-eng path-option 1 dynamic
tunnel mpls traffic-eng fast-reroute
!
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0

----- R2(PLR) ------------------------------

mpls traffic-eng tunnels
!
interface GigabitEthernet2
description R3:GigabitEthernet2
ip address 10.2.3.2 255.255.255.0
negotiation auto
mpls traffic-eng tunnels
no mop enabled
no mop sysid
ip rsvp bandwidth 100000 100000
!
interface GigabitEthernet3
description R4:GigabitEthernet3
ip address 10.2.4.2 255.255.255.0
negotiation auto
mpls traffic-eng tunnels
mpls traffic-eng backup-path Tunnel24
no mop enabled
no mop sysid
ip rsvp bandwidth 100000 100000
!
interface Tunnel24
description LINK_R2_TO_R4_PROTECT
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 10.10.10.104
tunnel mpls traffic-eng path-option 1 explicit name BACKUP_TE_LSP
!

!

ip explicit-path name BACKUP_TE_LSP enable
index 1 next-address 10.2.3.3
index 2 next-address 10.3.4.4

!
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0

----- R3 ----------------------------------

mpls traffic-eng tunnels
!
interface GigabitEthernet1
description R4:GigabitEthernet1
ip address 10.3.4.3 255.255.255.0
negotiation auto
mpls traffic-eng tunnels
no mop enabled
no mop sysid
ip rsvp bandwidth 100000 100000
!
interface GigabitEthernet2
description R2:GigabitEthernet2
ip address 10.2.3.3 255.255.255.0
negotiation auto
mpls traffic-eng tunnels
no mop enabled
no mop sysid
ip rsvp bandwidth 100000 100000
!
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0

----- R4(MP) -------------------------------

mpls traffic-eng tunnels
!
interface GigabitEthernet1
description R3:GigabitEthernet1
ip address 10.3.4.4 255.255.255.0
negotiation auto
mpls traffic-eng tunnels
no mop enabled
no mop sysid
ip rsvp bandwidth 100000 100000
!
interface GigabitEthernet3
description R2:GigabitEthernet3
ip address 10.2.4.4 255.255.255.0
negotiation auto
mpls ip
mpls traffic-eng tunnels
no mop enabled
no mop sysid
ip rsvp bandwidth 100000 100000
!
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0

----- R5 -----------------------------------

今回関係ないので割愛

 

■ 4 ■ 確認
===== R1(Head end) =====

-- R1 LFIB --

R1#sh mpls forwarding-table
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
16 Pop Label 14/1[TE-Bind] 0 Tu14 point2point
R1#


-- R1 TE LSP --

R1#show mpls traffic-eng tunnels brief
Signalling Summary:
LSP Tunnels Process: running
Passive LSP Listener: running
RSVP Process: running
Forwarding: enabled
auto-tunnel:
p2p Disabled (0), id-range:62336-64335

Periodic reoptimization: every 3600 seconds, next in 240 seconds
Periodic FRR Promotion: Not Running
Periodic auto-bw collection: every 300 seconds, next in 240 seconds
SR tunnel max label push: 13 primary path labels (13 repair path labels)

P2P TUNNELS/LSPs:
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
PRIMARY_TE_LSP_TO_R4 10.10.10.104 - Gi1 up/up
Displayed 1 (of 1) heads, 0 (of 0) midpoints, 0 (of 0) tails

P2MP TUNNELS:
Displayed 0 (of 0) P2MP heads

P2MP SUB-LSPS:
Displayed 0 P2MP sub-LSPs:
0 (of 0) heads, 0 (of 0) midpoints, 0 (of 0) tails

 

 

R2 - R3 のlinkがUPの場合

R1#sh ip rou 10.10.10.104
Routing entry for 10.10.10.104/32
Known via "ospf 1", distance 110, metric 3, type intra area
Last update from 10.1.2.2 on GigabitEthernet1, 00:01:35 ago
Routing Descriptor Blocks:
* 10.1.2.2, from 10.10.10.104, 00:01:35 ago, via GigabitEthernet1
Route metric is 3, traffic share count is 1
R1#
R1#traceroute 10.10.10.104
Type escape sequence to abort.
Tracing the route to 10.10.10.104
VRF info: (vrf in name/id, vrf out name/id)
1 10.1.2.2 2 msec 1 msec 1 msec
2 10.2.4.4 2 msec * 16 msec
R1#

 

R2 - R3 のlinkがDOWNした場合

どれだけFastなのかpingで確認した。結果めっちゃ早い!

R1#ping 10.10.10.104 re 1000000
Type escape sequence to abort.
Sending 1000000, 100-byte ICMP Echos to 10.10.10.104, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 99 percent (813/814), round-trip min/avg/max = 1/2/34 ms
R1#
R1#sh ip rou 10.10.10.104
Routing entry for 10.10.10.104/32
Known via "ospf 1", distance 110, metric 4, type intra area
Last update from 10.1.2.2 on GigabitEthernet1, 00:00:20 ago
Routing Descriptor Blocks:
* 10.1.2.2, from 10.10.10.104, 00:00:20 ago, via GigabitEthernet1
Route metric is 4, traffic share count is 1
R1#
R1#traceroute 10.10.10.104
Type escape sequence to abort.
Tracing the route to 10.10.10.104
VRF info: (vrf in name/id, vrf out name/id)
1 10.1.2.2 2 msec 2 msec 2 msec
2 10.2.3.3 3 msec 3 msec 2 msec
3 10.3.4.4 3 msec * 3 msec
R1#

高速に迂回している。まさにfast-reroute

===== R2(PLR) =====

-- R1 LFIB --

R2#show mpls forwarding-table
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 [T] Pop Label 24/1[TE-Bind] 0 Tu24 point2point
18 16 10.10.10.101 14 [71] \
0 Gi2 10.2.3.3

[T] Forwarding through a LSP tunnel.
View additional labelling info with the 'detail' option
R2#

-- R2 TE LSP --

R2#show mpls traffic-eng tunnels brief
Signalling Summary:
LSP Tunnels Process: running
Passive LSP Listener: running
RSVP Process: running
Forwarding: enabled
auto-tunnel:
p2p Disabled (0), id-range:62336-64335

Periodic reoptimization: every 3600 seconds, next in 2316 seconds
Periodic FRR Promotion: Not Running
Periodic auto-bw collection: every 300 seconds, next in 216 seconds
SR tunnel max label push: 13 primary path labels (13 repair path labels)

P2P TUNNELS/LSPs:
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
LINK_R2_TO_R4_PROTECT 10.10.10.104 - Gi2 up/up
PRIMARY_TE_LSP_TO_R4 10.10.10.104 Gi1 Gi2 up/up
Displayed 1 (of 1) heads, 1 (of 1) midpoints, 0 (of 0) tails

P2MP TUNNELS:
Displayed 0 (of 0) P2MP heads

P2MP SUB-LSPS:
Displayed 0 P2MP sub-LSPs:
0 (of 0) heads, 0 (of 0) midpoints, 0 (of 0) tails
R2#

===== R3 ==========================

----- R3 LFIB ------------------------

R3#show mpls forwarding-table
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
16 Pop Label 10.10.10.101 14 [71] \
0 Gi1 10.3.4.4
17 Pop Label 10.10.10.102 24 [4] \
0 Gi1 10.3.4.4
R3#

-- R3 TE LSP --

R3#show mpls traffic-eng tunnels brief
Signalling Summary:
LSP Tunnels Process: running
Passive LSP Listener: running
RSVP Process: running
Forwarding: enabled
auto-tunnel:
p2p Disabled (0), id-range:62336-64335

Periodic reoptimization: every 3600 seconds, next in 2540 seconds
Periodic FRR Promotion: Not Running
Periodic auto-bw collection: every 300 seconds, next in 140 seconds
SR tunnel max label push: 13 primary path labels (13 repair path labels)

P2P TUNNELS/LSPs:
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
PRIMARY_TE_LSP_TO_R4 10.10.10.104 Gi2 Gi1 up/up
LINK_R2_TO_R4_PROTECT 10.10.10.104 Gi2 Gi1 up/up
Displayed 0 (of 0) heads, 2 (of 2) midpoints, 0 (of 0) tails

P2MP TUNNELS:
Displayed 0 (of 0) P2MP heads

P2MP SUB-LSPS:
Displayed 0 P2MP sub-LSPs:
0 (of 0) heads, 0 (of 0) midpoints, 0 (of 0) tails
R3

===== R4(MP) =====

----- R4 LFIB ---------------------

R4#show mpls forwarding-table
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
16 No Label 10.1.2.0/24 0 Gi3 10.2.4.2
17 No Label 10.2.3.0/24 0 Gi3 10.2.4.2
No Label 10.2.3.0/24 0 Gi1 10.3.4.3
18 No Label 10.3.5.0/24 0 Gi1 10.3.4.3
No Label 10.3.5.0/24 0 Gi2 10.4.5.5
19 No Label 10.10.10.102/32 0 Gi3 10.2.4.2
20 No Label 10.10.10.103/32 0 Gi1 10.3.4.3
21 No Label 10.10.10.105/32 0 Gi2 10.4.5.5
22 No Label 10.10.10.101/32 0 Gi3 10.2.4.2
R4#

R4#show mpls traffic-eng tunnels brief
Signalling Summary:
LSP Tunnels Process: running
Passive LSP Listener: running
RSVP Process: running
Forwarding: enabled
auto-tunnel:
p2p Disabled (0), id-range:62336-64335

Periodic reoptimization: every 3600 seconds, next in 1408 seconds
Periodic FRR Promotion: Not Running
Periodic auto-bw collection: every 300 seconds, next in 208 seconds
SR tunnel max label push: 13 primary path labels (13 repair path labels)

P2P TUNNELS/LSPs:
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
PRIMARY_TE_LSP_TO_R4 10.10.10.104 Gi1 - up/up
LINK_R2_TO_R4_PROTECT 10.10.10.104 Gi1 - up/up
Displayed 0 (of 0) heads, 0 (of 0) midpoints, 2 (of 2) tails

P2MP TUNNELS:
Displayed 0 (of 0) P2MP heads

P2MP SUB-LSPS:
Displayed 0 P2MP sub-LSPs:
0 (of 0) heads, 0 (of 0) midpoints, 0 (of 0) tails
R4#


■ 5 ■ Command References

Cisco IOS Multiprotocol Label Switching Command Reference
tunnel mpls traffic-eng fast-reroute
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/mpls/command/mp-cr-book/mp-t1.html#wp1502736936

Cisco IOS Multiprotocol Label Switching Command Reference
mpls traffic-eng backup-path
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/mpls/command/mp-cr-book/mp-m3.html#wp1041326310


--- 参考図書 ---

MPLS Configuration on Cisco IOS Software (CiscoPress)
Chap.9 MPLS Traffic Engineering

MPLS Fundamentals (CiscoPress)
Chap.8 MPLS Traffic Engineering

--- 参考URL ---

https://www.ciscolive.com/c/dam/r/ciscolive/us/docs/2017/pdf/BRKMPL-2100.pdf
Deploying MPLS Traffic Engineering (Cisco-Live)