440 likes | 457 Views
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.
E N D
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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’
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’
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
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
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
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
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?