1 / 44

Lecture 3. MPLS basics

Lecture 3. MPLS basics. D. Moltchanov , TUT, Spring 2010. D. Moltchanov, TUT, Spring 2008. Outline. Functionality Label encoding Label encapsulation Operations with labels FEC classes and LSP types Label distribution protocol. Functionality. Basics of MPLS: functionality.

jonesdennis
Download Presentation

Lecture 3. MPLS basics

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. Lecture 3. MPLS basics D. Moltchanov, TUT, Spring 2010 D. Moltchanov, TUT, Spring 2008

  2. Outline • Functionality • Label encoding • Label encapsulation • Operations with labels • FEC classes and LSP types • Label distribution protocol

  3. Functionality

  4. Basics ofMPLS: functionality • What is that? • Multi-protocol label switching • Fast packet switching technology • Operates on virtual circuits • Operates between layers 2 and 3 • Very similar to ATM • Much faster than IP • MPLS combines advantages of: • АТМ:switching • IP:routing

  5. Basics ofMPLS: basic standards • Standardization ofMPLS • IETF drafts and RFCs • www.ietf.org/rfc • Vendors’ proposals become standards • Basic standards • RFC 3031: MPLS architecture • RFC 3032: label coding • Support of data-link protocols • PPP, Point-to-Point protocol • Ethernet • ATM • Frame Relay

  6. Basics ofMPLS:comparisonwithIP • Traditional routing • IP packet is routed hop-by-hop • Hop-by-hop routing • Decision regarding the next hop is made independently • Header is analyzed in each router • Header contains many fields • MPLS approach • Header is analyzed only once: source routing • At the entrance to MPLS domain • Packet is associated with a certain flow • Flow is identified with a label • Only label is then analyzed in the core of a domain

  7. Basics ofMPLS:traffic control • Traditional traffic control • Chose a shortest path • Avoiding failed nodes/links: possible • Avoid overloaded paths: not possible • MPLS traffic control • Creating virtual switched paths • LSP, Label-Switched Path • Analog to virtual circuitsinATM • Packet on a switched path • No delivery guarantees • Priorities exist • Intermediate nodes use label value to switch • Reliability: primary and secondary paths • LSP: controlling how traffic crosses the network

  8. Labels: encoding and encapsulation

  9. Basics ofMPLS:MPLS label • MPLS label is attached to packets: 32 bits • Label value field • 20 bits • This is local address(meaningful to a given router only) • Determines forwarding equivalence class (FEC) • EXP field (experimental): is known as class of service (CoS) • S field (stack): hierarchy of labels • TTL field: time to live

  10. Basics ofMPLS:special labels • Ranges of values: • 0-15:special labels • 15 – 1023:can be used • 1024 – 9999: reserved • 10000 – 99999:used by vendors • 100000 – 1048575: can be used • Special labels • 0: IPv4 Explicit Null Label • Label must be removed • 1:Router Alert Label • Packet should be delivered to router software • 2: IPv6 Explicit Null Label • Label must be removed • 3: Implicit Null Label • Label must be removed (for label distribution protocols) • 4 – 15:not defined

  11. Basics ofMPLS:label assignment • Labels are set by each node • Are of local significance only • Once labeled packet is received • Label is swapped and packet is sent according to forwarding table • If label value is incorrect, not set, etc. • Packets is dropped • IP header is not analyzed • ICMPmessage is not generated • Packet can have a number of labels • Label stack • Analysis:LIFO • Switching decision:only last label

  12. Basics ofMPLS:label stack • Label stack • RFC 3032 • Flexibility • Merge a number of paths into a single path • Hierarchy of virtual paths • Example: • 4 labels hierarchy

  13. Basics ofMPLS: label encapsulation • MPLSis multi-protocol in nature • Supports a number of data-link layer protocols • Encapsulations of label is standardized for • PPP/Ethernet:label in betweenL2 и L3 • ATM:label in VCI/VPI • Frame Relay: label inDLCI

  14. Basics ofMPLS: encapsulation (802.3) • TTLshould be set toTTL of an IPpacket • When the last is poppedTTLis copied toIP packet ••• n 1 L2 header (PPP, 802.3) Header and L3 packet 4 octets Format: TTL Label Exp. S Label: label value, 20 bit Exp.: experimental field, 3 bits (COS) S: bottom, 1 bit (1 = last label in the stack) TTL: time to live, 8 bit

  15. Basics ofMPLS: encapsulation (ATM) • Upper one or two in VCIanVPI • Format is defined by LDP • Next labels are sub-headers inPPP/LAN format • TTLis carried in the last label Defined by format of the cell header Header: VPI VCI PT HEC CLP Label Method 1: Label Label Method 2: Method 3: ATM VPI Label AAL 5 PDU frame (nx48 byte) ••• n 1 Sub-header and L3 packet PPP/LAN format AAL5 Trailer ATM SAR 48 bytes 48 bytes ATM Header • • • ATM Data

  16. Basics ofMPLS: encapsulation (FR) • The last inDLCI field • Next labels are sub-headers inPPP/LAN format • Basic encapsulation: • nlabel in the stack • The last contains TTL PPP/LAN format Q.922 header Header and L3 packet ••• n 1 C/ R FE CN E A BE CN D E E A DLCI DLCI

  17. Operations with labels

  18. Basics of MPLS:label operations • Pushfor IP packet • Add new label • TTLfrom IP packet is copied to label • CoSfromthe queue (DiffServ/MPLS) • Push forMPLSpacket • Add one more label • FiledSmust be set to 1 • FieldsCoSfrom penultimate label • TTL value = 255 (does not depend on previous labels) • PopforMPLSpacket with one label • Remove the last label • CopeTTLtoIP header • Continue with routing of IP packet (except for label value = 3)

  19. Basics of MPLS:label operations • PopforMPLSwith stack of label • Remove the latest label • May copyCoSandTTL • Continue MPLS switching • Swap • Swap the latest label with a new one • FieldsSandCoSshould be copier into a new one • Decrease TTLby 1 and paste • MultiplePush • Add multiple label • SwapandPush • Swap the latest with a new one and add one more

  20. Basics of MPLS:switching table

  21. Basics of MPLS: ingress node • Ingress node • ReceivesIPv4packet with 192.168.1.1 destintion address • Determines that has a path to192.168.1.0/24via LSP • UsingPUSHadds label 101456 • Sends packet to the next hop inLSP

  22. Basics of MPLS: transit node • Treansit node • Receives packet with label • Checks switching table • SWAPs label • 101456 to 108101 • 108101 to 100001 • The same for all transit nodes

  23. Basics of MPLS: penultimate node • Penultimate node • Receives labeled packet • Checks switching table • Removes label • The egress node requested label 3 • Sends IP packet to egress node • Egress node send a packet to destination

  24. Basics of MPLS: labels 0 and 3 • Removing label at the egress node • Egress node informs penultimate node to use label value 0 • Packets sent to egress node contains label value 0 • Egress node removes the label and then use plain IP routing • Removing label at the penultimate node • Egress node informs penultimate node to use label value 0 • Penultimate node removes the label and sends plain IP packets • Egress node use plain IP routing

  25. FEC classes and LSP types

  26. MPLS: FECclasses • Forwarding Equivalence Class • Packets that require the same treatment in the network • Flexibility of network usage • Is made once at the entrance to the network

  27. Basics ofMPLS: LSP types • Three types of LSP • StaticLSP • Dynamic LSPs • LSP using LDP (LDP-signaled LSP) • LSP usingRSVP (RSVP-signaled LSP) • Sufficient to configure ingress nodes • Labels and LSPs are determined automatically • Two types of dynamic LSPs • Explicit LSP • Determined manually at the ingress node • Constrained LSP • Explicit LSP but takes into account: • Topology information: distributed by IGP • Resource information: distributed by IGP • Traffic requirements and restrictions

  28. Basics ofMPLS: constrained LSP • Constrained LSP is computed based on • Constrained Shortest Path First (CSPF) • CSPFuses the following metrics • LSP attributes • Bandwidth requirements • Limitations on the number of transit nodes • Priority of LSP • Link attributes • Available bandwidth (all minus reserved) • CSPFuses the following sources of information • Traffic Engineering Database (TED) • TED is filled up by modified IGPs

  29. CreatingLSP: protocols • Signaling protocols • Label distribution {incoming i-ce, label} - {outgoingi-ce, label} • A number of protocols were defined • Was done for a purpose: determine the best • LSPcan be set-up • Labels are distributed from egress to ingress node • Label distribution protocols • Label distribution protocol (LDP) • Constrained-routing LDP (CR-LDP) • Resource Reservation Protocol (RSVP)

  30. CreatingLSP: LDP, CR-LDP,RSVP • LDP • Uses SPF (shortest path first) • Neighbors exchange labels • CR-LDP • LDP + source routing + bandwidth reservation • Labels are determined by the source • Adds traffic control features • RSVP-TE • Extended to support traffic control and label distribution • Source routing • Bandwidth reservation • Labels are determined by the source • ITU-T: LDP/CR-LDPfor public networks, RSVP-TE is popular

  31. Label distribution protocol

  32. LDP • LDP: Label Distribution Protocol • Does not support traffic engineering • Defined in RFC 3036 • Labels are distributed automatically • Properties ofLDP • Sets upLSPs • Just maps routing info to labels • The end node can be • Any node of MPLS domain • Egress node of MPLS domain • Recommended byITU-T • Traffic engineering is enabled by extensionCR-LDP

  33. LDPneighborhood relationships • Two adjacent nodes creates ‘neighborhood relationships’ • Exchange ‘Hello’ messages • UDP port 646 • ‘Hello’: IP address of a node,message,ID of a session • Two remote node can also become neighbors • Directed‘Hello’ messages • UDPport 646 • Address of source node is included

  34. LDPsession • Once two nodes became neighbors,they determine • Which of these two is active (has higherID) • Active nodes create TCPconnections • TCPport 646 • Active node createsLDPsession • Sends initializing message • Initializing message includes • Local LDP process identifier • Version of LSP protocol • Passive node answers with‘keepalive’ message

  35. What happens next • Neighbors exchange interface addresses • ‘Address’ message is used • Only directly connected interfaces • Neighbor receives information about next hops • Neighbors exchangeFECand labels • Info about FEC is from classic IGP • Only LDP uses classic IGPs • Example: (FEC_192.168, interface_4, label_0…0145) • AllLDP nodessupportLDP databases • FEC/labelsreceived • FEC/labelssent

  36. LDP: label distribution

  37. LDPin detail • Neighbors should have the same vision ofFEC Routing table: Addr-prefix Next Hop 47.0.0.0/8 LSR3 Routing table: Addr-prefix Next Hop 47.0.0.0/8 LSR2 LSR1 LSR3 LSR2 IP Packet 47.80.55.3 Label database: Label-In FEC Label-Out 45 47.0.0.0/8 17 Label database: Label-In FEC Label-Out 17 47.0.0.0/8 XX For 47.0.0.0/8 Use label ‘17’ Step 2: Informneighbor Step 1: LSR bindFECto label Step 3: LSPinsert this binding in Its switching table and use it

  38. LDP:‘Label-FEC’without request • Binding ‘Label-FEC’without request • Downstream unsolicited label distribution • Procedure • LSR2determines next hop forcertain FEC • How: from routing table • LSR2generates label for thisFECand send binding for LSR1 • LSR1insertslabel for this FECto switching table • Continue with other hops LSR2 LSR1 Binding‘Label - FEC’

  39. LDP:‘Label-FEC’withrequest • Binding ‘Label-FEC’with request • Downstream-on-demand label distribution • Procedure • LSR1 determinesLSR2as next hop for certainFEC • How: from routing table • LSR1sends request for binding‘Label-FEC’ • IfLSR2knows thisFECand next hop for this FEC • LSR2 creates binding ‘Label-FEC’and sends it toLSR1 • If it does not know, nothing happens LSR2 LSR1 Request for binding Binding ‘Label-FEC’

  40. LDP: controlling label distribution • Independent • Labels are generated independently at each node • Bindings‘Label-FEC’are sent as soon as next hop is discovered • Loop control algorithms are required • LSPs are created very fast • Ordered • Binding‘Label-FEC’is sent if • LSRis egressnodefor thisFEC • Binding for this FEC already received from next hop • LSP is created from egresstoingress node • Delay can be high • Loop-free • Both methods can be used simultaneously

  41. LDP: controlling reception of bindings • Question? • What is we get ‘Label-FEC’ bindings from several LSRs? • Holding labels: • Liberal • Conservative LSR2 Binding for LSR5 LSR5 LSR1 Binding for LSR5 LSR3 Binding for LSR5 LSR4

  42. LDP: liberal holding • LSRremembers all received bindings • If next hop changes • LSRcan use other available bindings • Fast adaptation to topology changes • Higher memory requirements LSR2 Bindings for LSR5 LSR3 LSR1 LSR4label LSR3 label LSR2 label LSR4 Next hop

  43. LDP: conservative holding • Only one binding us supported by LSR • If next hop changes • LSR зrequest another binding • Slow adaptation to topology changes • Low memory requirements LSR2 Bindings for LSR5 LSR3 LSR1 LSR4label LSR3 label LSR2 label LSR4 Next hop

  44. LDP: shortcomings and advantages • MPLS was developed to achieve • Fast switching • Traffic engineering • What LDP does? • Just maps routing topology to switching one • Fast switching: yes • Traffic engineering: no, just simply maps IGP view • Conclusion • With LDP we still have to rely on classic IGPs • Only fast switching is achieved • Are there any protocols with traffic engineering support?

More Related