MPLS Overview -- How it works The IETF MPLS working group (created in 1997) is to standardize a base technology that integrates the label swapping forwarding paradigm with network layer routing. Current status: A framework document has been published as Internet draft. This draft discusses technical issue and requirements for the MPLS. An architecture document has been published as Internet draft. This draft contains a draft protocol architecture for MPLS. The proposed architecture is based on the MPLS framework document. An Internet draft that discuss MPLS with Frame Relay has been published. Cisco System Inc. is the major contributor to the MPLS working group. substitute Label for Tag in Tag Switching MPLS
Core mechanisms of MPLS Semantics assigned to a stream label Labels are associated with specific streams of data. Forwarding Methods Forwarding is simplified by the use of the short fixed length labels to identify streams. Forwarding may require simple functions such as looking up a label in a table, swapping labels, and possibly decrementing and checking a TTL. In some case MPLS may direct uses of underlying layer 2 forwarding. Label Distribution Methods Allow nodes to determine which labels to use for specific streams. This may use some sort of control exchange, and/or be piggybacked on a routing protocol.
Motivation for MPLS Benefits relative to use of a Router Core Simplified forwarding Efficient explicit routing Traffic reengineering QoS routing Complex mappings from IP packet to forwarding equivalence class (FEC) Partitioning of functionality Single forwarding paradigm with several level differentiation Benefits relative to use of an ATM or Frame Relay Core Scaling of the routing protocol Common operation over packet and cell media Easier Management Elimination of the routing over Large Clouds issue
MPLS Related Protocols Data forwarding Label encapsulation Label operations: PUSH, SWAP and POP Label distribution protocols ( RFC 3036) Provide procedures by which one LSR informs another of the label/FEC binding Extensions to routing protocols Existing routing protocols can be extended to distribute traffic engineering information
MPLS Framework The framework document discusses the core MPLS components, observations, issues, assumptions, and technical approach. Core MPLS components: the Basic routing approach, Labels, and Encapsulation Observations, Issues, and Assumptions Layer 2 versus Layer 3 forwarding, Scaling issues, Types of streams, and Data driven versus control driven label assignment. Technical approach Label distribution, Stream Merging, Loop handling, Interoperation with NHRP, Operation in a hierarchy, Interoperation with conventional ATM, Multicast, Mutipath, Host interactions, Explicit Routing, Traceroute, LSP Control: Egress versus local, and security.
Key Terminology in MPLS FEC (Forwarding Equivalence Class) A group of IP packets which are forwarded in the same manner (e.g., over the same path, with the same priority and the same label) Label A short fixed length identifier which is used to identify a FEC Label Swapping Looking up the incoming label to determine the outgoing label, encapsulation and port Label Switched Path (LSP) Path through one or more LSRs for a particular FEC Label Switching Router (LSR) An MPLS capable router
What is a Label The label can be carried in a layer 2 header (e.g., ATM and frame relay) or in a shim that sits between the layer 2 header and IP (e.g., LAN and PPP) PayloadIPshimLayer 2 Label value (20 bits)ExpSTTL Exp: Experimental (3 bits) S: Bottom of label stack (1 bit) TTL: Time-To-Live (8 bits) 4 Octets
Data Forwarding Edge LSR (Ingress) Edge LSR (Egress) LSR Label IP LSR (Penultimate) PUSHPOPSWAP L2 header
A simplified LSR forwarding engine MPLS label MPLS payload Switching Table Switching Table Input Ports Output Ports Next hop + port Queuing and Scheduling rules
Ingress and Transit Operation Port 1Port 4 Ingress LSR LSR Port 2Port 3 FEC Output 10.60.0.0/16 port 4 PUSH label 40 To: 10.60.30.4 InputOutput port 2 label 40port 3 SWAP label 45 Label: 40 Label: 45
Egress Operation Port 1Port 4 Egress LSR Input Output port 1 label 45 POP Label: 45 To: 10.60.30.4 FEC OutputNext Hop 10.60.0.0/16 Port 4 10.1.2.6 The egress router has to do two table lookups There is a concern that this might cause a performance penalty on the egress router Solution: Penultimate Hop Popping (PHP)
Per-Hop classification, queuing, and scheduling Queue S Classify Port 1 Port N Port M
PHP with Explicit NULL Port 2Port 3 Penultimate LSR Egress LSR Port 1Port 4 Label: 0To: 10.60.30.4 InputOutput Port 2 label 40Port 3 SWAP label 0 Label: 40Label: 0 FEC OutputNext Hop 10.60.0.0/16 Port 4 10.1.2.6 Egress router returns a label value of 0 during signaling
PHP with Implicit NULL Port 2Port 3 Penultimate LSR Egress LSR Port 1Port 4 To: 10.60.30.4 InputOutput port 2 label 40port 3 POP Label: 40 FEC OutputNext Hop 10.60.0.0/16 Port 4 10.1.2.6 To: 10.60.30.4 Egress router returns a label value of 3 during signaling Penultimate LSR pops the label
Label Distribution Protocols How do routers know what labels to use? They need a label distribution protocol There are a number of possible label distribution methods: Manual MPLS-BGP (MP-iBGP-4) Resource Reservation Protocol-Traffic Engineering (RSVP-TE) (RFC 2205, RFC 2210) Label Distribution Protocol (LDP) Constraint-Based LDP (CR-LDP)
Label Distribution Modes Downstream-on-Demand LSR requests its next hop for a label for a particular FEC Downstream Unsolicited LSR distributes bindings to LSRs that have not explicitly requested them For example, topology driven Only LDP and MPLS-BGP support Downstream Unsolicited mode
Manual Configuration Labels are manually configured Useful in testing or to get around signaling problems R1 (Ingress) R4 (Egress) R2R3 LSP 10.60.0.0/16 Nexthop R2 Push 40 Label 40 Nexthop R3 Swap 45 Label 45 Nexthop R4 Swap 50 Label 50 Pop
MPLS-BGP Use MP-iBGP-4 to distribute label information as well as VPN routes BGP peers can send route updates and the associated labels at the same time Route reflectors can also be used to distribute labels to increase scalability
Forwarding Component Label Stack and Forwarding Operations The basic forwarding operation consists of looking up the incoming label to determine the outgoing label, encapsulation, port, and any additional information which may pertain to the stream such as a particular queue or other QoS related treatment. This operation is referred as label swap. When a packet first enters an MPLS domain, the packet is associated with a label. It is referred as a label push. When a packet leaves an MPLS domain, the label is removed. It is referred as a label pop. The label stack is useful within hierarchical routing domain.
Encapsulation Label-based forwarding makes use of various pieces of information, including a label or stack of labels, and possibly additional information such as a TTL field. These information can be carried in several forms. The term MPLS encapsulation is used to refer to whatever form is used to encapsulate the label information and information used for label based forwarding. An encapsulation scheme may make use of the following fields: label, TTL, class of service, stack indicator, next header type indicator, and checksum
MPLS label stack encoding Label (20 bits) Exp (3 bits) S (1 bit) TTL (8 bits) Label (20 bits) Exp (3 bits) S (1 bit) TTL (8 bits) Label (20 bits) Exp (3 bits) S (1 bit) TTL (8 bits) Original Packet... Stack top Stack bottom MPLS frame delivered to link layer COS
Label Assignment Topology driven (Tag) In response to normal processing of routing protocol control traffic Labels are pre-assigned; no label setup latency at forwarding time. Request driven (RSVP) In response to normal processing of request based control traffic May require a large number of labels to be assigned. Traffic driven (Ipsilon) The arrival of data at an LSR triggers label assignment and distribution. Label setup latency; potential for packet reordering.
Label Distribution Explicit Label Distribution Downstream label allocation label allocation is done by the downstream LSR most natural mechanism for unicast traffic Upstream label allocation label allocation is done by the upstream LSR may be used for optimality for some multicast traffic A unique label for an egress LSR within the MPLS domain Any stream to a particular MPLS egress node could use the label of that node.
Label Distribution Explicit Label Distribution Protocol (LDP) Reliability : by transport protocol (TCP) or as part of LDP. Separate routing computation and l