MPLS IntroAn Introduction to MPLS Networks and Applications
by Shawn Zandi
MPLS History
1994: Toshiba presented Cell Switch Router as IETF BOF
1996: Ipsilon, Cisco and IBM supported the idea
1997: Formation of the IETF MPLS working group
IETF released RFC 2547 "BGP/MPLS VPNs" in 19992
Terminology
Cisco Terminology
New Terminology
Tag Switching MPLSTag LabelTDP LDP (Label Distribution Protocol)TFIB LFIB (Label Forwarding Information
Base)TSR LSR (Label Switch Router)TSC LSC (Label Switch Controller)TSP LSP (Label Switched Path)
3
MPLS Applications
MPLS VPN Most Popular Application of MPLS
Traffic Engineering First called RRR or R3 (Routing & Resource
Reservation) AToM (Any Transport over MPLS)
Point-to-point circuits over MPLS – Frame Relay, ATM, PPP, HDLC, Ethernet and IEEE 802.1Q
VPLS (Virtual Private LAN Service) Ethernet Supported in a multipoint fashion.
4
Advantages of MPLS MPLS VPN
VRF routing tables and ease of growth. Unified infrastructure
Carrier for any technology - ATM, FR, PPP, Ethernet, IPv4 and IPv6. Better IP over ATM than pervious solutions
AAL5 - RFC1483, LANE, Multiprotocol over ATM - MPOA BGP-free core
providers need IP routing but BGP is only required on edges. Optimal Traffic Flow
Connections logically are fully mesh and no extra circuit mapping is required.
Traffic Engineering Different path from least cost path, Source-based routing & Fast
Re-Routing (FRR)
5
MPLS Label
32 bits header (4 Bytes) = each stack Unlimited Stacks supported, The last stack BOS
flag=1
Label: 20 bits EXP: 3 bits BOS: 1 bit (bottom of stack) TTL: 8 bits
Label EXP TTL
BOS
6
Label Stack Top label and bottom label on a stack:
Label EXP TTL0
Label EXP TTL0
Label EXP TTL1
…
7
Label Stack (cont.) Some MPLS applications like MPLS VPNs
require more than one label in the label stack to forward the packets.
MPLS VPNs and AToM put two labels in the label stack.
MPLS is not a Layer 2 Protocol, not even Layer 3
MPLS is viewed as a Layer 2.5 protocol.
Label 0 Label 1 IPv4PPP
8
Protocol Identifier Data Link Layer Protocol Identifier
ATM uses a different way for encapsulating the Label.
Layer 2 Protocol
Identifier Field
Value (hex)
PPP Protocol Field 0281Ethernet SNAP Ether-type 8847HDLC Protocol 8847Frame Relay NLPID 80
9
Label Switch Router LSR is a router that supports MPLS.
Ingress LSR Inserts a label (push) and sends packet to MPLS
network. Egress LSR
Removes the label (pop) and sends packet on a data link.
Intermediate LSR Modifies the label (swap) and switches the packets.
Edge LSR = Ingress and Egress LSRs10
MPLS Network
Label Switch Router (cont.)
Ingress LSR
Intermediate LSR Egress LSR
Imposing LSR Disposing LSR
11
MPLS VPN
Label Switch Router (cont.)
Provider Edge PE CECustomer Edge P
12
MPLS Network
Label Switched Path
IngressLSR
LSR LSR LSR IngressLSR
LSP
LSP : Sequence of LSRs – a path through the MPLS network. (Unidirectional)
13
MPLS Network
Nested LSP
IngressLSR
LSR LSR LSR IngressLSR
LSP
LSP inside LSP – The second Label spans the entire MPLS network.
LSP
14
Forwarding Equivalence Class
FEC is group or flow of packets classified for a forwarding decision and have similar EXP.
Ingress LSR decides which packet belongs to which FEC. All packets with same FEC get the same label
imposed by the ingress LSR
Same FEC = Same Label. Same Label <> Same FEC. (might have
different FEC)15
FEC Classification
Ingress LSR Classifies traffic (FEC) based on:
Certain multicast group Based on DSCP or Precedence Based on VC (sub-interface) Based on Destination IP Based on BGP Prefixes pointing to the same Next-
hop. In this case all traffic for an Egress LSR (iBGP Peer) can
be forwarded through a specific LSP.
16
Label Distribution
Adjacent LSRs must agree to use specific Label for a specific IP Prefix.
Labels are local and have no global meaning. Labels are between adjacent LSRs.
A label distribution protocol is required. Using IP Routing Protocol (EIGRP, ISIS, OSPF) Using Label Distribution Protocol (TDP, LDP, RSVP)
17
Label Distribution with Routing Protocol
Advantage: Does not need a new label distribution protocol. Routing and Label distribution are always in sync. EIGRP implementation is straight forward.
Disadvantage: Link state routing protocols do not function this
way.
18
Label Distribution with LDP
Label Information Base (LIB) holds remote and local label bindings.
One local binding per prefix.
Label Space: Per platform Per interface (LC-ATM)
19
LIB LFIB
LFIB is Label Forwarding Instance Base, a table used to forward incoming and outgoing labels for LSPs.
1. All remote bindings LIB2. Only one possible outgoing label in LIB LFIB
LDP Static MPBGP RSVP
20
MPLS Payload
The MPLS has no Network Level Protocol Identifier.
NLPID exists in all Layer 2 protocols (different names)
Intermediate LSRs do not need to know what payload is.
Egress LSR should know what the payload is, to forward.
Egress LSR is the one who created label binding for FEC.
21
LDP Modes
Label Distribution Mode DOD Downstream-on-Demand (pull mode – LC-
ATM) UD Unsolicited Downstream (push mode – Default)
Label Retention Mode LLR Liberal Label Retention (keep all bindings in
LIB - Default) CLR Conservative Label Retention (LC-ATM)
LSP Control Mode Independent LSP (immediate local binding for FEC
- Default) Ordered LSP (IOS ATM switches)22
LFIB Forwarding Commands
show ip cef x.x.x.x show adjacency table show mpls forwarding-table show mpls forwarding-table x.x.x.x show mpls forwarding-table x.x.x.x detail show mpls forwarding-table vrf … show mpls interfaces … detail
23
Label Operation
Pop Swap Push Untagged/No Label Aggregate
Remove the label stack then perform IP Lookup.
24
IOS Label Range Default Label Range 16 to 100,000
Router(config)# mpls label range 16 1048575 Unknown Label: drop Reserved Label 0 to 15:
Implicit NULL Label (3) Set by egress LSR for connected and summarized
prefixes to penultimate LSR to not send Label. “penultimate hop popping” PHP
Explicit NULL Label(0, for IPv6=2) Like implicit NULL but send label=0 to retain EXP value.
Router Alert Label (1) Perform software Lookup instead of hardware
OAM Alert Label (14) RFC 3429 – not supported on IOS25
TTL and MPLS TTL (-1) is copied from IP header to MPLS and
vice versa. Don’t copy if TTL value is greater than packet
TTL. Label to IP
Igress LSR
LSR LSR
TTL=254
TTL=253
TTL=253 TTL=25
3TTL=25
3
TTL=252 TTL=25
3TTL=25
1
TTL=252
IP to Label
TTL=253
Label to Label
26
TTL – Label to LabelIntermediate LSR does not change TTL in IP header or underlying labels.
POP
LSR
LSR LSR
TTL=253
TTL=253
TTL=249
TTL=248 TTL=25
3TTL=25
3
TTL=251 TTL=25
3TTL=25
3
TTL=251
TTL=251 TTL=25
0
SWAP
TTL=252
TTL=251
PUSH
27
TTL Expire ICMP “time exceeded” (type 11 code 0) is forwarded along
the LSP because interim LSR might have no route to the originator of packet.
Ingress
Egress
TTL=2 TTL=1TTL=1
ICMP Time
Exceeded
TTL=255
TTL=255
TTL Expire
d!ICMP Time
Exceeded
TTL=254
ICMP Time
Exceeded
TTL=253
ICMP Time
Exceeded
TTL=251
TTL=253ICMP
Time Exceed
ed TTL=25
3
TTL=252ICMP
Time Exceed
ed TTL=25
0
LSR LSRLSR
28
MPLS MTU Maximum size of packet that can be sent to data link
without fragmentation. MRU Maximum Receive Unit used in LFIB for
neighbors. A value per FEC (or prefix) not based on interface.
On LSR configure MTU to 1508 (1500 + 2 Labels) (config-if)# mpls mtu 1508
If on switches MTU is not increased = baby giant drops. (config)# system jumbomtu (config)# system mtu 1508
29
Fragmentation
Fragmentation <> Performance LSR strips the label and fragments payload.
Path MTU Discovery Modern hosts send IP with DF bit set (Don’t
Fragment) to receive ICMP type 3 code 4 “Fragmentation needed”
Process continues with lowering the size till no error is received and correct MTU achieves.
LSR sends ICMP type 3 code 4 along with LSP (just like TTL exceeded)
30
Label Distribution Protocol
Discovery of LSRs (hello message – 224.0.0.2/UDP/646)
Session Establishment – TCP Label Mapping Advertisement Notifications
LDP needs “ip cef” Interface configration: “mpls ip”
31
LDP - LSR Discovery
LDP hello messages are UDP 646 to 224.0.0.2 “all routers on this subnet”
show mpls ldp discovery [detail] show mpls interfaces (config-if)# mpls ldp discovery
32