1 / 57

Advanced topics in Computer Networks

Advanced topics in Computer Networks. Lecture 12: MPLS. University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani. Outline. Different options for packet switching. Label switching MPLS. Packet Switching.

ann
Download Presentation

Advanced topics in Computer Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Advanced topicsinComputer Networks Lecture 12: MPLS University of Tehran Dept. of EE and Computer Engineering By: Dr. Nasser Yazdani Adv. topics in Computer Network

  2. Outline • Different options for packet switching. • Label switching • MPLS Adv. topics in Computer Network

  3. Packet Switching • Switch on Layer 2 (bridges) two major problems in scaling. • Broadcast storm on the net. • The size of lookup table. • Use existing switching technology to send IP ( IP over ATM), very complicated! • Switch packets directly in TCP/IP protocol. • Does not scale for higher speeds and supporting some service like diff. Service. • Identify each flow with anID. Adv. topics in Computer Network

  4. Label Switching The idea is to identify a flow with an ID. Combines label swapping with routing. Identify and separate different functional components in layer 3. The routing functional components: • Forwarding • Forwarding engine • Forwarding tables. • Control. • Routing protocols • Maintain labels Adv. topics in Computer Network

  5. Basic concepts • Forwarding Equivalence Classes: A set of all possible packets forwarded and treated by a router in the same way disjoint of other sets. For instance, to the same next hop or having the same QoS. • Consistent routing and forwarding information in the network. This is done by forwarding components. Adv. topics in Computer Network

  6. Forwarding Components • Label:Short, fixed-length entity. No structured. • Forwarding tables:different tables for unicast and multicast forwarding If the switch finds a entry with the incoming tag, it replaces the tag in the packet with the outgoing tag and the link information, and forwards it to the outgoing interface. Adv. topics in Computer Network

  7. Forwarding Components (cont) • Labels are carried in packets. In ATM in VPI/VCI part and in IP in the link layer • Labels come inside MPLS headers. MPLS headers are inserted between layer3 and layer2 headers. This type of headers are called shim headers. Shim header is 4 bytes and its format is : Shim header is identified from type of frames in Ethernet and PPP. ( See parser for details.) Adv. topics in Computer Network

  8. Adv. topics in Computer Network

  9. Control Components (Binding) How Labels are bound to FECs: • Topology Driven:Binding is done by the routing protocols like OSPF or BGP. Each route or prefix is associated with a label. We implement this. It is simple and does label aggregation and merging in some degree. • Request or Control Driven: Binding is done by signal in upper layer such RSVP. • Data Driven: receiving a data flow trigger the binding process. The most complicated case. Adv. topics in Computer Network

  10. Control Components (Binding) • Local versus remote binding: in the first one label assigned to a FEC locally. In the second one, router receives label from other router. • Upstream versus Downstream: in the second one, incoming labels are binded locally and outgoing remotely. Upstream is reverse. • Free labels: A pool of free label to assign. Adv. topics in Computer Network

  11. Basic concepts (Binding) • MPLS is connection oriented and uses label switching to forward packets. Then, a Label Switch Path (LSP) must be set first before forwarding any packet. • Setting path is done in upper layer or control plane. • Labels are allocated and distributed in by the Label Distribution Protocol (LDP) which is in the upper layer. • Labels are bounded to Flow Equivalent Classes (FECs). A FEC is a set of packets which are treated in the same way for forwarding. • Implement MTU (maximum Unit) discovery mechanism in the upper layer. If the packet size pass this value, it discards the packet (should be included in the parser). Adv. topics in Computer Network

  12. Proposed Architectures • IP switching (Ipsilon) • Tag-switching (Cisco) • CSR (Toshiba) • ARIS (IBM) (Aggregate route-based IP switching) • Multiple Protocol Label Switching (MPLS). Adv. topics in Computer Network

  13. Why MPLS? • To utilize ATM switching technique in IP routers. This improve the price/performance of forwarding process. • To simplify forwarding and routing process. Use MPLS tags for forwarding instead of IP header. • Improve scalability by defining nested domains. • To extend the functionality and flexibility in bringing new services such as traffic shape, QoS, etc in an easy and manageable manner. • And more ….. Adv. topics in Computer Network

  14. What is MPLS • Based on label switching technology • Use link layer services from L2 • Single short fixed label • Fast exact label matching • Based on multiple data link media • Connection-oriented switching • Can support multiple layer 3 protocols Adv. topics in Computer Network

  15. Adv. topics in Computer Network

  16. Example of MPLS backbone IP MPLS edge router MPLS Switch/router MPLS Switch/router MPLS Switch/router MPLS edge router MPLS Switch/router MPLS edge router IP IP Adv. topics in Computer Network

  17. Core MPLS Components • Routing • using standard L3 routing • Labels • local issue, but decided based on global knowledge • Encapsulation • May use the following fields: label, TTL, CoS, stack indicator, next header type indicator, checksum Adv. topics in Computer Network

  18. MPLS Link Layers • MPLS is intended to run over multiple link layers • Specifications for the following link layers currently exist: • ATM : label contained in VCI/VPI • Frame Relay: label contained in DLCI field • PPP/LAN: uses ‘shim’ header inserted between L2 and L3 header Adv. topics in Computer Network

  19. Basic processing • Build forwarding table • Using OSPF, IS-IS, EIGRP • Distribute tag information via TCP • Edge router forwarding packet across the MPLS network • Analyzes the network-layer header Adv. topics in Computer Network

  20. LSP establishment • Independent: each LSR makes decision independently. • Fast label binding convergence • Ordered: Used in ARIS. Established from one end to another. • Provide loop prevention • Selection FEC at the end point • Tight control over packet forwarding • Increased time in LSP setting. Adv. topics in Computer Network

  21. Dealing with loop • Loop mitigation: minimize loop effects. TTL field (What to do in ATM?) • Limit buffer space for a specific VC. • Loop prevention: • Loop detection: Path vector (ARIS) • Colored threads. For each LSP a unique color. If thread come back, the node will see loop. • How make color unique. Use IP addr. With a unique number. • Color is initiated in end point. Adv. topics in Computer Network

  22. Encapsulation • Packet flows are identified and forwarded by labels instead of TCP/IP header. • Labels come inside MPLS headers. MPLS headers are inserted between layer3 and layer2 headers. This type of headers are called shim headers. Shim header is 4 bytes and its format is : Shim header is identified from type of frames in Ethernet and PPP. ( See parser for details.) Adv. topics in Computer Network

  23. Basic concepts (headers) • Labels:Total label space is 220. Some labels are reserved Label 0 : IPv4 Explicit NULL label. Label stack must be popped and the packet forwarded based on the IPv4 header. Label 1: Router Alert Label. The packet is sent to the upper layer application. If the packet needs to be forwarded. It is done based on the label beneath stack. For forwarding the Router Alert Label is push back to the stack. Send IP packet and shim header together. Label 2: the same as 0, but for IPv6 Label 3: the same as 1, but for IPv6. Label 4-15: are reserved in the Ethernet link but, can be used in PPP. Adv. topics in Computer Network

  24. Basic concepts (Headers) Total labels needed are 128K or 217 (discussed later). Then, 17 bits are enough to represent labels. 3 extra bits is used to identify the network layer protocol and multicasting. 0xx: 2 bits for Protocols identification 00: for IP protocol. 01: for IPX protocol. 11: for multicasting group. The protocol number is valid only for the bottom stack header. Adv. topics in Computer Network

  25. Basic concepts (Headers) • Exp :experimental bits. We use these bit to support DiffServ in MPLS. We can have 7 classes. 000 is reserved for the best effort or default case. 64 classes of DiffServ mapped to 7 classes in shim header. • S bit:or Stack bit shows the bottom of stack. 1 indicates the bottom of stack. • TTL: Time To Live. It is the same as TTL in IP header. This is to prevent permanently circulating packets in a loop. Adv. topics in Computer Network

  26. Adv. topics in Computer Network

  27. Adv. topics in Computer Network

  28. Adv. topics in Computer Network

  29. Adv. topics in Computer Network

  30. Adv. topics in Computer Network

  31. Adv. topics in Computer Network

  32. Scalability of MPLS over ATM • Non VC merging • Each source-destination pair mapped to a unique VC value, O(n2) • VP merging • For same destination has same VP, for each stream has unique VC, O(n) • VC merging • Maps incoming VC labels for the same destination to the same outgoing VC labels Adv. topics in Computer Network

  33. A General View Classifier IP lookup Header Packet ID Parser Packet ID IP address Packet MPLS Engine Shim Header RGA, Header VMI Interface header Config Ports, TOS, header To VMI Multicasting Engine CPU Interface • This a general view and have only showed the connection from • Parser and MPLS Engine to the other components. Adv. topics in Computer Network

  34. Design Principles • Binding is done by Topology driven approach and by the routing protocols. • QoS is accomplished by DiffServ and CR-LDP. We don’t support RSVP in this version. • Supporting different hierarchy in MPLS domains. • Support Multicasting. • No Support for VPN. • Forwarding is done completely in layer 2. • MPLS engine works only with IP packets. Then, if the ingress link is ATM, packets must be assembled first. In the egress, if the link is ATM, packets are segmented after going through the MPLS engine. Adv. topics in Computer Network

  35. Tables • Routing Table: This is the traditional routing table which contains labels associated with prefixes or network addresses. This table is consulted in LER in the ingress and egress of MPLS domain for forwarding packets. This table is merged with the prefix matching index structure. The size of table is 128K which the number of the supported prefixes. Adv. topics in Computer Network

  36. Tables (Cont) • Forwarding Table (LIB): or Label Information Base is the main table for packet forwarding. The size of table is the same as routing table 128K. Out Label: can be 17 bits, the other 3 bits, depends on the network layer protocol and can be set from the router (LSR) configuration. Port: is the output port for the unicast forwarding. TTL: Time To Live is a value which is subtracted form shim header TTL. This is helpful when the MPLS packets are routed in an ATM domain. This value is precomputed by LDP. The default value is 1. Adv. topics in Computer Network

  37. Tables (Cont) QoS: Quality of service parameter. This is used in CR-LSR or in constrain based Label switching Routers. CR-LDP specification define the following traffic parameters: • Peak Data Rate (PDR) • Peak Burst Size (PBS) • Committed Burst Size (CBS) • Excess Burst Size (EBS) • Frequency and Weight. Action: is the action which MPLS should do with this header and packet forwarding. It is three bits and the valid values are. Default: 000, Swap the label and forward based on the top of stack header values. Adv. topics in Computer Network

  38. Tables (Cont) POP: 001, Pop stack and forward based on the beneath stack values. POPFRWD:010, Pop stack and forward based on the IP header values. This is done usually in the LER and in the egress of MPLS domain. PUSH: 011, Forward based on the label and push label into the stack. FRWDPUSH:100, Forward based on the IP header values and push the label into stack. This is done usually in the LER and in the ingress of MPLS domain.Note: • The code number of these action may change based on the LDP implementation. • We may need other codes based on the implementation and future use. Adv. topics in Computer Network

  39. Forwarding Algorithm • We differentiate between LER in the ingress of a MPLS domain and inside the MPLS domain itself. • We make few conventions to develop the algorithms. P, S and T followed by dot ‘.’ shows the main data element and the next character shows the field or entity. P.header = Packet header. S.header = Shim header or MPLS header T.TTL = TTL value in the table. Adv. topics in Computer Network

  40. Forwarding Algorithm (Cont) For LER in the Ingress, in entrance to MPLS domain do; If P.TTL=0, discard the packet. Else Get OutLabel and the port number from the routing table. S.TTL  P.TTL – 1; S.Expt  mapping DSP field of the IP header /* This is the first domain. */ S.S  1; S.Label  T.OutLabel; Push the shim header into the stack. Forward the packet to the port. Adv. topics in Computer Network

  41. Forwarding Algorithm (Cont) For General case when we are inside MPLS domain do; Loop: Get the corresponding entry for the incoming label in the MPLS table. If S.TTL = 0 or S.TTL – T.TTL  0, /* Discard packet */ Send RemPacket signal to the PSSB; Get the Packet’s IP header; Send DiscrdPacket signal with IP header to CPU; /* CPU generates an ICMP discarded packet */ Else /* packet must be forwarded */ If S.Label = 0 /* forward based on IP header */ send the packet Id to Lookup and classifier. Set the IpRoute signal; If S.Label = 1 /* forward packet to upper layer */ send the packet to CPU. Adv. topics in Computer Network

  42. Forwarding Algorithm (Cont) If S.Label = 2 or 3 /* IPv6 packet, discard*/ Send RemPacket signal to the PSSB; Get the Packet’s IP header; Send DiscrdPacket signal with IP header to CPU; switch (T.Action); POP: /* Pop and forward based on the next header */ if S.S = 1, /* the last stack, we may not need this */ send the packet Id to Lookup and classifier. Set the IpRoute signal; P.TTL  S.TTL else /* There is another stack */ remove the current stack and get the new stack. go to loop /*repeat the forwarding algorithm */ Adv. topics in Computer Network

  43. Forwarding Algorithm (Cont) POPFRWD: /* Pop and forward based on the IP header */ send the packet Id to Lookup and classifier. Set the IpRoute signal; if S.S = 1, /* the last stack */ P.TTL  S.TTL –1; Set NoShimHeader signal; end if; remove stack; PUSH: /* Should be checked when it happens */ PUSHFRWD: /* it is a new MPLS ingress, forward is done based on IP header. Assumed this is not the first stack. */ S.S  0; /* Creating a new stack */ S.Exp  the current stack value; S.OutLabel  T.OutLabel ; /* from routing table */ S.TTL  The current TTL –1; Push the shim header into the stack; forward packet to the port for routing table */ Adv. topics in Computer Network

  44. Forwarding Algorithm (Cont) DEFAULT: /* Just swap the label*/ S.OutLabel  T.OutLabel ; /* from MPLS table */ S.TTL  The current TTL –1; forward packet to the port for MPLS table */ End; Adv. topics in Computer Network

  45. Multicasting • There is no any well defined standard or internet draft for multicasting in MPLS. • In order to support multicasting in MPLS we need to define; • Multicasting protocol in detail. • Labeling mechanism and addressing in the link layer. Adv. topics in Computer Network

  46. Multicasting • Label: All labels starting with 11 is reserved for multicasting. The multicasting MPLS packet can be identified from the link layer frame type. For Ethernet: the e-type is hex 8848. For PPP: the protocol field type is hex 0283. • DLL Address: An Ethernet address starting with 01-00-5E is a multicast address. For the rest, the 20 bit of the MPLS label is directory mapped to 20 bit Ethernet address. Bit 21-24 are always 0. Adv. topics in Computer Network

  47. Multicasting • Protocol: Few internet drafts have been published recently. However, none them has specified a detail mechanism for MPLS multicasting. In general, we can have two approaches: • Leave the forwarding process to IP multicasting. This method has problem when MPLS packet wants to go through ATM domain. • Design a new protocol based on the general specifications of the internet drafts. Adv. topics in Computer Network

  48. Multicasting In designing a MPLS multicast protocol, we must deal with two problems. • Creating multicast tree. • Allocating and distributing labels. Definitely, LDP must deal with the second problem. However, creating Multicast tree can be based on: • Topology driven: Map the L3 tree in the routing protocol into L2. • Request driven: By signaling • Traffic driven: Map the L3 tree in the routing protocol into L2 when data arrive. Adv. topics in Computer Network

  49. Multicasting We implement Topology driven approach: • The IP multicast protocol will take care of creating multicast tree. • Since the multicast tree, or table, is also in layer 2, the mapping can be done mostly in the layer 2. • LDP is only modified to allocate multicast label and distribute it on the path. It sounds this is the minimum modification which can be done to support MPLS multicasting. Adv. topics in Computer Network

  50. Multicasting CPU Interface LDP config Config Ctrl signals Ctrl signals Ctrl signals IP Multicast MPLS Multicast Data Data • A copy of IP multicast tree is build in MPLS multicast. • whenever an IP multicast group is created, MPLS part is • informed to updates its tree. • MPLS send the new IP group number to LDP, to bind a label • and distribute to the other LSRs in the domain. • Multicast parts are implemented in layer 2 and LDP is in upper • layers and implemented in software. Adv. topics in Computer Network

More Related