Download presentation
Presentation is loading. Please wait.
1
Multi Protocol Label Switching (MPLS)
Lecture 11: Multi Protocol Label Switching (MPLS)
2
Routing vs Switching routing: based on address lookup, max prefix match search operation complexity O(logn) - 0(n) switching: based on circuit numbers indexing operation complexity O(1) scalable to large networks MPLS
3
MPLS connection MPLS introduces a connection-oriented structure into the connectionless IP network. An MPLS-ready IP router does not forward IP packets based on the destination address in the header, but on a label. Consider an MPLS-enabled IP network that runs over Ethernet: A special MPLS header is sandwiched between the IP header and the LLC header. The MPLS header contains a label that is a short, fixed-length connection identifier. The MPLS-ready IP router, known as a label switched router (LSR), maintains a table of labels. When an IP packet arrives at the LSR, the label carried in the MPLS header is cross-referenced to the table of labels to find the next hop. The IP packet is then switched to the destination output port of the LSR that connects to the next hop LSR. The table contains labels for only the existing connections, and therefore it is not as large as the forwarding routing table in an IP router.
4
MPLS connection In order for a user to transmit over an MPLS-enabled IP network, it has to first request the establishment of a connection. This is done using a signaling protocol, such LDP (later CR-LDP) or RSVP (later RSVP-TE). The connection is a label switched path (LSP). LSR is aware of all of the connections that pass through its switch fabric; therefore, it can decide whether to accept a new connection or not based on the amount of traffic that will be transmitted and the requested QoS. The LSR allocates a portion of its bandwidth to a new connection, and it stops accepting new connections when it either runs out of bandwidth or reaches a certain percentage of utilization.
6
Tag Switching Key difference: tags setup in background using
IP routing protocols (I.e. control-driven VC setup)
7
MPLS Concept: Route at Edge, Switch in Core
IP IP #L1 IP #L2 IP #L3 IP IP Forwarding LABEL SWITCHING IP Forwarding
8
MPLS Terminology LDP: Label Distribution Protocol
LSP: Label Switched Path FEC: Forwarding Equivalence Class LSR: Label Switching Router LER: Label Edge Router (Useful term not in standards) MPLS “multi-protocol” both in terms of protocols it supports ABOVE and BELOW in protocol stack!
9
MPLS Header IP packet encapsulated in MPLS header and sent down LSP
IP packet restored at end of LSP by egress router TTL adjusted by default … IP Packet 32-bit MPLS Header MPLS is responsible for directing a flow of IP packets along a predetermined path across a network. This path is called a label-switched path. Label-switched paths are similar to ATM PVCs in that they are simplex in nature; that is, the traffic flows in one direction from the ingress router to a egress router. Duplex traffic requires two label-switched paths; that is, one path to carry traffic in each direction. A label-switched path is created by the concatenation of one or more label-switched hops, allowing a packet to be forwarded from one label-switching router to another label-switching router across the MPLS domain. A label-switching router is a router that supports MPLS-based forwarding. When an IP packet enters a label-switched path, the ingress router examines the packet and assigns it a label based on its destination, placing the label in the packet’s header. The label transforms the packet from one that is forwarded based on its IP routing information to one that is forwarded based on information associated with the label. The packet is then forwarded to the next router in the label-switched path. The key point in this scheme is that the physical path of the LSP is not limited to what the IGP would choose as the shortest path to reach the destination IP address.
10
MPLS Header label experimental bits
TTL label used to match packet to LSP experimental bits carries packet queuing priority (CoS) stacking bit: can build “stacks” of labels qoal: nested tunnels! time to live copied from IP TTL An MPLS header consists of: 20-bit label—Used to identify the packet to a particular LSP Class of service value—Indicates queuing priority through the network. At each hop along the way, the class of service value determines which packets receive preferential treatment within the tunnel. Stacking bit—Indicates that this MPLS packet has more than one label associated with it. The MPLS implementation in JUNOS Software supports a stacking depth of one. Time to live value—Contains a limit on the number of router “hops” this MPLS packet may travel through the network. It is decremented at each hop, and if the TTL value drops below one, the packet is discarded.
11
MPLS Forwarding: Example
IP packet destined to /32 arrives to SF San Francisco has route for /16 next hop is LSP to New York /16 IP New York San Francisco 1965 1026 Santa Fe
12
MPLS Forwarding Example
San Francisco pre-pends MPLS header onto IP packet, sends packet to first transit router on path /16 New York San Francisco IP 1965 Santa Fe
13
MPLS Forwarding Example
because packet arrived to Santa Fe with MPLS header, Santa Fe forwards it using MPLS forwarding table /16 New York San Francisco IP 1026 Santa Fe
14
MPLS Forwarding Example
packet arrives from penultimate router with label 0 egress router sees label 0, strips MPLS header egress router performs standard IP forwarding IP /16 Labels 0 through 15 are reserved labels, as specified in draft-ietf-mpls-label-encaps-07.txt. A value of 0 represents the "IPv4 Explicit NULL Label". This label value is only legal when it is the sole label stack entry. It indicates that the label stack must be popped, and the forwarding of the packet must then be based on the IPv4 header. A value of 1 represents the "Router Alert Label". This label value is legal anywhere in the label stack except at the bottom. When a received packet contains this label value at the top of the label stack, it is delivered to a local software module for processing. The actual forwarding of the packet is determined by the label beneath it in the stack. However, if the packet is forwarded further, the Router Alert Label should be pushed back onto the label stack before forwarding. The use of this label is analogous to the use of the "Router Alert Option" in IP packets. Since this label cannot occur at the bottom of the stack, it is not associated with a particular network layer protocol. A value of 2 represents the "IPv6 Explicit NULL Label".This label value is only legal when it is the sole label stack entry. It indicates that the label stack must be popped, and the forwarding of the packet must then be based on the IPv6 header. A value of 3 represents the "Implicit NULL Label". This is a label that an LSR may assign and distribute, but which never actually appears in the encapsulation. When an LSR would otherwise replace the label at the top of the stack with a new label, but the new label is "Implicit NULL", the LSR will pop the stack instead of doing the replacement. Although this value may never appear in the encapsulation, it needs to be specified in the Label Distribution Protocol, so a value is reserved. Values 4-15 are reserved for future use. New York IP San Francisco Santa Fe
15
Regular IP Forwarding 1 47.1 IP 1 2 IP 3 2 IP 1 3 47.2 47.3 2 IP IP destination address unchanged in packet header!
16
MPLS Label Distribution
1 47.1 3 Request: 47.1 3 Request: 47.1 2 1 Mapping: 0.40 1 2 Mapping: 0.50 47.3 3 47.2 2
17
Label Switched Path (LSP)
IP 1 47.1 3 3 2 1 1 2 47.3 3 47.2 2 IP
18
A General Vanilla LSP #963 #14 #99 #311 #216 #14 #963 #612 #311 #462 #99 #5 - Vanilla LSP actually part of tree from every source to destination (unidirectional) - Vanilla LDP builds tree using existing IP forwarding tables to route control messages
19
Forwarding Equivalence Classes
FEC - group of IP packets forwarded over same path, with same forwarding treatment FEC may correspond to destination IP subnet source, destination IP subnet QoS class
20
Example
21
Routing in MPLS Hop-by-hop routing:
IP router learns about the topology of its domain by exchanging information with the other IP routers. It then calculates the next hop IP router for each destination using the shortest path algorithm. This next hop is stored in its FIB. MPLS uses the same next hop information in order to set up an LSP. Explicit routing: LSP that follows an explicit route through a network which might not necessarily correspond to the hop-by-hop path. An explicit route might be set up to satisfy a QoS criterion, such as minimizing the total end-to-end delay and maximizing throughput. Also, explicit routing can be used to provide load-balancing, by forcing some of the traffic to follow different paths through a network, so that the utilization of the network links is as even as possible. Finally, explicit routing can be used to set up MPLS-based tunnels and virtual private networks (VPN).
22
Label Distribution Protocols
LDP: A new signaling protocol. It is used to distribute label bindings for an LSP associated with a FEC. RSVP: Extending of an existing IP control protocol, so that it can carry label bindings.
23
LDP LDP is used to establish and maintain label bindings for an LSP associated with a FEC. Two LSRs that use LDP to exchange label bindings are known as LDP peers. LDP provides several LDP messages: Discovery: to announce and maintain the presence of an LSR in the network. Session: in order for two LDP peers to exchange information, they have to first establish an LDP session. The session messages are used to establish, maintain, and terminate LDP sessions between LDP peers. Advertisement: to create, change, and delete label bindings to FECs. Notification: to provide advisory information and to signal error information. LDP runs on top of TCP for reliability, with the exception of the LDP discovery messages that run over UDP.
24
LDP label distribution always done from downstream to upstream
downstream-unsolicited: new route => send new label downstream-on-demand: upstream LSR asks for label
25
LDP Label mapping message:
An LSR uses the message to advertise a mapping (i.e., a binding) of a label to a FEC to its LDP peers. A FEC element could be either a prefix or a full IP address of a destination host The FEC element identifies a set of packets that can be mapped to the corresponding LSP. The message contains the label associated with the FEC.
26
LDP Label request message:
LSR sends this message to an LPD peer to request a mapping to particular FEC under the following conditions: The LSR recognizes a new FEC via its forwarding routing table; the next hop is an LDP peer; and the LSR does not already have a mapping from the next hop for the given FEC. The next hop to the FEC changes, and the LSR does not already have a mapping from the next hop for the given FEC. The LSR receives a label request for a FEC from an upstream LDP peer; the FEC next hop is an LDP peer; and the LSR does not already have a mapping from the next hop. Label release message: Sent to an LDP peer LSR B to signal to LSR B that LSR A no longer needs a specific FEC-label mapping that was previously requested of and/or advertised by the peer.
27
Constraint-based Routing LDP
It is used to set up a unidirectional point-to-point explicitly routed LSP. An LSP is set up as a result of the routing information in an IP network using the shortest path algorithm. A CR-LSP is calculated at the source LSR based on criteria not limited to routing information, such as explicit routing and QoS-based routing. The route then signaled to the other nodes along the path which obey the source’s routing instructions. CR-LDP is based on LDP, and runs on top of TCP for reliability.
28
CR-LSP Setup Procedure
A CR-LSP is set up using downstream on demand allocation with ordered control. An upstream LSR obtains the label mapping by issuing a request. In the ordered control scheme, the allocation of labels proceeds backwards from the egress LSR towards the ingress LSR. Specifically, an LSR only binds a label to a FEC if it is the egress LSR for that FEC, or if it has already received a label binding for that FEC from its next hop LSR.
29
IntServ architecture The following two service classes were defined in IntServ: 1. Guaranteed service: firm bounds on the end-to-end queueing delay with no packet loss for all conforming packets. 2. Controlled-load service: provides the user with a QoS that closely approximates the QoS of the best effort service that the user would receive from an unloaded network. Specifically, a user might assume the following: a. A very high percentage of transmitted packets will be successfully delivered by the network to the receiver. The percentage of packets not successfully delivered must closely approximate the basic packet error rate of the transmission links. b. The end-to-end delay experienced by a very high percentage of the delivered packets will not greatly exceed the minimum end-to-end delay experienced by any successfully delivered packet.
30
IntServ architecture In intserv, the sender specifies how much traffic it will transmit to its receiver(s), and a receiver specifies how much traffic it can receive and the required QoS, expressed in terms of packet loss and end-to-end delay. This information permits each IP router along the path followed by the sender’s packets to perform the following functions: 1. Policing: This is used to verify that the traffic transmitted by the sender conforms to the sender’s Tspec, a set of traffic descriptors that characterize the traffic transmitted by the sender. 2. Admission control: decide whether an IP router has adequate resources to meet the requested QoS. 3. Classification: decide which IP packets should be considered as part of the sender’s traffic and be given the requested QoS. 4. Queueing and scheduling: in order for an IP router to provide different QoS to different receivers, it has to be able to queue packets into different queues and to transmit packets out of these queues according to a scheduler. The intserv architecture requires a signaling protocol for the reliable establishment and maintenance of resource reservations. RSVP is the most popular one.
31
RSVP-Traffic Engineering
is used in MPLS to set up LSPs using either the next hop information in the routing table or an explicit route. RSVP-TE uses downstream-on-demand label allocation to set up an LSP. RSVP-TE enables the reservation of resources along the LSP. For example, bandwidth can be allocated to an LSP using standard RSVP reservations.
32
Traffic Engineering configuring routes to traffic demands so as to
improve user performance use network resources more efficiently operates at coarse timescales not for failures, sudden traffic changes uses shortest path computations OSPF, MPLS
33
The traffic parameters
peak data rate (PDR) and peak burst size (PBS): PDR is the maximum rate at which traffic is sent to the CR-LDP. The peak rate in CR-LDP is specified in terms of token bucket P. The maximum token bucket size of P is set equal to the peak burst size (PBS), expressed in bytes, and the token bucket is replenished at the peak data rate (PDR), expressed in bytes/sec. committed data rate (CDR) and committed burst size (CBS): Same as above for token bucket. The output of this token bucket is referred to as the committed rate which is the amount of bandwidth the network should allocate for the CR-LSP. excess burst size (EBS): The max. token bucket can be EBS and replenishing rate is CDR.
34
Class of Service Packets that violate token bucket can either be dropped or marked.
35
Q: how to set link weights? Effect of link weights
unit link weights local change to congested link global optimization to balance link utilizations
36
Generalized MPLS GMPLS is an extension of MPLS, and was designed to apply MPLS label-switching techniques to time-division multiplexing (TDM) networks and wavelength routing networks.
37
Addition to Patricia Trees from previous lecture
38
PATRICIA Tree (a space-optimized tree, also called radix tree or crit bit tree )
Keys are represented by binary strings. Sometimes called “Path Compression”. Each node with only one child is merged with its child, (every internal node has at least two children). Edges can be labeled with sequences of characters as well as single characters. A common extension of radix trees uses two types of nodes, ‘color filled’ and ‘non filled’. It supports the following main operations, all of which are O(k), where k is the maximum length of all strings in the set: - Lookup: Determines if a string is in the set. To check if a given string is stored in the tree, the search starts from the top and follows the edges of the input string until no further progress can be made. If the search-string is consumed and the final node is a ‘filled’ node, the search has failed; if it is ‘non filled’, the search has succeeded. - Insert: Add a string to the tree. We search the tree until we can make no further progress. At this point we either add a new outgoing edge labeled with all remaining characters in the input string, or if there is already an outgoing edge sharing a prefix with the remaining input string, we split it into two edges (the first labeled with the common prefix) and proceed. This splitting step ensures that no node has more children than there are possible string characters. - Delete: Delete a string from the tree. First, we delete the corresponding leaf. Then, if its parent only has one child remaining, we delete the parent and merge the two incident edges.
39
(cont.) Example,(with the same numbers again)
Keys: 111*, 10*, 1010*, 10101 2 3 111* 10* 5 1010* 10101 1 Let’s lookup for ‘10111’ … We can't proceed to check the 5’th bit. So we stop after checking the 3’rd bit. Stopped at a ‘filled’ node, i.e. the search has failed ! So, let’s insert the string to the Patricia tree...
40
(Example cont.) Inserting Operation
We can see that there is an outgoing edge, sharing a prefix with the remaining input string, (It is the edge with label ‘1’ connecting the ‘filled’ nodes of bitpos’s 3 & 5). So, split it into two edges… Now, we must consider the 4’th bit ! The tree after inserting ‘10111’ will be as follows: 2 3 111* 10* 4 10101 10111 1 5 1010*
41
(cont.),Tree Properties
N-1 Internal nodes, N External nodes. Search performance insensitive to insertion order, but very sensitive to distribution of digits. Assuming random distribution, approx # of digits\bits inspected is about for M-ary tree with N nodes. Simple P-Tree for IP Routing (From BSD, circa 1990). Observations: This simple scheme places common prefixes together in the same leaf, (using a linked list). Parent pointers in nodes are used to back up in the tree in case of mis-match.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.