Professional Documents
Culture Documents
Engineering
NANOG18
Robert Raszuk - IOS Engineering
raszuk@cisco.com
Cars:
SFO-LAX SAN-SMF
LAX-SFO SMF-SAN
No Traffic
Engineering
analogy
to Human
Drivers
Cars:
SFO-LAX SAN-SMF
LAX-SFO SMF-SAN
Traffic
Engineering
analogy
to Auto Pilot
R3
R1
L2 L2 L3 L3
L3 L3
Physical Logical
R2
R3
R1
R3
R1
R3
R1
A B
D C
• 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
A 0000 0000 B
0000 0000
0000
D E
• Trunk A to B:
– tunnel = 0000, t-mask = 0011
• ADEB and ADCEB are possible
A 0000 0000 B
0000 0000
0010
D E
• 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
• Only ADCEB is possible
A 0000 0000 B
0000 0000
0010
D E
A 0000 0000 B
0000 0000
0010
D E
A 0000 0000 B
0000 0000
0100
D E
A 0000 0000 B
0000 0000
0100
D E
A 0000 0000 B
0000 0000
0100
D E
D
Link L, BW=100 D advertises: AB(0)=100=…= AB(7)=100
T=0
AB(i) = ‘Available Bandwidth at priority I”
D
Link L, BW=100 D advertises: AB(0)=AB(1)=AB(2)=100
T=2
AB(3)=AB(4)=…=AB(7)=70
D D advertises: AB(0)=AB(1)=AB(2)=100
T=4 Link L, BW=100 AB(3)=AB(4)=70
AB(5)=AB(6)=AB(7)=40
• Periodic (timer-based)
• On significant changes of available
bandwidth (threshold scheme)
• On link configuration changes
• On LSP Setup failure
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
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
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
NANOG18 - Robert Raszuk © 2000, Cisco Systems, Inc. 49
MPLS as the forwarding
mechanism
draft-ietf-mpls-rsvp-lsp-tunnel-0X.txt
R5
R1 Label 32
Label 49
Label 17
R6 R7
Label 22
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)
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)
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)
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)
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)
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)
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)
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)
R5
R1
32
49
R6 R7
17
22
22
00
R1 2 R3
1 R2 2 1
3 3 01
01
01
3 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)
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)
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)
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)
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)
R4
R2
R5
R1 Pop
R6 R7
17
22
R4
R2
Pop
R1 R5
14
37
R7
R6
R4
R2
R1 R5
R7
R6
R8 R9
Swap 37->14 Pop 14
Push 17 R4
R2
Push 37
R1 R5
R7
R6
Swap 17->22 Pop 22
Label Stack: R1 R2 R6 R7 R4 R9
37 17 22 14 None
14 14
R4
R2
R1 R5
R7
R6
• Link Protection
– In the event of a link failure, an LSP is
rerouted to the next-hop using a
preconfigured backup tunnel
R1 R5
R7
R6
R8 R9
Path
BackUP tunnel
state
R4
R2
R1 R5
R7
R6
Resv Tear
R1 R5
Resv
R7
R6
R4
R3
R2
R1 R5
R7
R6
• Assume
– R2 is configured with resilience for R3
– R2 receives a path message for a new LSP
whose ERO is {R3, R4, …}, whose Session is
(R9, 1, R1), whose sender is (R1, 1) and whose
session attribute is (0x01 ON, 0x02 OFF)
• 0x01: may use local fast-reroute if available
• 0x02: merge capable
• 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
RP RP
LC LC
...
LC
Example:
Metric of native IP path to the found node = 50
1. Tunnel with relative metric of -10 => 40
2. Tunnel with relative metric of +10 => 60
3. Tunnel with absolute metric of 10 => 10
Global command:
In-Prog Bw: 10
55
Avail Bw: 100
A’s config:
int s0 Physical T1
... A B ...
bandwidth <B1> (eg 1500 kbps) s0
ip rsvp bandwdith <B2> (eg 4000 kbps)
Tu1: bw1
A B
Tu2: bw2
Tu3: bw3
Tu4: bw4
• Solution:
– 4 tunnels from A to B:
– Tu1’s relative metric: -3
– Tu2 and tu3’s relative metric: -2
– Tu4’s relative metric: -1
NANOG18 - Robert Raszuk © 2000, Cisco Systems, Inc. 131
Last hop label
• IETF draft-ietf-mpls-label-encaps-07.txt
– A value of 0 represents the "IPv4 Explicit NULL Label”
– A value of 1 represents the "Router Alert Label”
• Future:
– Scalable per-tunnel scheduling and
policing
• Guaranteed PIPE in MPLS-VPN CoS
NO !