Transcript Document
Multi-protocol Label Switching
(MPLS)
RFC 3031
•
•
•
•
•
MPLS provides new capabilities:
QoS support
Traffic engineering
VPN
Multiprotocol support
MPLS-based Solutions
• Enable QoS in IP Networks
– Support Diffserv using connection-oriented QoS
– “Connections” can be flows or large aggregates
• IP Traffic Engineering
– Use constraint-based routing to adapt to latest
network loading and QoS performance
• Virtual Private Networks
– Use controllable tunneling mechanisms
• L2/L3 Integration
– Integrate with L1 and L2 technologies like Optical
Cross Connects (OXC’s) and ATM
• Resilient Network Design
– Automatic Failover and Backup
Overview (RFC 3031)
• MPLS is a forwarding scheme
• Motivation: speed up IP packet forwarding.
• Idea: use a fixed length label in the packet header
to decide packet forwarding
– Label is an index into an internal table
• Advantage: fast forwarding and resources can be
reserved on the path
• Each MPLS packet has a header encapsulated
between the link layer header and network layer
header (MPLS is layer 2.5)
– Can support any network layer protocol and link layer
• Label: locally significant label
• QoS: indicate class of service
– Communicate DS information or PHB
• S: 1 for the bottom label, 0 for other labels
• TTL: time to live
20
label
3
1
8
QoS
s
TTL
TTL Processing
• P529: need detail??
• copied from IP packet header at the ingress
LSR of an MPLS domain
• At internal LSR: packet discarded when it
hits 0
• Label used as in index into a table to determine the
outgoing line and the new label
– Labels have only local significance
• Routers can group multiple flows that ends at a
particular router and use a single label for them
• Flows that are grouped together under a single
label belong to the same Forwarding Equivalent
Class (FEC)
– FEC determines the destination and the service class
• Label Switched Routers (LSRs): switching
packets based on their labels
• For each FEC,
– a specific path though the MPLS network is defined
– Each FEC associated with a traffic characterization that
defines the QoS requirements for that flow
• LSRs do not examine IP header, simply forward
packet based on its label value
• Before delivering packets in a given FEC, a LSP
must be defined and QoS parameters along the
path must be established
– How much resources to commit to the path
– What queuing and discarding policy to establish at each
LSR
• Label assignment: manually specify routes and
assign label values, or, use a protocol to determine
the route and establish label values
• At ingress edge LSR of an MPLS domain, a
packet is assigned to a FEC, append appropriate
label to the packet and forward the packet
• Within an MPLS domain, when LSR receives a
labeled packet, it removes the incoming label and
attach the appropriate outgoing label to the packet,
and forward the packet to the next LSR
• Egress edge LSR strips the label, forward the
packet to final destination based on the IP packet
header
• Use figure on p527 of stallings book
• The FEC for a packet can be determined by one or
more of the following
– Source and/or destination IP addresses or IP network
addresses
– Source and/or destination port numbers
– IP protocol ID
– Differentiated services code point
– IPv6 flow label
• A particular PHB can be defined at an LSR for a
given FEC
– PHB defined the queuing priority and the discard policy
LSP
• Need a protocol to distribute the labels to set up
label switched paths (LSPs)
– Set up table at each LSR, table format?
• LSP is unidirectional
• LSP set up can be
– Control driven: triggered by control traffic such as
routing updates
– Data driven: triggered by the the request of a flow or a
traffic trunk (an aggregation of flows with the same
service class that can be put into a LSP)
• An LSR maintains a forwarding table for each
LSP passing through the LSR.
– Table entries at ingress edge node: FEC, out iface, out
label
– Table entries at core node: in label, in iface, out iface,
out label
• Ways to create the forwarding table entries
– Data driven: when a packet arrives at a router, the
router contact the router downstream and asks it to
generate a label for the flow. This is applied recursively
– Control driven: p417 of Tanenbaum
Label Stacking
• A packet may carry a number of labels, organized
as a last-in-first-out stack, allow groups of flows
to carry the same label for part of a route
• Processing based on the top label
• A label may be added to/removed from the stack
at any LSR
• Allow the aggregation of LSPs into a single LSP,
creating a tunnel
– At the beginning of the tunnel, the LSR assigns the
same label to packets from different LSPs by pushing
the label onto each packet’s stack
– At the end of the tunnel, the LSR pops the top label
• Traffic grouped into FECs
– Each traffic flow must be assigned to an FEC
– A particular LSP is assigned to an FEC (support the
QoS requirements of the FEC)
– Individual LSRs must assign an incoming label to the
LSP for a given FEC and communicate the label to
other LSRs that may send it packets for this FEC
• Traffic in an FEC sent along an LSP
• Packets in an FEC identified by a locally
significant label
Route Selection
• Hop-by-hop routing
• Explicit routing (strict and loose)
– Benefits: able to do traffic engineering and
policy routing
– Explicit routes can be selected by configuration
(ahead of time) or dynamically
– Dynamic case: LSR need following info (p532
of Stallings)
– Constraint based routing
Label Distribution
• To set up an LSP, each LSR must
– Assign a label to the LSP to be used to recognize the
incoming packets that belong to the corresponding FEC
– Inform all potential upstream nodes of the label
assigned by this LSR to this FEC
– Learn the next hop for this LSP and learn the label that
the downstream node has assigned to this FEC
• Item 2 and 3 can be done either by manual
configuration or require a label distribution
protocol (enable an LSR to inform others of the
label/FEC bindings it has made)
• The LSP between two routers can be the
same as the L3 hop-by-hop route, or the
sender LSR can specify an Explicit Route
(ER) for the LSP.
• A forwarding table indexed by labels is
constructed as the result of label
distribution. Each forwarding table entry
specifies ??
• Packets are classified and MPLS headers are
inserted at the ingress LSRs of a MPLS-capable
domain.
• When a LSR receives a labeled packet, it will use
the label as the index to look up the forwarding
table.
– This is faster than the process of parsing the routing
table in search of the longest match done in IP routing
– The incoming label is replaced by the outgoing label
and the packet is switched to the next LSR.
– Inside a MPLS domain, packet forwarding,
classification and QoS service are determined by the
• After LSPs are set up, a packet’s path can be
completely determined by the label assigned by
the ingress LSR.
• MPLS is strategically significant because:
• 1. it provides faster packet classification and
forwarding,
• 2. it provides an efficient tunneling mechanism.
• These features, particularly the second one, make
MPLS useful for Traffic Engineering
A Service Architecture based on
MPLS
•
•
•
•
•
•
•
MPLS can be used together with Differentiated Services to provide QoS.
LSPs are first configured between each ingress-egress pair.
It is likely that for each ingress-egress pair, a separate LSP is created for each
traffic class.
In order to reduce the number of LSPs, the LSPs from all ingress routers to a
single egress router can be merged into a Sink Tree. The total number of
Sink Trees needed is C*N.
It is also possible to use a single Sink Tree to transmit packets of different
traffic classes, and use the COS bits to differentiate packet classes.
Scalable: as the number of transiting flows increases, the number of flows in
each LSP or Sink Tree also increases. But the number of LSPs or Sink Trees
need not increase.
• three differences in the processing of a
packet. 1) At the ingress of the ISP network,
in addition to all the processing described in
the DS field-based architecture, a MPLS
header is inserted into the packet. 2) Core
routers process the packet based on its label
and COS field rather than its DS field. 3) At
the egress, unless inter-domain LSPs are
configured, the MPLS header is removed.
• Whether a ISP’s architecture is DS field-based or
MPLS-based is transparent to other ISPsthe DS
field based architecture and the MPLS based
architecture can easily inter-operate.
• Each customer domain still needs a BB to allocate
services, and to request for resources on behalf of
the customer domain when the SLA is dynamic.
• But since LSPs are configured within the ISPs,
resource requests can be easily hidden from the
core routers by tunneling them from the ingress
routers to the egress routersBBs may not be
needed in the MPLS-based ISP networks.