Вы находитесь на странице: 1из 93

MPLS Traffic Engineering

training

1
Objectives

• MPLS TE introduction
• IGP extensions for MPLS TE
• OSPF
• ISIS

• Path Selection - CSPF


• MPLS TE signaling – LSP Setup - RSVP
• Pushing Traffic in tunnel
• MPLS Traffic Engineering - Configuration
• Fast ReRouting
• AutoTunnel

2
MPLS TE
Introduction

3
MPLS TE - Motivations

• Allows to engineer traffic across core


network, i.e. control where traffic is sent
• Unequal load sharing
• Explicit path
• Dynamic path calculation based on
defined constrains
• Foundation for Fast ReRouting

4
Link Utilization
R8 R9
R3
R4
R2

R5
R1

R6
R7

IP (Mostly) Uses Destination-Based Least-Cost Routing


Flows from R8 and R1 Merge at R2 and Become Indistinguishable
From R2, Traffic to R3, R4, R5, R9 Use Upper Route

Alternate Path Under-Utilized


5
MPLS Traffic Engineering
key mechanisms

• MPLS Traffic Engineering


–Constrained-based Path Selection Algorithm
–Extensions to OSPF/ISIS for flooding of
resources / policy information
–MPLS as the forwarding mechanism
–RSVP as the mechanism for establishing Label
Switched Paths (LSPs)
–Use of the explicitly routed LSP’s in the
forwarding table
6
TE Components

(1) Information Distribution


–IGP distributes constraints and resource information from the link
management module
–available bandwidth is just one type of constraint

(2) Path Selection Algorithm


–selects paths that uses the link-state database containing flooded
topology and resource information
–selected paths must obey the constraints
–operates at LSP headend

7
TE Components

(3) Route Setup


–Uses RSVP with TE extensions to signal and maintain LSPs based on
calculated paths

(4) Link Admission Control


–Operates at each LSP hop
–Decides which tunnels may have resources
–Does link call admission on the RSVP signalling messages
–Does bookkeeping of topology and resource information to be
flooded

(5) Traffic Engineering Control


–Establishes & maintains tunnels

8
Information Distribution
IGP Extensions

9
IGP

• All path calculation is performed by the


originator of the LSP (head-end)
• IGP must be extended to carry additional
information to the head-end
• Head-end must know about alternative paths (not
included in shortest path computation)
• Hence : no distance-vector protocols
• OSPF and IS-IS are link-state, thus ok

10
IGP Backward Compatibility

• IGP changes must be backward compatible (non-TE


routers should interoperate with TE routers)
• MPLS TE uses opaque extensions of OSPF and new
TLV’s for ISIS :
OSPF : opaque LSAs are ignored by routers that do not
understand them
IS-IS : non-recognized TLVs are ignored

11
IGP Extensions
OSPF

12
OSPF

• Opaque LSAs = LSA type 9, 10 and 11


• A generalized mechanism to allow for future
extensibility of OSPF
• Type 9 : link-local scope
LSAs are not flooded beyond the local (sub)network

• Type 10 : area-local scope


LSAs are not flooded beyond the borders of the area

• Type 11 : AS scope
LSAs are flooded throughout the AS
equivelant to type-5 LSAs
– flooded throughout transit areas
– not flooded into stub areas

13
Opaque Functionality
•An opaque-capable router only sets the O-bit in
the options field of DBD packets

•Opaque LSAs are not flooded to non-opaque-


capable routers

•If a LS Update packet is send as multicast, a


non-opaque-capable router could receive an
opaque LSA

•A non-opaque-capable router will discard


opaque LSAs
14
Show IP OSPF

biebel#show ip ospf
Routing Process "ospf 1" with ID 172.17.243.25
Supports only single TOS(TOS0) routes
Supports opaque LSA
SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
...
External flood list length 0
Area BACKBONE(0.0.0.0) (Inactive)
Number of interfaces in this area is 0
Area has RRR enabled
Area has no authentication
SPF algorithm executed 2 times
Area ranges are
Number of LSA 0. Checksum Sum 0x0
Number of opaque link LSA 0. Checksum Sum 0x0
Number of DCbitless LSA 0
... 15
OSPF

• Opaque LSA type 10 is used to extend OSPF for


traffic engineering (TE)
result : TE LSAs are only flooded in one area
• Opaque type is 1
• A new LSA, TE LSA is defined. It describes routers,
p2p links and connections to multi-access
networks

16
Generic LSA Header

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | LS type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

17
OSPF TE LSA Format

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 10 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 | Reserved | Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VARIABLE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VARIABLE |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

18
TE LSA ID & LSA Number

• Instance = used to identify the TE Opaque LSAs from


one OSPF router*
• A maximum of 65536 TE LSAs may be sourced by a
single router

*The advertising router ID uniquely identifies the TE LSAs,


even if different routers use the same instance
19
TE LSA Payload
• The variable part consists of TLVs (Type-
Variable Length - Value)
• TLV format :

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

length is in octets
TLV is padded to a 4-byte alignment
padding is not included in the length field
types between 32768 and 65535 are vendor specific

20
Sub-TLV Types

Name Sub-TLV Length


type (octets)

Link type 1 1

Link ID 2 4

Local interface IP address 3 4

Remote interface IP address 4 4

Traffic engineering metric 5 4

Maximum bandwidth 6 4

Maximum reservable bandwidth 7 4


Unreserved bandwidth 8 32

Resource class/color 9 4
21
IGP Extensions
ISIS

22
New Extended IS Reachability TLV

• TE specific infos are encoded as sub-TLVs in Extended


IS Reachability TLV (type is 22)
• 7 octets of system ID and pseudonode number
• 3 octets of default metric
• 1 octet of length of sub-TLVs
• 0-244 octets of sub-TLVs
• Each IS neighbor entry gets the Sub-TLVs associated
with corresponding interface

23
Sub-TLV Types

Name Sub-TVLV Length


type (octets)

Administrative group 3 4
(color)

IPv4 interface address 6 4

IPv4 neighbor address 8 4

Maximum link bandwidth


9 4

Reservable link bandwidth


10 2
Unreserved bandwidth 11 32
TE default metric 18 3
Reserved for Cisco specific 250-254
extensions
Reserved for future expansion 255
24
Path Selection
CSPF

25
Path Selection - CSPF

• It’s the tunnel head who’s running Constrained


SPF to find the best path towards tunnel
destination
• If explicit path is used, CSPF is used to verify
validity of the path
• CSPF runs only for path setup/reoptimization
• CSPF takes into account TE specific parameters
flooded by IGP

26
Path Selection - CSPF
• LSP Paths are layed out on the network
according to :
1. Path setup option : dynamically or explicit, configured with a
preference : which path should an LSP take?
Lowest path option wins
If dynamically, what is the lowest cost path for the LSP?
An LSP path cost is :
the sum of the cost of each link
by default, the cost of the links is the IGP cost of the link
may be overriden by a configured cost for MPLS TE
2. Tunnel priority : can use bandwidth already used by some other
tunnels with lower priority
3. Link resource attributes and tunnel affinity bits : determine which
tunnel can cross which links?
27
Path computation

• Input:
– Configured attributes of TE tunnels originated at this router
– Attributes associated with resources
(available from IGP)
– Topology state information
(available from IGP)
– Current path if re-optimizing

28
Path computation

• Prune links if
–insufficient bandwidth
–fails resource policy
• Compute minimum metric path
• Path computation is “on demand”
–upon request to establish an LSP tunnel

29
Example

BW(3)=80
A 1000 0100 B
BW(3)=60

0000 0000
0000 D BW(3)=80
BW(3)=50 BW(3)=20 E
0010
1000
BW(3)=50 BW(3)=70
G
• Tunnel’s request:
Priority 3, BW = 30 units,
Policy string: 0000, mask: 0011
30
Path Selection

• Output:
–explicit route - expressed as a sequence of
router IP addresses
•interface addresses for numbered links
•loopback address for unnumbered links
–used as an input to tunnel setup

31
Tunnel Cost vs LSP Cost

• Value of the tunnel cost?


–always the lowest IGP cost to the tunnel destination
–even if the LSP path deviates from the lowest IGP cost path!
–this is the cost used by the IGP, if the TE tunnel is announced to the
IGP
–the tunnel cost advertised to the IGP can be changed by the command
“autoroute metric absolute / relative”

• Value of the LSP cost?


–sum of the cost of all the links along the path
–cost of the links is the IGP cost unless overridden by the command
“mpls traffic-eng administrative weight”

32
MPLS TE Signaling
LSP Setup
RSVP

33
LSP Tunnel Setup

• Uses RSVP, with a few additions


• Initiated by source node (head end) with a
Path Message
• The Path message is routed according to
ERO object containing all hops of the path
computed by CSPF
• Admission Control is made on each hop to
verify requested bandwidth is available
• Labels are established with reply
(Resv Message)
34
Tunnel Setup

R8 R9
R3
R4
Pop
R2

R1 32
R5
49
17 R6 R7
Path
22
Resv
Setup: Path (R1->R2->R6->R7->R4->R9) Session 5, ID 1

Reply: Communicates Labels and Label Operations


Reserves bandwidth on each link
35
Link Admission Control

• Determines if resources are available to admit call


• May tear down tunnels with a lower holding priority =
preemption
• Does the local accounting
• Triggers IGP distribution when resource thresholds are
crossed

36
Preemption

• Preemption assures that a high priority


trunk can always be routed through a
favorable path
• Trunks can preempt (tear down) other
trunks when needed
• A trunk can be a (non-)preemptor and/or
(non-)preemptable

37
Rerouting LSP tunnels

• “make-before-break”
–switch traffic from old LSP to new LSP before tearing down
old LSP
–no double counting resource usage
•if double counting : could prevent establishment of new LSP

• Periodic re-optimization

38
Non-disruptive rerouting - new path setup

R8 R9
R3
R4
Pop
R2

R1 32
R5
49
17 R6 R7
22

Current Path (ERO = R1->R2->R6->R7->R4->R9)

New Path (ERO = R1->R2->R3->R4->R9) - shared with Current Path

Until R9 gets new Path Message, current Resv is refreshed

39
Non-disruptive rerouting - switching paths

R8 R9
R3
R4
Pop
R2 89
26 Pop

R1 32
R5
38
49 17 R6 R7
22

Resv: allocates labels for both paths


Reserves bandwidth once per link

PathTear can then be sent to remove old path (and release


resources)
40
Pushing Traffic
on TE Tunnels

41
Mapping Traffic to the MPLS TE Tunnel

Putting traffic to TE tunnels can be done in these way :


• Via the IGP
1. AA -> configure the “tunnel mpls traffic-eng autoroute
announce” command
• Add the tunnel in SPF calculation
• Tunnel NOT added in IGP DB
2. FA -> configure the ‘tunnel mpls traffic-eng forwarding-
adjacency ’ command
• Tunnel is added in IGP DB
• Symetrical tunnel required
• Configure a static route and point to the MPLS TE tunnel
• Policy route (PBR) and ‘set interface tunnel’

42
Autoroute Announce (AA)

• Automatic assignment based on IGP


• Modified next-hop calculation:
– the next hop of the tunnel end point node is
set to the tunnel interface
–nodes downstream of the tunnel will also
have the tunnel interface as next hop
–Local to head end

43
Modified Next-hop Calculation
TE
tunnel TE tunnel

A B C D E F G
• tunnel to router C will be the next-hop for traffic to
router C, D and E
• tunnel to router F will be the next-hop for traffic to
router F and G

44
Assigning Traffic to Tunnels

R8
R3
R4
R2
R1
R5

R6 R7

Tunnel1: Path (R1->R2->R6->R7->R4)


Tunnel2: Path (R1->R2->R3->R4->R5)
Normal Dijkstra, except tunnel interfaces used when tunnel
tail is encountered

45
Assigning Traffic to Tunnels

R8
R3
R4
R2
R1
R5
R6 R7

Tunnel1 Tunnel2
R4 & R8 have Tunnel1 interface as next hop
R5 has Tunnel2 interface as next hop

46
Forwarding Adjacency (FA)

• TE tunnel added in IGP DB


• Cost of tunnel doesn’t depend on the
tunnel path :
• OSPF : derived from bandwidth of tunnel
• ISIS : default cost = 10
• Need to modify the cost of tunnel in
order to push traffic on it
• Need to be careful to avoid routing loops
• Required symetrical tunnel
47
MPLS Traffic Engineering
Configuration

48
Turning on MPLS Traffic Engineering

router(config)#mpls traffic-eng tunnels

global command to enable mpls traffic-engineering


tunnels
router(config-if)#mpls traffic-eng tunnels
router(config-if)#ip rsvp bandwidth
router(config-if)#mpls traffic-eng administrative-weight <1-4294967295>
router(config-if)#mpls traffic-eng attribute-flags <0x0-0xFFFFFFFF>

On each layer3 interface

SHOULD BE DONE ON ALL ROUTERS !


49
MPLS Traffic Engineering IGP Configuration

router(config)#router ospf 1
router(config-router)#mpls traffic-eng router-id <interface>
router(config-router)#mpls traffic-eng area <>

specify the area of OSPF into which TE will be run


TE information will be flooded into this area

router(config)#router isis
router(config-router)#mpls traffic-eng router-id <interface>
router(config-router)#mpls traffic-eng level-x
router(config-router)#metric style wide

specify the level into which TE will be run


Enable wide metric (mandatory for TE)

SHOULD BE DONE ON ALL ROUTERS


50
Configuring The Tunnel
Basic

router(config)#interface tunnel0
router(config-if)#ip unnumbered loopback0
router(config-if)#tunnel destination 10.1.1.1
router(config-if)#tunnel mode mpls traffic-eng
router(config-if)#tunnel mpls traffic-eng path-option <1-1000>
[explicit name <name> | dynamic] <lockdown>

router(config-if)#tunnel mpls traffic-eng bandwidth


router(config-if)#tunnel mpls traffic-eng priority <0-7> <0-7>
router(config-if)#tunnel mpls traffic-eng affinity <0x0-
0xFFFFFFFF> mask <0x0-0xFFFFFFFF>

ONLY ON HEAD END ROUTERS !


51
Configuring The Tunnel
Explicit Path

router(config)#ip explicit-path identifier 1


router(cfg-ip-expl-path)#next-address 10.1.1.4
router(cfg-ip-expl-path)#next-address 10.1.1.5
router(cfg-ip-expl-path)#next-address 10.1.1.6
router(cfg-ip-expl-path)#next-address 10.1.1.7
OR
router(cfg-ip-expl-path)#exclude-address x.x.x.x

ONLY ON HEAD END ROUTERS !


52
Configuring The Tunnel
Autoroute or FA Command

1) router(config-if)#tunnel mpls traffic-eng auto-route


announce

router(config-if)#tunnel mpls traffic-eng auto-route metric


absolute <1-4294967295>
OR
router(config-if)#tunnel mpls traffic-eng auto-route metric
relative <-10 - 10>

2) router(config-if)#tunnel mpls traffic-eng forwarding-


adjacency

router(config-if)#ip ospf cost < x >


router(config-if)#isis metric < x >

ONLY ON HEAD END ROUTERS ! 53


Fast ReRouting

54
Fast ReRouting

3 types :
• Path Protection (Global Repair)
• Link Protection (Local Repair)
• Node Protection (Local Repair)

55
Fast ReRouting

Path Protection

56
MPLS TE Path Protection

• MPLS TE Path Protection is a global repair


mechanism using protection switching
• The idea is to be able to set up a primary LSP AND
a back-up LSP (pre-signalled) so once the failure
has been detected and signalled (by the IGP or
RSVP signalling) to the head-end the traffic can be
switched onto the back-up LSP
• No path computation and signalling of the new LSP
once the failure has been detected and propagated
to the head-end (compared to LSP reroute)
• => Traffic can flow directly through backup tunnel
57
MPLS TE Path Protection
• Issues with Path protection
• The failure detection time may be unacceptable
especially for very sensitive traffic,
• The number of states in the network is doubled !!
• Doesn’t scale if many TE tunnels

• Path protection may be an attractive


solution if and only if:
• Just a few LSPs require protection
• A few hundreds of msecs convergence time is
acceptable
58
MPLS TE Path Protection

• Configuration
Router# show running interface tunnel37
interface tunnel37
tunnel destination 10.0.0.9
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 100
tunnel mpls traffic-eng affinity 0x0 mask 0x0
tunnel mpls traffic-eng path-option 10 explicit name path344
tunnel mpls traffic-eng path-option protect 10 explicit name path346

59
Fast ReRouting

Link Protection

60
MPLS TE FRR – Local protection
MPLS Fast Reroute local repair

• Link protection: the R3


backup tunnel tail-
head (MP) is one hop
away from the PLR R1 R2 R4 R5

R3 R4 R5
• Node protection: the
backup tunnel tail-end
R1 R2 R6 R7 R8
(MP) is two hops
away from the PLR.

R9
61
MPLS TE FRR – Local protection

• MPLS Fast Reroute link and node


protection is:
• LOCAL (compared to Path protection which is global
protection/restoration mechanisms) which allows to achieve the
50msecs convergence time
• Uses Protection (to provide fast rerouting)
• Non Revertive but the previous path may be reused if more
optimal (via reoptimization)
• Reoptimization with Make before break to find a more optimal
path

Only traffic over primary tunnels is protected, i.e.


Traffic flowing through LDP LSP over protected
interface is NOT protected
62
MPLS TE FRR – Local protection

• A key principle of Local repair is to


guaranty a very fast traffic recovery
with or without QOS guaranty
(bandwidth guaranty) during a
transient phase while other
mechanisms (reoptimization) are
used over a longer time scale.

63
MPLS TE FRR - Link Protection
Tunnel 0

R1 R2 R4 R5

• On R1
!
interface Tunnel0
ip unnumbered Loopback0 R3
no ip directed-broadcast
tunnel destination 10.0.1.102
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng autoroute announce
tunnel mpls traffic-eng priority 3 3 Tunnel 0 is configured as fast
tunnel mpls traffic-eng bandwidth 10000 reroutable
tunnel mpls traffic-eng path-option 1 dynamic
tunnel mpls traffic-eng record-route “Local Desired Protection” flag
tunnel mpls traffic-eng fast-reroute set in the SESSION_ATTRIBUTE
object
64
MPLS TE FRR - Link Protection

R1 R2 R4 R5
Tu99

No tunnel mpls
R3
traffic-eng
A Back-Up Tunnel Tu99 explicitly routed is configured on R2 autoroute
interface Tunnel99 announce
Use also: !
ip unnumbered Loopback0 Router (cfg-ip-expl-path)#
exclude-address a.b.c.d
no ip directed-broadcast
Where a.b.c.d is a link address
tunnel destination 10.0.1.100 or a router ID to exclude a node
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng priority 1 1
tunnel mpls traffic-eng bandwidth 10000 ip explicit-path name secours enable
next-address 10.0.1.123
tunnel mpls traffic-eng path-option 1 explicit name secours next-address 10.0.1.100
tunnel mpls traffic-eng record-route 65
MPLS TE FRR - Link Protection

On R2 R1 R2 R4 R5
Tu99
interface POS4/0
description Link to R4
ip address 10.1.13.2 255.255.255.252
no ip directed-broadcast R3
ip router isis
encapsulation ppp
mpls traffic-eng tunnels
mpls traffic-eng backup-path Tunnel99
mpls ip
no peer neighbor-route
crc 32
clock source internal
pos ais-shut
pos report lrdi
ip rsvp bandwidth 155000 155000
66
MPLS TE FRR - Link Protection

LDP
IP Packet 100.0.1.150

Tu0

R0 R1 R2 R4 R5 R6
26

Tu99

Tu50

R3

67
MPLS TE FRR - Link Protection
Traffic is running from R0’s loo to
IP Packet LDP R6’s loo(10.0.1.150)

Tu0

R0 R1 R2 R4 R5 R6
26 27 20

Tu99

Tu50

On R1
Show mpls for 100.0.1.150 32 det R3
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
26 20 10.0.1.150/32 0 Tu0 point2point
MAC/Encaps=4/12, MTU=4466, Tag Stack{27 20}, via PO0/0
0F008847 0001B00000014000
Fast Reroute Protection via {UnknownIF, outgoing label 27}
Per-packet load-sharing, slots: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

68
MPLS TE FRR - Link Protection
LDP Traffic is running from R0’s loo to R6’s
IP Packet
loo(10.0.1.150)

Tu0

22 20

R0 R1 R2 R4 20 R5 R6
26 27 20

Tu99

Tu50

On R2
sh mpls tra fast-reroute det
LFIB FRR Database Summary:: R3
Total Clusters: 1
Total Groups: 1 sh mpls for
Local Outgoing Prefix Bytes tag Outgoing NextHop
Total Items: 1 tag tag or VC or Tunnel Id switched interface

Link 10:: PO4/0 (Up, 1 group) ...


27 22 10.0.1.127 0 [1] 16896 PO4/0 point2point
Group 16:: PO4/0->Tu99 (Up, 1 member) ...

Transit Item 810D60 (complete) [FRR OutLabel: 22]


Key {incoming label 27}
69
MPLS TE FRR - Link Protection
LDP Traffic is running from R0’s loo to R6’s
IP Packet loo(10.0.1.150)

Tu0

20
22 20
R0 R1 R2 R4 R5 R6
26 27 20

Tu99
22 20

28 22 20
Tu50

t0: R2-R4 link fails


t1: R3
Data plane: R2 will immediately swap 27 <-> 22 (as before) and Push 28 (This is of
course done for all the protected LSPs crossing the R2-R4 link)
Control Plane registers for a link-down event. Once the RSVP process receives this
event, it will send out an RSVP PERR msg (O(s))
t2: R3 will do PHP

t3: R4 receives an identical labeled packet as before (Global Label Allocation needed)
70
MPLS TE FRR - Link Protection
LDP Traffic is running from R0’s loo to R6’s
loo(10.0.1.150)

Tu0

R0 R1 R2 R4 R5 R6
Path

Resv (unicast to phop=R2)


Path message is sent
onto the back-up LSP
(Does not create any
state on R3)

R3
2 remarks:
* The path message for the old Path are still forwarded onto the Back-Up LSP
* Modifications have been made to the RSVP code so that
- R2 could receive a Resv message from a different interface than the one used to
send the Path message
- R4 could receive a Path message from a different interface (R3-R4 in this case)
71
MPLS TE FRR - Link Protection

• The PLR SHOULD send a PathErr message with error


code of "Notify" (Error code =25) and an error value
field of ss00 cccc cccc cccc where ss=00 and the sub-
code = 3 ("Tunnel locally repaired").
 This will trigger the head-end reoptimization
• Then the TE LSP will be rerouted over an alternate Path
(may be identical) using Make Before Break.
• If primary LSP has one single path-option with explicit-
path, there is no possible re-optimization

72
MPLS TE FRR – Cost of the TE tunnel

While primary tunnel is protected, what about the cost of


the primary tunnel ?
• AA - once IGP gets notified of the link failure, best
IGP path to the tunnel destination might increase so
tunnel cost increases as well
• FA – no change

73
Fast ReRouting

Node Protection

74
MPLS TE FRR - Node Protection

• Node protection allows to configure a back-up


tunnel to the next-next-hop ! This allows to
protect against link AND node failure

Protection against R6 failure R3 R4 R5

R1 R2 R6 R7 R8

R0 R9
75
MPLS TE FRR - Node Protection

• Backup labels

R3 R4 R5
21
20

R1 10 R2 11 R6 12 R7 R8

x Label for the protected LSP


R9

76
MPLS TE FRR - Node Protection

• Backup labels

R3 R4 R5
21 11

20 11 11
? Label
11?
R1 10 R2 11 R6 12 R7 R8

x Label for the protected LSP

Solution : R9
The PLR learns the label to use from the RRO object
carried in the Resv message when the reroutable
LSP is first established – With global label space
allocation on the MP 77
MPLS TE FRR – Node Protection

• Backup labels

R3 R4 R5
21 12
20 12 12

R1 10 R2 11 R6 12 R7 R8

x Label for the protected LSP


R9

• The PLR swaps 10 <-> 12, pushed 20 and forward the traffic
onto the backup tunnel
78
MPLS TE FRR - Node Protection
• For each fast reroutable LSP, the tail-head LSR must
include an RRO object in its Resv message (with label sub-
object)
• When the failure occurs, the PLR also updates:
• The ERO object,
• The PHOP object,
• The RRO object
• As with Link protection, the PLR SHOULD send a PathErr
message with error code of "Notify" (Error code =25) and
an error value field of ss00 cccc cccc cccc where ss=00
and the sub-code = 3 ("Tunnel locally repaired").
 This will trigger the head-end reoptimization
79
MPLS TE FRR – Node Protection

• Path states maintains


• As in the case of NHOP backup tunnel, the Path
messages are sent onto the backup tunnel to refresh
the downstream states

80
MPLS TE FRR – Local repair

• When the failed link or node comes UP again the


new resources may be re-used once
reoptimization has been triggered on the head-
ends.
• Reoptimization is triggered:
• Periodically: “mpls traffic-eng reoptimize timers frequency <0-
604800>
• When a link comes “UP” if “mpls traffic-eng reoptimize events
link-up”
• When explicitly triggered (exec mode): “mpls traffic-eng
reoptimize <tunnel x>”

• Make before break prevents any traffic disruption


81
MPLS TE FRR – Node Protection

• In summary,
Backup tunnel

R3 R4 R5

Protected tunnel
Path Tear
PLR MP
Path
R1 R2 R6 R7 R8
Reoptimization
triggered Path Error
(Locally
Make before repaired)
break R9

82
MPLS TE FRR – Node Protection
• The number of back-up tunnels for an interface is no
longer limited to one !
On R2
interface POS4/0
description Link to R4
ip address 10.1.13.2 255.255.255.252
no ip directed-broadcast
ip router isis
encapsulation ppp
mpls traffic-eng tunnels
mpls traffic-eng backup-path Tunnel10
mpls traffic-eng backup path Tunnel15
mpls ip
no peer neighbor-route
crc 32
clock source internal
pos ais-shut
pos report lrdi
ip rsvp bandwidth 155000 155000

• Which is mandatory for Node protection (need one backup for each
NNHOP) … 83
MPLS TE FRR – Node Protection

• Multiple back-up tunnels to the same destination


may be created.

R3 R4 R5

R1 R2 R6 R7 R8

R0 R9

84
Backup tunnel path computation
and provisioning

• Packing algorithm: refers to the method


used to select the backup tunnel for each
protected LSP.
• For each protected LSP at a given PLR:
• Select the set of backup tunnel whose
merge point crosses the primary path,
• Find a backup tunnel whose remaining
bandwidth is >= of the protected LSP (if
bandwidth protection is required)
85
Auto Tunnel

86
Auto Tunnel
• Useful when TE is used for FRR
• Greatly simplifies TE configuration
• Automatically creates primary one-hop TE
tunnels on every TE enabled interfaces
• Automatically creates backup TE tunnels to
NHOP or NNHOP for every TE enabled
interfaces

87
Configuring AutoTunnel

mpls traffic-eng auto-tunnel primary config unnumbered-interface Loopback0


mpls traffic-eng auto-tunnel primary config mpls ip
mpls traffic-eng auto-tunnel primary tunnel-num min 1000 max 1100
mpls traffic-eng auto-tunnel primary onehop

Creates one hop primary tunnels on


every TE enabled interfaces

mpls traffic-eng auto-tunnel backup config unnumbered-interface Loopback0


mpls traffic-eng auto-tunnel backup tunnel-num min 2000 max 2100
mpls traffic-eng auto-tunnel backup

Creates backup tunnels for every TE


enabled interfaces
88
AutoTunnel

R1#sh mpls traffic-eng tunnels brief


Signalling Summary:
LSP Tunnels Process: running
RSVP Process: running
Forwarding: enabled
auto-tunnel:
backup Enabled (3 ), id-range:2000-2100
onehop Enabled (3 ), id-range:1000-1100
mesh Disabled (0 ), id-range:64336-65335

Periodic reoptimization: every 3600 seconds, next in 2527 seconds


Periodic FRR Promotion: Not Running
Periodic auto-tunnel:
primary establish scan: every 10 seconds, next in 3 seconds
primary rm active scan: disabled
backup notinuse scan: every 3600 seconds, next in 3170 seconds
Periodic auto-bw collection: every 300 seconds, next in 131 seconds
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
R1_t1 14.4.4.4 - Se0/0 up/up
R1_t2 14.4.4.4 - unknown admin-down
R1_t3 14.4.4.4 - unknown admin-down
R1_t33 13.3.3.3 - Se2/0 up/up
R1_t1000 14.4.4.4 - Se0/0 up/up
R1_t1001 12.2.2.2 - Se1/0 up/up
R1_t1002 12.2.2.2 - Se2/0 up/up
R1_t2000 12.2.2.2 - Se2/0 up/up
R1_t2001 12.2.2.2 - Se0/0 up/up
R1_t2002 14.4.4.4 - Se2/0 up/up
R3_t33 11.1.1.1 Se0/0 - up/up
Displayed 10 (of 10) heads, 0 (of 0) midpoints, 1 (of 1) tails
R1#
89
AutoTunnel

R1#sh mpls traffic-eng tunnels tu1001

Name: R1_t1001 (Tunnel1001) Destination: 12.2.2.2


Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, type explicit __dynamic_tunnel1001 (Basis for Setup, path
weight 10000)

Config Parameters:
Bandwidth: 0 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 0 bw-based
auto-bw: disabled
Active Path Option Parameters:
State: explicit path option 1 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled

InLabel : -
OutLabel : Serial1/0, implicit-null
...
FRR OutLabel : Tunnel2000, explicit-null
Shortest Unconstrained Path Info:
RSVP Signalling Info:
Path Weight: 48 (TE)
Src 11.1.1.1, Dst 12.2.2.2, Tun_Id 1001, Tun_Instance 3856
Explicit Route: 10.1.3.2 12.2.2.2
RSVP Path Info:
History:
My Address: 11.1.1.1
Tunnel:
Explicit Route: 10.1.2.2 12.2.2.2
Time since created: 12 minutes, 2 seconds
Record Route: NONE
Time since path change: 12 minutes, 2 seconds
Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
Number of LSP IDs (Tun_Instances) used: 1
RSVP Resv Info:
Current LSP:
Record Route: 12.2.2.2(0)
Uptime: 12 minutes, 2 seconds
Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits
R1#
... 90
AutoTunnel

R1#sh ip route
...
O E2 32.0.0.0/8 [110/20] via 0.0.0.0, 00:21:11, Tunnel1
[110/20] via 0.0.0.0, 00:21:11, Tunnel1000
10.0.0.0/30 is subnetted, 5 subnets
C 10.1.3.0 is directly connected, Serial2/0 All routes point to TE tunnels
C 10.1.2.0 is directly connected, Serial1/0
C 10.1.1.0 is directly connected, Serial0/0 and not to physical interface
O 10.1.5.0 [110/96] via 0.0.0.0, 00:21:11, Tunnel1
[110/96] via 0.0.0.0, 00:21:11, Tunnel1000
O 10.1.4.0 [110/96] via 0.0.0.0, 00:21:11, Tunnel1001
[110/96] via 0.0.0.0, 00:21:11, Tunnel1002
11.0.0.0/32 is subnetted, 1 subnets
C 11.1.1.1 is directly connected, Loopback0
12.0.0.0/32 is subnetted, 1 subnets
O 12.2.2.2 [110/49] via 0.0.0.0, 00:21:14, Tunnel1001
[110/49] via 0.0.0.0, 00:21:14, Tunnel1002
13.0.0.0/32 is subnetted, 1 subnets
O 13.3.3.3 [110/97] via 0.0.0.0, 00:21:14, Tunnel1
[110/97] via 0.0.0.0, 00:21:14, Tunnel1000
[110/97] via 0.0.0.0, 00:21:14, Tunnel1002
[110/97] via 0.0.0.0, 00:21:14, Tunnel1001
14.0.0.0/32 is subnetted, 1 subnets
O 14.4.4.4 [110/49] via 0.0.0.0, 00:21:14, Tunnel1
[110/49] via 0.0.0.0, 00:21:14, Tunnel1000
R1# 91
Configuring Inter-Area Tunnels
(Cisco IOS)

mpls traffic-eng tunnels


!
interface Tunnel1
ip unnumbered Loopback0
no ip directed-broadcast
tunnel destination 172.16.255.7 Loose-hop path
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng path-option 10 explicit name LOOSE-PATH
!
Static route mapping IP
ip route 172.16.255.7 255.255.255.255 Tunnel1 traffic to Tunnel1
!
ip explicit-path name LOOSE-PATH enable
next-address loose 172.16.255.3
next-address loose 172.16.255.5 List of ABRs as
! loose hops

92 92
Thank you.