Documente Academic
Documente Profesional
Documente Cultură
Engineering
NANOG18
Location of files
This presentation, handouts & demo are located at:
ftp://ftpeng.cisco.com/rraszuk/nanog18
RR_MPLS_TE_Nanog.pdf - this presentation
TE_Monitor.pdf - show & debug commands
TE_Config.pdf - full configuration syntax
TE_SampleCfg.pdf - configuration sample
TE_DEMO.tar - Tared TE offline demo (HTML)
TEisistdp_1.pdf - Demos Lab Topology
NANOG18 - Robert Raszuk
SAN-SMF
LAX-SFO
SMF-SAN
No Traffic
Engineering
analogy
to Human
Drivers
SAN-SMF
LAX-SFO
SMF-SAN
Traffic
Engineering
analogy
to Auto Pilot
R1
L3
L2
L2
L2
L2
L2
L2
L3
L3
L3
L3
L3
L3
L3
L3
L3
Physical
Logical
R1
10
R1
11
R1
12
San
San
Jose
Jose
13
MPLS Traffic
Engineering
14
TE - key mechanisms
15
TE - key mechanisms
16
17
TE basics
Traffic within a Service Provider as a
collection of POP to POP traffic
trunks with known bandwidth and
policy requirements
TE provides traffic trunk routing that
meets the goal of Traffic Engineering
via a combination of on-line and offline procedures
NANOG18 - Robert Raszuk
18
Requirements:
Differentiating traffic trunks:
large, critical traffic trunks must be well routed in
preference to other trunks
Handling failures:
automated re-routing in the presence of failures
Pre-configured paths:
for use in conjunction with the off-line route
computation procedures
19
Requirements (cont.)
Constraining sub-optimality:
should re-optimize on new/restored bandwidth
in a non-disruptive fashion - maintain the existing route until the
new route is established, without any double counting
20
Design Constraints
Constrained to a single routing domain
initially constrained to a single area
21
Trunks Attributes
22
Trunk Attributes
23
Trunk attributes
Ordered list of Path Options
possible administratively specified paths (via
an off-line central server) - {explicit list}
Constrained-based Dynamically computed
paths based on combo of Bw and policies
Re-optimization
each path option is enabled or not for reoptimization, interval given in seconds.
Max 1 week (7*24*3600), Disable 0, Def 1h.
NANOG18 - Robert Raszuk
24
Trunk Attributes
Resource class affinity (Policy)
supports the ability to include/exclude certain links for
certain traffic trunks based on a user-defined Policy
Tunnel is characterized by a
32-bit resource-class affinity bit string
32-bit resource-class mask (0= dont care, I care)
25
0000
0000
0000
D
B
0000
0000
Trunk A to B:
tunnel = 0000, t-mask = 0011
26
0000
0000
0000
D
0010
B
0000
Setting a link bit in the lower half drives all tunnels off
the link, except those specially configured
Trunk A to B:
tunnel = 0000, t-mask = 0011
27
0000
0000
0000
D
B
0000
0010
28
0000
0000
0000
D
B
0000
0010
No path is possible
NANOG18 - Robert Raszuk
29
0000
0000
0000
D
0100
B
0000
30
10
0000
0000
0000
D
B
0000
0100
31
0000
0000
0000
D
0100
B
0000
No path is possible
NANOG18 - Robert Raszuk
32
Trunk Attribute
33
11
34
35
36
12
Per-Priority Available BW
T=0
T=1
T=2
T=3
T=4
Link L, BW=100
Link L, BW=100
D advertises: AB(0)=AB(1)=AB(2)=100
AB(3)=AB(4)==AB(7)=70
Link L, BW=100
D advertises: AB(0)=AB(1)=AB(2)=100
AB(3)=AB(4)=70
AB(5)=AB(6)=AB(7)=40
37
Information Distribution
38
Information Distribution
Periodic (timer-based)
On significant changes of available
bandwidth (threshold scheme)
On link configuration changes
On LSP Setup failure
39
13
Periodic Timer
40
Significant Change
100%
92%
85%
70%
Update
50%
Update
41
42
14
Constrained-based
Computation
43
Constrained-Based Routing
In general, path computation for an LSP may
seek to satisfy a set of requirements
associated with the LSP, taking into account a
set of constraints imposed by administrative
policies and the prevailing state of the network
-- which usually relates to topology data and
resource availability. Computation of an
engineered path that satisfies an arbitrary set
of constraints is referred to as "constraint
based routing.
Draft-li-mpls-igp-te-00.txt
NANOG18 - Robert Raszuk
44
Path Computation
On demand by the trunks head-end:
for a new trunk
for an existing trunk whose (current)
LSP failed
for an existing trunk when doing reoptimization
45
15
Path Computation
Input:
configured attributes of traffic trunks
originated at this router
attributes associated with resources
available from IS-IS or OSPF
topology state information
available from IS-IS or OSPF
NANOG18 - Robert Raszuk
46
Path Computation
Prune links if:
insufficient resources (e.g., bandwidth)
violates policy constraints
47
Path Computation
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 the path setup
component
48
16
Example
C
BW(3)=80
0100
1000
BW(3)=60
0000
BW(3)=50
0000
BW(3)=20
B
0000
BW(3)=80
E
0010
BW(3)=70
1000
BW(3)=50
G
Tunnels request:
Priority 3, BW = 30 units,
Policy string: 0000, mask: 0011
NANOG18 - Robert Raszuk
49
50
MPLS Labels
Two types of MPLS Labels:
Prefix Labels & Tunnel Labels
Distributed
by:
LDP
RSVP
MP-BGP
CR-LDP
PIM
51
17
52
53
54
18
55
LSP Setup
56
R8
R3
R4
R2
Pop
R5
R1
Label 32
Label 49
Label 17
R6
R7
Label 22
57
19
R2
R3
1
Path:
Common_Header
Session(R3-lo0, 0, R1-lo0)
PHOP(R1-2)
Label_Request(IP)
ERO (R2-1, R3-1)
Session_Attribute (S(3), H(3), 0x04)
Sender_Template(R1-lo0, 00)
Sender_Tspec(2Mbps)
Record_Route(R1-2)
58
R2
R3
1
Path State:
Session(R3-lo0, 0, R1-lo0)
PHOP(R1-2)
Label_Request(IP)
ERO (R2-1, R3-1)
Session_Attribute (S(3), H(3), 0x04)
Sender_Template(R1-lo0, 00)
Sender_Tspec(2Mbps)
Record_Route (R1-2)
59
R2
R3
1
Path:
Common_Header
Session(R3-lo0, 0, R1-lo0)
PHOP(R2-2)
Label_Request(IP)
ERO (R3-1)
Session_Attribute (S(3), H(3), 0x04)
Sender_Template(R1-lo0, 00)
Sender_Tspec(2Mbps)
Record_Route (R1-2, R2-2)
60
20
R2
R3
Path State:
Session(R3-lo0, 0, R1-lo0)
PHOP(R2-2)
Label_Request(IP)
ERO ()
Session_Attribute (S(3), H(3), 0x04)
Sender_Template(R1-lo0, 00)
Sender_Tspec(2Mbps)
Record_Route (R1-2, R2-2, R3-1)
61
R2
R3
Resv:
Common_Header
Session(R3-lo0, 0, R1-lo0)
PHOP(R3-1)
Style=SE
FlowSpec(2Mbps)
Sender_Template(R1-lo0, 00)
Label=POP
Record_Route(R3-1)
62
R2
R3
1
Resv State
Session(R3-lo0, 0, R1-lo0)
PHOP(R3-1)
Style=SE
FlowSpec (2Mbps)
Sender_Template(R1-lo0, 00)
OutLabel=POP
IntLabel=5
Record_Route(R3-1)
63
21
R2
R3
1
Resv:
Common_Header
Session(R3-lo0, 0, R1-lo0)
PHOP(R2-1)
Style=SE
FlowSpec (2Mbps)
Sender_Template(R1-lo0, 00)
Label=5
Record_Route(R2-1, R3-1)
64
R2
R3
1
Resv state:
Session(R3-lo0, 0, R1-lo0)
PHOP(R2-1)
Style=SE
FlowSpec (2Mbps)
Sender_Template(R1-lo0, 00)
Label=5
Record_Route(R1-2, R2-1, R3-1)
65
66
22
67
Path Monitoring
68
Path Re-Optimization
69
23
R8
R3
R4
R2
Pop
R5
R1
32
49
17
R6
R7
22
70
R8
R3
R4
R2
Pop
Pop
26
89
R5
R1
32
38
49
17
R6
R7
22
71
Session(R3-lo0, 0, R1-lo0)
00
R1 2
R3
1 R2 2
01
1
3 01
3
01
Resource Sharing
72
24
R2
R3
2
3
Path:
Common_Header
Session(R3-lo0, 0, R1-lo0)
PHOP(R1-2)
Label_Request(IP)
ERO (R2-1, ,R3-3)
Session_Attribute (S(3), H(3), 0x04)
Sender_Template(R1-lo0, 01)
Sender_Tspec(3Mbps)
Record_Route(R1-2)
1
3
73
R2
R3
3
Path State:
Session(R3-lo0, 0, R1-lo0)
PHOP(R1-2)
Label_Request(IP)
ERO (R2-1, ,R3-3)
Session_Attribute (S(3), H(3), 0x04)
Sender_Template(R1-lo0, 01)
Sender_Tspec(3Mbps)
Record_Route (R1-2)
74
R2
R3
3
75
25
R2
R3
RSVP:
Common_Header
Session(R3-lo0, 0, R1-lo0)
PHOP(R3-3)
Style=SE
FlowSpec(3Mbps)
Sender_Template(R1-lo0, 01)
Label=POP
Record_Route(R3-3)
76
R2
R3
3
77
R2
R3
3
RSVP:
Common_Header
Session(R3-lo0, 0, R1-lo0)
PHOP(R2-1)
Style=SE
FlowSpec (3Mbps)
Sender_Template(R1-lo0, 01)
Label=6
Record_Route(R2-1, , R3-3)
Sender_Template(R1-lo0, 00)
Label=5
Record_Route(R2-1, R3-1)
78
26
R2
R3
3
RSVP state:
Session(R3-lo0, 0, R1-lo0)
PHOP(R2-1)
Style=SE
FlowSpec
Sender_Template(R1-lo0, 01)
Label=6
Record_Route(R2-1, , R3-3)
Sender_Template(R1-lo0, 00)
Label=5
Record_Route(R2-1, R3-1)
79
Fast Restoration
80
Path Protection
81
27
Path Protection
Step1: link failure detection
O(depends on L2/L1)
82
Path Protection
83
Path Protection
Speed it Up
84
28
Fast ReRoute
(aka Link Protection)
An Overview
85
Objective
86
87
29
R8
R4
R2
R5
R1
Pop
17
R6
R7
22
88
R8
R4
R2
Pop
R1
R5
14
37
R7
R6
89
R8
R4
R2
R5
R1
R6
R7
90
30
R9
Pop 14
Swap 37->14
Push 17
R4
R2
Push 37
R5
R1
R7
R6
Swap 17->22
Label Stack:
R1
Pop 22
37
R2
17
14
R6
22
14
R7
14
R4
R9
None
91
Fast ReRoute
More details on Link
Protection (FRR v1)
92
V1 Constrain
We protect the facility (link), not individual
LSPs
scalability vs granularity
No node resilience
Static backup tunnel
The protected link must use the Global
Label space
A backup tunnel can backup at most one
link, but n LSPs travelling via this link
NANOG18 - Robert Raszuk
93
31
Terminology
R9
R8
R4
R2
R5
R1
R7
R6
94
Terminology
Link Protection
In the event of a link failure, an LSP is
rerouted to the next-hop using a
preconfigured backup tunnel
95
96
32
ip explicit-path name
backuppath1 enable
next-address R6
next-address R7
next-address R4
97
98
R8
14
R9
R4
R2
R5
R1
R6
R7
99
33
100
R9
Path
state
BackUP tunnel
R4
R2
R5
R1
R7
R6
101
R1
R4
R3
Conf.
Path Tear
Conf.
Resv Tear
R4 waits for
refresh
102
34
LSP reoptimization
103
104
R8
Resv
state
BackUP tunnel
R4
R2
R5
R1
Resv
R6
R7
105
35
106
107
Fast ReRoute
Node Protection
108
36
Overview
R9
R8
R4
R3
R2
R5
R1
R6
R7
109
110
Then
R2 checks if it already has a tunnel to R4
If not, R2 builds a backup tunnel to R4 (currently
just like in link protection - manual explicit setup).
R2 sends a Path onto the tunnel with Session
(R9, 1, R1), Sender (R2, 1), Session Attribute (0x01
OFF, 0x02 ON) and PHOP R2
111
37
112
113
114
38
115
A possible solution
RP
LC
RP
LC
...
LC
116
117
39
Enhancement to SPF
During SPF each new node found is moved from a
TENTative list to PATHS list. Now the first-hop is
being determined via:
A. Check if there is any TE tunnel terminating at
this node from the current router and if so do
the metric check
B. If there is no TE tunnel and the node is directly
connected use the first-hop from adj database
C. In non of the above applies the first-hop is
copied from the parent of this new node.
118
40
60
10
119
120
40
121
Auto-Bandwidth
Global command:
122
Auto-Bandwidth
Per tunnel command:
Every Y minutes, update the BW constraint of the
tunnel with the maximum of:
the largest 5-min values sampled during the last Y
minutes (Def Y = 24 * 3600sec) - 24h
a configured maximum value
(config-if)# tunnel mpls traffic-eng auto-bw
{frequency <seconds>} {max-bw <kbs>}
123
41
Example
124
Verbatim
Applies to explicitly routed LSPs
Disable any check against TE/IGP database
of the head end
RSVP still check BW (and policy when this
will be in Path) hop by hop
Application: manual TE through multi-area
IGP
CLI: tunnel mpls traffic-eng path-option verbatim
125
In-Progress
126
42
Example
In-Prog Bw: 10
55
Avail Bw: 100
127
Benefits
128
Under/Overbook
ML: Maximum link bandwidth:
This sub-TLV contains the maximum bandwidth that can be
used on this link in this direction (from the system originating
the LSP to its neighbors). This is useful for traffic engineering.
129
43
Under/Overbook
As config:
int s0
bandwidth <B1>
ip rsvp bandwdith <B2>
...
Physical T1
s0
...
130
Standby
Current solution
Tu1: bw1
A
B
Tu2: bw2
Tu3: bw3
Tu4: bw4
Solution:
4 tunnels from A to B:
Tu1s relative metric: -3
Tu2 and tu3s relative metric: -2
Tu4s relative metric: -1
NANOG18 - Robert Raszuk
131
132
44
133
134
135
45
136
RSVP
LSP Signalling Protocol
for Traffic Engineering
137
138
46
Why RSVP ?
What is needed: An IP signalling Protocol!
ability to establish and maintain Label Switched
Path along an explicit route
ability to reserve resources when establishing a
path
139
140
141
47
142
143
144
48
145
146
TE/RSVP Scalability
With basic RSVP (RFC2205), 10000 RRR LSP
tunnels flowing through a 75x0 or 12000 is not a
problem
Already Deployed on a number of Tier-1 ISP
backbones
http://www.nanog.org/mtg-9905/hanna.html
Ship with 12.0(5)S
147
49
Conclusion
148
Summary
149
Traffic Eng
150
50
Presentation_ID
151
51