mpls whatis
TRANSCRIPT
-
8/8/2019 MPLS Whatis
1/4
MPLS Whatis:
MPLS improves the speed of deciding (finding) the next hop by classifying the various packetsarriving at a node (ingress) and then using that classification information for all subsequent
packets. This classification is achieved beforehand (using label bindings). The iteration of
calculating the next hop for every packet (even though the packets have same forwardinginformation) in IP networks is avoided in MPLS.
An example:
Scenario: H1 is transmitting to H2
IP Routing:
1. H1 creates a packet and sends it M1 (its default gateway).2. M1 receives the packet and from IP header gets the destination address. The routing table
(created/updated by routing protocols OSPF, RIP etc) gives the next hop as M2.3. for every intermediate node a similar procedure (as in step 2) is followed.
For every service extensions, such as traffic engineering, differentiated service or VPNs a
different architecture is used and glued to IP.
MPLS Routing:
-
8/8/2019 MPLS Whatis
2/4
LIB (Label Information Base)
M1 LIB
Inlabel Outlabel Outinterface FEC
X 20 2 H2
M2 LIB
Inlabel Outlabel Outinterface FEC
20 31 2 H2
M3 LIB
Inlabel Outlabel Outinterface FEC
31 43 2 H2
M4 LIB
Inlabel Outlabel Outinterface FEC
43 X 3 H2
1. H1 creates a packet and sends it to M1 (its default gateway).2. M1 is an ingress LSR and decides what label to affix the packet. Here it is label 20. After
attaching label the packet is forwarded on corresponding outinterface 2.3. M2 gets a packet with label 20, swaps it by 31 & forwards packet on its interface 2.4. M3 gets packet with label 31, swaps it by 43 & forwards packet on its interface 2.
-
8/8/2019 MPLS Whatis
3/4
5. M4 gets packet with label 43 but does not have corresponding outlabel. This identifiesM4 as an egress LSR for corresponding FEC and hence strips the label information and
forwards the IP packet on interface 3.
How MPLS improves routing?
In the preceding eg, routers M2 & M3 have got to do is label swapping i.e. a simple table lookupsuch as packet.outlabel = LIB[inlabel]. More interestingly this is even true for service
extensions such as traffic engineering, differentiated service and VPNs.
How LIB is created?
Assume that LIB table in every LSR is empty.
M1 receives a nonlabeled packet. It extracts the destination address H2 and sends a label requestpacket to M2 with FEC H2.
1. M2 receives a label request packet and sees whether there is any label binding for FECH2. There is none and hence sends a label request to M3 with FEC H2. (This decision of
sending packet to M3 is done using L3 protocol).2. M3 receives a label request packet and sees whether there is any label binding for FEC
H2. There is none and hence sends a label request to M4 with FEC H2.3. M4 receives a label request and being an egress LSR attaches a label 43 to the FEC H2.
The label binding is a local matter and most often the software picks it up from the poolof numbers. M4 sends label binding information with label-43 & FEC H2 to M3.Now
LIB table for M4 is:
Inlabel Outlabel Outinterface FEC
43 X 3 H2
-
8/8/2019 MPLS Whatis
4/4
4. M3 receives label binding packet with outlabel 43, it assigns ainlabel 31 to FEC H2. M3sends label binding information with label 31 & FEC H2 to M2. Now LIB table for M3
is:
Inlabel Outlabel Outinterface FEC
31 43 2 H2
5. M2 receives label binding packet with outlabel 31, it assigns ainlabel 20 to FEC H2. M2sends a label binding information with label 20 and FEC H2 to M1. Now LIB table for
M2 is:
Inlabel Outlabel Outinterface FEC
20 31 2 H2
6. M1 receives label binding packet with outlabel 20. M1 knows it had initiated the label
request sequence and hence it is an ingress for FEC H2. Now LIB table for M1 is:
Inlabel Outlabel Outinterface FEC
X 20 2 H2