Multiprotocol Label Switching (MPLS) NETE0514 Presented by Dr.Apichan Kanjanavapastit Traditional Routing and Packet Switching • The initial deployment of the Internet addressed the requirements of data transfer over the network. This network catered to simple applications such as file transfer and remote login • To carry out these requirements, a simple softwarebased router platform, with network interfaces to support the existing T1/E1– or T3/E3–based backbones, was sufficient • As the demand for higher speed and the ability to support higher-bandwidth transmission rates emerged, devices with capabilities to switch at the Level-2 (data link) and the Level-3 (network layer) in hardware had to be deployed Traditional Routing and Packet Switching (cont.) • These early solutions addressed the need for wire-speed transfer of packets as they traversed the network, but they did not address the service requirements of the information contained in the packets • Also, most of the routing protocols deployed today are based on algorithms designed to obtain the shortest path in the network for packet traversal and do not take into account additional metrics (such as delay, jitter, and traffic congestion), which can further diminish network performance Definition • Multiprotocol label switching (MPLS) is a technology for packet forwarding and switching in network routers by using connection-oriented concept • Multiprotocol means this technology can transport various protocols such as IPv4 and IPv6 and protocols in Layer 2 such as Ethernet, Frame Relay, and ATM • Label switching means the packets are switched based on an identifier (a label) Advantages of MPLS • The Use of One Unified Network Infrastructure • Better IP over ATM Integration • BGP-Free Core • The peer-to-peer model for MPLS VPN • Optimal Traffic Flow • Traffic Engineering MPLS and Its Components • MPLS is an Internet Engineering Task Force (IETF)–specified framework that provides for the efficient designation, routing, forwarding, and switching of traffic flows through the network. • MPLS performs the following functions: – specifies mechanisms to manage traffic flows between different hardware, machines, or different applications – remains independent of the Layer-2 and Layer-3 protocols – provides a means to map IP addresses to simple, fixedlength labels used by different packet-forwarding and packet-switching technologies – interfaces to existing routing protocols such as resource reservation protocol (RSVP) and open shortest path first (OSPF) – supports the IP, ATM, and frame-relay Layer-2 protocols Where does MPLS fits in the OSI Reference Model? • MPLS is not a Layer 2 protocol because the Layer 2 encapsulation is still present with labeled packets • MPLS also is not really a Layer 3 protocol because the Layer 3 protocol is also still present • Therefore, MPLS does not fit in the OSI layering too well. Perhaps the easiest thing to do is to view MPLS as the 2.5 layer and be one with it MPLS Labels • A label, in its simplest form, identifies the path a packet should traverse. A label is carried or encapsulated in a Layer-2 header along with the packet • The first 20 bits are the label value. However, the first 16 values are exempted from normal use. The bit 20-22 are 3 experimental bits. These bits are used solely for QoS. Bit 23 is the Bottom of Stack (BoS) bit. It is 0, unless this is the bottom label in the stack. Bit 24-31 are the eight bits used for Time To Live (TTL). Label Stacking • MPLS-capable routers might need more than one label on top of the packet to route that packet through the MPLS network • This is done by packing the labels into a stack. The first label in the stack is called the top label, and the last label is called the bottom label. In between, you can have any number of labels. • Some MPLS applications actually need more than one label in the label stack to forward the label packets. Such applications are MPLS VPN and AToM (Any Transport over MPLS). Encoding of MPLS Labels • The label stack sits in front of the Layer 3 packet—that is, before the header of the transported protocol, but after the Layer 2 header. Often, the MPLS label stack is called the shim header because of its placement. MPLS Label Encoding in ATM Cell Label Switch Router (LSR) • Three kinds of LSRs exist in an MPLS network: ingress LSRs, egress LSRs, and intermediate LSRs • Ingress LSRs—receive a packet that is not labeled yet, insert a label (stack), and send it on a data link • Egress LSRs—receive labeled packets, remove the label(s), and send them on a data link. Ingress and egress LSRs are edge LSRs • Intermediate LSRs—receive an incoming labeled packet, perform an operation on it, switch the packet, and send the packet on the correct data link • An LSR can do 3 operations: pop, push, or swap Label Switch Router (LSR) (cont.) • It must be able to pop labels (remove) before switching the packet out • An LSR must also be able to push (insert) labels onto the received packet • An LSR must also be able to swap a label • An LSR that pushes labels onto a packet that was not labeled yet is called an imposing LSR which normally is an ingress LSR • An LSR that removes all labels from the labeled packet before switching out the packet is a disposing LSR which normally is an egress LSR Label Switch Router (LSR) (cont.) Label Switched Path (LSP) • A LSP is a sequence of LSRs that switch a labeled packet through an MPLS network or part of an MPLS network • The first LSR of an LSP is the ingress LSR for that LSP, whereas the last LSR of the LSP is the egress • All the LSRs in between the ingress and egress LSRs are the intermediate LSRs Label Switched Path (LSP) (cont.) • The ingress LSR of an LSP is not necessarily the first router to label the packet if the packet might have been labeled by a preceding LSR • Such a case would be a nested LSP—that is an LSP inside another LSP Forward Equivalence Class (FEC) • The forward equivalence class (FEC) is a group of packets that are forwarded along the same path and are treated the same with regard to the forwarding treatment • The router that decides which packets belong to which FEC is the ingress LSR because the ingress LSR classifies and labels the packets Some Examples of FECs • Packets with Layer 3 destination IP addresses matching a certain prefix • Multicast packets belonging to a certain group • Packets with the same forwarding treatment, based on the precedence or IP DiffServ Code Point (DSCP) field • Packet with Layer 3 destination IP addresses that belong to a set of Border Gateway Protocol (BGP) prefixes, all with the same BGP next hop Label Distribution • The first label is imposed on the ingress LSR and the label belongs to one LSP. The path of the packet through the MPLS network is bound to that one LSP • All that changes is that the top label in the label stack is swapped at each hop • The ingress LSR imposes one or more labels on the packet. The intermediate LSRs swap the top label (the incoming label) of the received labeled packet with another label (the outgoing label) and transmit the packet on the outgoing link • The egress LSR of the LSP strips off the labels of this LSP and forwards the packet Label Distribution (cont.) • Labels are local to each pair of adjacent routers. They have no global meaning across the network • For adjacent routers to agree which label to use for which prefix, they need some form of communication mechanism: a label distribution protocol Ways of Labels Distribution • There are two ways of labels distribution – Piggyback the labels on an existing IP routing protocol – Have a separate protocol distribute labels Piggyback the Labels on an Existing IP Routing Protocol • In this way, every existing IP routing protocol needs to be extended to carry the labels • The advantage of having the routing protocol carry the labels is that the routing and label distribution are always in sync, which means that you cannot have a label if the prefix is missing or vice versa • The implementation for distance vector routing protocol is straightforward, since each router originates a prefix from its routing table. The router then just binds a label to that prefix Piggyback the Labels on an Existing IP Routing Protocol (cont.) • Link state routing protocol do not function in this way since each router originates link state updates that are then forwarded unchanged by all routers inside one area • The problem is that for MPLS to work, each router needs to distribute a label for each prefix even the routers that are not originators of that prefix • For link state routing protocols, a separate protocol is preferred to distribute the labels • None of the IGPs has been changed to deploy the first method. However, BGP is a routing protocol that can carry prefixes and distribute labels at the same time. However, BGP is not an IGP. BGP is used primarily for label distribution in MPLS VPN networks. Running a Separate Protocol for Label Distribution • The second method has the advantage of being routing protocol independent • Several varieties of protocols distribute labels: – Tag Distribution Protocol (TDP) – Label Distribution Protocol (LDP) – Resource Reservation Protocol (RSVP) Running a Separate Protocol for Label Distribution (cont.) • TDP was the first protocol for label distribution developed and implemented by Cisco. TDP is proprietary to Cisco • IETE later formalized LDP. LDP and TDP are similar in the way they operate, but LDP has more functionality • RSVP is used for MPLS TE (traffic engineering) only Label Distribution with LDP • For every IGP IP prefix in its IP routing table, each LSR creates a local binding—that is it binds a label to the IPv4 prefix • The LSR then distributes this binding to all its LDP neighbors. Those received bindings become remote bindings • The neighbors then store these remote and local bindings in a special table, the label information base (LIB) • Each LSR has only one local binding per prefix, at least when the label space is per platform. If the label space is per interface, one local binding can exist per prefix per interface • The LSR can get more than one remote binding per prefix because it usually has more than one adjacent LSR Label Distribution with LDP (cont.) • LSR then needs to pick only one and use that one to determine the outgoing label for that IP prefix • The LSR choose the remote binding received from the downstream LSR, which is the next hop in the IP routing table for that prefix • It uses this information to set up its label forwarding information base (LFIB) where the label from the local binding serves the incoming label and the label from the one remote binding serves as the outgoing label Label Distribution with LDP (cont.) Label Distribution with LDP (cont.) • When an LSR receives a labeled packet, it is now capable of swapping the incoming label it assigned, with the outgoing label assigned by the adjacent next-hop LSR Label Distribution with LDP (cont.) Label Forwarding Instance Base (LFIB) • The LFIB is the table used to forward labeled packets • In the example of IPv4-over-MPLS, the label is bound on an IPv4 prefix. However, the LFIB can be populated with labels that LDP does not assign • In the case of MPLS TE, the labels are distributed by RSVP • In the case of MPLS VPN, the VPN label is distributed by BGP MPLS Payload • The MPLS label has no Network Level Protocol identifier field • This field is present in all Layer 2 frames to indicate what the Layer 3 protocol is • How does the LSR know what the MPLS payload is? Most LSRs especially for intermediate LSRs don’t need to know, because they will receive a labeled packet, swap the top label, and send the packet on the outgoing link MPLS Payload (cont.) • However, an egress LSR that is removing all labels must know what the MPLS payload is, because it must forward the MPLS payload further on • That egress LSR is the one that made the local binding, which means that that LSR assigned a local binding to that FEC, and it is that label that is used as an incoming label on the packet • Thus, the egress LSR knows what the MPLS payload is by looking at the incoming label of which the egress LRS has created local binding for that FEC Label Spaces • The labels used by an LSR for FEC–label bindings are categorized as follows: – per platform—The label values are unique across the whole LSR. The labels are allocated from a common pool. No two labels distributed on different interfaces have the same value. – per interface—The label ranges are associated with interfaces. Multiple label pools are defined for interfaces, and the labels provided on those interfaces are allocated from the separate pools. The label values provided on different interfaces could be the same Label Spaces (cont.) Per-Interface Label Space Per-Platform Label Space Different MPLS Modes • An LSR can use different modes which have their own characteristics when distributing labels to other LSRs which include: – Label distribution mode – Label retention mode – LSP control mode Label Distribution Modes • The MPLS architecture has two modes to distribute label bindings: – Downstream-on-Demand (DoD) label distribution mode – Unsolicited Downstream (UD) label distribution mode • In the DoD mode, each LSR requests its next-hop LSR on an LSP, a label binding for that FEC. Each LSR receives one binding per FEC only from its downsteam • In the UD mode, each LSR distributes a binding to its adjacent LSRs, without those LSRs requesting a label • In the case of DoD, the LIB shows only one remote binding, whereas in the case of UD, you are likely to see more than one Label Retention Modes • Two label retention modes are possible: – Liberal Label Retention (LLR) mode – Conservative Label Retention (CLR) mode • In LLR mode, an LSR keeps all received remote bindings in the LIB. However, the label from the remote binding which received from the downstream for that FEC is only used in the LFIB • Why keep the labels around that are not used? anytime the routing topology changes due to a link going down or a router being removed, the LFIB can be quickly updated with the new outgoing label Label Retention Modes (cont.) • The second label retention mode is CLR mode. An LSR that is running this mode does not store all remote bindings in the LIB, but it stores only the remote binding that is associated with the next-hop LSR for a particular FEC LSP Control Modes • LSRs can create a local binding for a FEC in 2 ways: – Independent LSP Control mode – Ordered LSP Control mode • In Independent LSP Control mode, each LSR creates a local binding for a particular FEC which is in its routing table • In Ordered LSP Control mode, an LSR only crates a local binding for a FEC if it recognizes that it is the egress LSR for the FEC or if the LSR has received a label binding from the next hop for this FEC • The disadvantage of Independent LSP Control is that some LSRs begin to label switch packets before the complete LSP is set up end to end Summary of MPLS Operation • The following steps must be taken for a data packet to travel through an MPLS domain. – – – – – label creation and distribution table creation at each router label-switched path creation label insertion/table lookup packet forwarding Label Creation and Label Distribution • Before any traffic begins the routers make the decision to bind a label to a specific FEC and build their tables. • In LDP, downstream routers initiate the distribution of labels and the label/FEC binding. • In addition, traffic-related characteristics and MPLS capabilities are negotiated using LDP. • A reliable and ordered transport protocol should be used for the signaling protocol. LDP uses TCP. Table Creation • On receipt of label bindings each LSR creates entries in the label information base (LIB). • The contents of the table will specify the mapping between a label and an FEC. – mapping between the input port and input label table to the output port and output label table. – The entries are updated whenever renegotiation of the label bindings occurs. Label Switched Path Creation • As shown by the dashed blue lines, the LSPs are created in the reverse direction to the creation of entries in the LIBs. Label Insertion/Table-Lookup • The first router (LER1) uses the LIB table to find the next hop and request a label for the specific FEC • Subsequent routers just use the label to find the next hop • Once the packet reaches the egress LSR (LER4), the label is removed and the packet is supplied to the destination Packet Forwarding • Packet forwarding then occur after the previous operations have completed Comparison of MPLS versus ATM • While the underlying protocols and technologies are different, both MPLS and ATM provide a connection-oriented service for transporting data across computer networks. • Excluding differences in the signaling protocols there still remain significant differences in the behavior of the technologies • The most significant difference is in the transport and encapsulation methods. MPLS is able to work with variable length packets while ATM transports fixed-length (53 byte) cells • Packets must be segmented, transported and re-assembled over an ATM network using an adaptation layer, which adds significant complexity and overhead to the data stream • MPLS, on the other hand, simply adds a label to the head of each packet and transmits it on the network. Comparison of MPLS versus ATM (cont.) • Differences exist, as well, in the nature of the connections. An MPLS connection (LSP) is unidirectional - allowing data to flow in only one direction • Establishing two-way communications between endpoints requires a pair of LSPs to be established. Thus data flowing in the forward direction may use a different path from data flowing in the reverse direction • ATM Virtual Circuits, on the other hand, are bidirectional, allowing data to flow in both directions over the same path (only SVC ATM connections are bidirectional; PVC ATM connections are uni-directional) Comparison of MPLS versus ATM (cont.) • Both ATM and MPLS support tunneling of connections inside connections. MPLS uses label stacking to accomplish this while ATM uses Virtual Paths • MPLS can stack multiple labels to form tunnels within tunnels. The ATM Virtual Path Indicator (VPI) and Virtual Circuit Indicator (VCI) are both carried together in the cell header, limiting ATM to a single level of tunneling Comparison of MPLS versus ATM (cont.) • The biggest single advantage that MPLS has over ATM is that it was designed from the start to be complementary to IP • Modern routers are able to support both MPLS and IP natively across a common interface allowing network operators great flexibility in network design and operation • ATM's incompatibilities with IP require complex adaptation, making it comparatively less suitable for today's predominantly IP networks MPLS and ATM MPLS and ATM (cont.)