Multiprotocol Label Switching (MPLS) Sookyoung Lee Agenda Problems of traditional IP routing Motivations for MPLS Objectives of MPLS What is MPLS? Label, FEC, LIB, LER, LSR, and LSP How MPLS works? LDP, CR-LEP, TE-RSVP Main capabilities of MPLS Connection-oriented QoS Support, Traffic Engineering, VPN support, Multiprotocol Support References Problems of traditional IP routing Problem of Traditional IP Routing Longish latency at every hop Header analysis Routing table lookup based on the IP address Replace the layer 2 address No assurance how a packet will travel Some congested links and some underutilized links No QoS - all packets are treated equally No capability to prioritize packets between different hosts and of different applications Motivation for MPLS Rapid growth of Internet Increase in traffic volumes Voice and data convergence on a single network infrastructure New latency dependent applications Ever-increasing number of ISP networks Still IP protocol suite popular – the most predominant networking technology Objectives of MPLS Speed up IP packet forwarding By cutting down on the amount of processing at every intermediate router Prioritize IP packet forwarding By providing ability to engineer traffic flow and assure differential QoS Without losing on the flexibility of IP based network What is MPLS? A technology to switch (forward) a packet at a high speed at layer 2 using fixed length labels obtained from layer 3 routing information. Integration of layer 2 and layer 3 IP supplements MPLS and ISO model MPLS Architecture MPLS terminology MPLS Cloud MPLS and ISO model 7 to 5 Applications TCP PPP PPP UDP IP MPLS Frame 4 3 ATM (*) ATM 2 Physical (Optical - Electrical) 1 FR Relay No modification needed on the existing layers when MPLS layer is added. MPLS must be backward compatible. MPLS Architecture LSP Routing protocol FEC table Attributes Label table Label Switch Classification Label assignment Label swapping Label removal OSPF OSPF Local table Local table Local table Local table Local table Layer 2 Layer 2 Layer 2 Layer 1 Layer 1 Layer 1 Core Node Egress Node OSPF Local table Precedence Ingress Node MPLS terminology Label and Label Stack FEC – Forward Equivalence Class LIB – Label Information Base LER – Label Edge Router LSR – Label Switching Router LDP – Label Distribution Protocol LSP – Label Switched Path Label A short, fixed length identifier (32 bits) Sent with each packet Local between two routers Can have different labels if entering from different routers One label for one FEC Decided by the downstream router LSR binds a label to an FEC It then informs the upstream LSR of the binding Different depending on layer 2 technology ATM: VCI/VPI field of ATM header Frame Relay: DLCI field of FR header PPP/LAN: ‘shim’ header inserted between layer 2 and layer 3 32bits 20bits 3bits 1 Label EXP S 8bits TTL S: bottom of stack bit Exp: Experimental 1 to many DLL header label stack entry NL header L3 data ATM-MPLS label GFC VPI VCI Label PTI CLP HEC DATA Label Stack Layer 2 Header Label 3 Label 2 Label 1 MPLS Domain 1 MPLS supports hierarchy. Each LSR processes the topmost label. If traffic crosses several networks, it can be tunneled across them Advantage – reduces the LIB table of each router drastically Slide by ByTamrat Bayle, Reiji Aibara, Kouji Nishimura MPLS Domain 2 MPLS Domain 3 IP Packet FEC (Forward Equivalence Class) A group of packets that require the same forwarding treatment across the same path grouped based on Address prefix Host address QoS FEC is encoded as a label Assume packets have the destination address and QoS requirements as 124.48.45.20 qos = 1 143.67.25.77 qos = 1 143.67.84.22 qos = 3 124.48.66.90 qos = 4 143.67.12.01 qos = 3 FEC –1 label a 143.67.25.77 FEC – 2 label b 124.48.45.20 FEC – 3 label c 143.67.84.22 143.67.12.01 FEC – 4 label d 124.48.66.90 LSR MPLS Cloud IP Packet IP Packet w/ Label LER A router/switch that supports MPLS Can be a router Can be an ATM switch + label switch controller Label swapping Each LSR examines the label on top of the stack Uses LIB to decide the outgoing path and the outgoing label Removes the old label and attaches the new label Forwards the packet on the predetermined path L3 Routing Ingress LER Ordinary IP Router Egress LER LSR L3 Routing L3 Routing LER LSP LSR Label Swapping L3 Routing LER Can be an ATM switch or a router Ingress LER performs the following: Receives the packet Adds label Forwards the packet into the MPLS domain Egress LER removes the label and delivers the packet LSP LSR Label Swapping LER L3 Routing LSP defines the path through LSRs from ingress to egress router FEC is determined at the LER-ingress LSPs are unidirectional LSP might deviate from the IGP shortest path Label Distribution Protocol (LDP) LDP is the set of procedures and messages For LSRs to establish LSPs through a network by mapping network-layer routing information directly to data-link layer switched paths. associates a FEC with each LSP it creates. Currently, several protocols used as LDP are available: CR-LDP, RSVP-TE: Provides functionality for traffic engineering and QoS Multiprotocol extentions of BGP-4 LDP messages Discovery Messages - UDP Used to announce and maintain the presence of an LSR in a network LSRs multicast these messges periodically to 224.0.0.2 and all routers listen to this group Session Messages - TCP used to establish, maintain and terminate sessions between LDP peers Advertisement Messages - TCP create, change and delete label mappings for FECs Notification Messages - TCP Used to provide advisory information and to signal error information Label Distribution Methods Rd and Ru are said to have LDP adjacency Ru Rd Label-FEC Binding Unsolicited Downstream Label Distribution Rd discovers a ‘next hop’ for a particular FEC Rd generates a label for the FEC and communicates the binding to Ru Ru inserts the binding into its forwarding tables Ru Request for Binding Rd Label-FEC Binding Downstream on Demand Label Distribution Ru recognizes Rd as its nexthop for an FEC A request is made to Rd for a binding between the FEC and a label If Rd recognizes the FEC and has a next hop for it, it creates a binding and replies to Ru Unsolicited Downstream Ingress Ingress Interface Label 1 5 Ingress Ingress Interface Label FEC Egress Egress Interface Label 3 138.120 1 12 FEC Egress Egress Interface Label 138.120 4 12 MPLS switch 3 1 4 138.120 1 127.20 2 MPLS switch 1 3 3 2 3 2 1 1 x FEC Egress Egress Interface Label 138.120 3 5 192.168 2 MPLS switch Ingress Ingress Interface Label MPLS switch The downstream node defines the label and advertises it to the upstream node. x Downstream stream on demand Ingress Ingress Interface Label 1 5 Ingress Ingress Interface Label FEC Egress Egress Interface Label 3 138.120 1 12 FEC Egress Egress Interface Label 138.120 4 x 12 MPLS switch 3 1 4 138.120 1 127.20 2 MPLS switch 1 3 3 2 3 2 1 1 x FEC Egress Egress Interface Label 138.120 3 5 192.168 2 MPLS switch Ingress Ingress Interface Label MPLS switch The label is requested by the upstream node and the downstream node defines the label used. Label Distribution and Management Label Distribution Control Mode Independent LSP control: Each LSR makes independent decision on when to generate labels and communicate them to upstream peers Ordered LSP control Label-FEC binding is communicated to peers if: • • LSR is the ‘egress’ LSR to particular FEC Label binding has been received from upstream LSR Used for explicit routing Label Retention Mode Conservative – LSR maintains only valid bindings Liberal - LSR maintains bindings other than the valid next hop, more label, quick adaptation for routing change Label Advertisement Mode Downstream allocation Downstream-on-Demand allocation Label Information Base (LIB) Table maintained by the LSRs Contents of the table Incoming label Outgoing label Outgoing path Address prefix Incoming label Address Prefix Outgoing Path Outgoing label MPLS forwarding example In Address Label Prefix Out Out Intf Label In Address Label Prefix Out Out Intf Label In Address Label Prefix Out Out Intf Label X 128.89 1 4 4 128.89 0 9 9 128.89 0 X X 171.69 1 5 5 171.69 1 7 X 171.69 2 5 ... ... ... ... ... ... ... ... ... ... ... ... 0 128.89.*.* 2 128.89.25.4 data 0 1 9 128.89.25.4 data 128.89 .25.4 data 4 128.89.25.4 data 1 171.69.*.* MPLS Protocol Stack LER LER Core MPLS Network End System End System MPLS Network MPLS Interworking Architecture LER Routing Protocol Core LSR LDP TCP/UDP Routing Protocol IP LDP TCP/UDP LER Routing Protocol IP LDP TCP/UDP IP MPLS Control protocol Stack Architecture End System LER IP IP Core LSR MPLS Layer2 PHY MPLS End System IP IP MPLS Layer2 PHY LER Layer2 Layer2 Layer2 Layer2 PHY PHY PHY PHY MPLS Data Protocol Stack Architecture Layer2 Layer2 PHY PHY Four main capabilities of MPLS Connection-oriented QoS Support Traffic Engineering VPN support Multiprotocol Support Connection-oriented QoS Support Connection-oriented network has powerful traffic management and QoS capabilities. MPLS imposes a connection-oriented framework on a connectionless IP-based Internet providing the foundation for sophisticated and reliable QoS traffic contracts. Flow-by-flow QoS (End-to-end) not packet-by-packet QoS (Hop-by-hop) Traffic Engineering (TE) What is TE? Dynamically define routes Maximize Bandwidth Utilization by spreading the network traffic across network Ensure available spare link capacity for re-routing traffic on failure Meet policy requirements imposed by the network operator MPLS has a primitive form of automated TE. is aware of flows of packet not just individual packets With MPLS, Routes are changed on a flow-by-flow basis (Explicit routing), instead of simply changing the route on a packet-bypacket basis Constrained-Based Routed LDP (CR-LDP) Modified LDP to set up the “Explicit Routing (ER-LSP)” Strict ER-LSP: Specifies list of nodes using actual address of each node to traverse. Loose ER-LSP: Specifies list of nodes to act as one of the ‘abstract’ nodes to traverse. It can co-exist with the pure LDP. Introduces additional constraints (new parameters) for traffic regulation LER1 LSR2 LSR3 Advantages of Explicit Routing Can use routes other than shortest path Operator has routing flexibility Traffic engineering LER4 Explicitly Routed LSP Overload !! LER 1 Overload !! Forward to LSR 2 LSR 3 LSR 4 LSR X LSR 2 LER 4 LSR 3 End-to-End forwarding decision determined by ingress node. Enables Traffic Engineering CR-LDP Traffic Engineering QoS and Traffic parameters Path Preemption Path Re-optimization 0 1 Failure Notification U F Loop Detection Traffic Para TLV Flags Frequency 15 31 Length Reserved Peak Data Rate Peak Rate – Maximum rate at which traffic should be sent to CR-LDP Committed Rate – The rate that the MPLS domain commits to be available to the CRLSP Excess Burst Size – Measures the extent by which the traffic sent on CR-LSP exceeds the committed rate Frequency – constraints delay Peak Burst Size Committed Data Rate Committed Burst Size Excess Burst Size Weight TE-RSVP QoS and Traffic parameters Failure Notification Loop Detection Multi Protocol Support Path Preemption Slide by ByTamrat Bayle, Reiji Aibara, Kouji Nishimura VPN support With VPN, the traffic of a given enterprises or group passes transparently through the Internet in a way that effectively segregates that traffic from other packets on the Internet. MPLS provides an efficient mechanism for supporting VPNs proving performance guarantees and security. LSP - Label Switched Path VPN A LDP VPN VPN B LDP VPN LDP VPN VPN B P3 P5 P1 LDP VPN VPN A VPN A P2 P4 Multiprotocol Support MPLS can be used on many networking technologies. MPLS supports IPv4, IPv6, IPX, AppleTalk at the network layer. MPLS supports Ethernet, Token Ring, FDDI, ATM, FR, PPP at the link layer. Universal nature of MPLS MPLS enabled routers can coexist with ordinary IP routers. MPLS-enabled ATM switches and MPLS-enabled FR switches can be configured to co-exist wit ordinary ATM or FR switches. MPLS is a good solution to optimize resources and expand QoS support over mixed network technologies. References MPLS Charter: http://www.ietf.org/html.charters/mplscharter.html MPLS Resource Center: http://www.mplsrc.com MPLS Forum: http://www.mplsforum.org Basic RFCs RFC 3031/3032 MPLS Forwarding/Architecture RFC 3036 MPLS LDP Specification RFC 3215 LDP State Machine RFC 2205 MPLS Signaling RSVP RFC 3209 MPLS Signaling RSVP-TE