Multi Protocol Label Switching
From Internetworkpro
Multiprotocol Label Switching also know as MPLS is a a protocol increasing in popularity for Service Provider network and has started appearing in Enterprise networks. It allows for new functionality across the network including higher scalability, traffic engineering, and network virtualization.
Contents |
[edit] History
MPLS evolved from many parallel projects including Cisco's "Tag Switching", IBM's "ARIS", and Toshiba's "Cell-Switched Router".
These technologies were originally created to overcome some limitations of IP routing. Since then ASICs have been designed to obtain very high throughput speed without the need for MPLS or Tag Switching. Addition services have been added onto MPLS to provide a very flexible and scalable network.
[edit] Label Format
At the heart of MPLS lives the label. The label provides identification, class of service, and a TTL mechinism.
| Code | Value |
|---|---|
| Label | 20 bit label to be added to the packet to identify the packet for a certain VPN, TE, or next-hop |
| EXP | MPLS Experimental Value. This is used for CoS across the MPLS backbone |
| S | Bottom of Stack Bit. This is used to to represent that the label is the last in the stack and there are no further labels |
| TTL | Time To Live. To prevent a Label from being switched indefinitely or to limit the scope of a packet TTL is decrimented by one at each hop |
There is two types of MPLS routers in a MPLS cloud a label switch router (LSR) and Edge-Label switch router (E-LSR)
When a router receives a labeled packet, it looks up the label value at the top of the stack to learn the next hop to which to forward the packet and any operation to be performed on the label stack before forwarding the packet. The most common label operation for an LSR router is to swap the label at the top of the stack with another label or to pop the top label from the stack.
Label values range from 0 through 1,048,575. Values 0 through 15 are reserved by the IETF, and all others are available for use. Of the 16 label values reserved by the IETF, a few have well defined meanings:
| Code | Value |
|---|---|
| 0 | IPv4 Explicit Null label indicates that the label must be popped when the packet is received. Packet forwarding then continues using longest-match lookup based on the contents of the IPv4 packet. |
| 1 | Router Alert label delivers the packet to the local router's software for processing. |
| 2 | IPv6 Explicit Null label. Similar to label 0 for IPv4. |
| 3 | Implicit Null label is used by a signaling protocol(RSVP,LDP or TDP) to request that the downstream router pop the label. |
[edit] Layer 2.5 Protocol
MPLS does not replace an existing protocol, rather it has been referred as a "shim" protocol. One or more labels (refered as the label stack) are placed in between the Layer 2 and Layer 3 portions of the packet. This is why MPLS is referred as a Layer 2.5 Protocol.
MPLS is supported in PPP (for use in Packet over SONET/SDH), Ethernet, and ATM Cells. Even though ATM is supported as a MPLS base medium, only one MPLS label is allowed in the cell. Stacking labels is not supported over ATM.
[edit] Label Distribution Protocol
Labels are allocated and distributed throughout an MPLS network using a signaling protocol. Label distribution protocol (LDP) is the most widely used across different vendors.
LDP was designed by the MPLS working group in the IETF to set up LSPs and distribute labels throughtout an MPLS network. LDP relies on an IGP (either OSPF or IS-IS) for all routing decisions, and the LSPs it sets up always follow the IGP's shortest path and change when the IGP's path changes. These LSPs use the IGP to avoid loops. Because LDP is dependent on an IGP, LDP-signaled LSPs are limited in scope to the IGP's domain and cannot cross AS boundaries.
LDP discovers neighbros by sending Hello messages, multicasting them to 224.0.0.2 on UDP port 646. After discovering the neighbor LDP establishes a TCP connection to the neighbor and exchanges information regarding labels and routes (called forwarding equivalent classes [FECs]) associated with the labels. The use of TCP ensures reliable delivery of label information. LDP sends periodic keepalive messages to maintain the TCP connection. Each LDP router updates its forwarding-path information independently as it tracks the state of the IGP.
[edit] L3 VPN
[edit] See also
- RFC3031 RFC 3031 - Multiprotocol Label Switching Architecture
- MPLS-Diagrams - Diagrams centric to MPLS.

