MPLS stands for multiprotocol label switching. It is termed as a layer 2.5 technology widely used across the service provider backbones to label switch different customer traffic. The traffic inside the ISP backbone is then label switched rather than being IP switched. In MPLS a Label of length 32 bits is inserted in between the IP header and the Ethernet header.
The various filed of an MPLS label and there explanation are as below:
Label Value: As the name suggests it is where you will find the actual value of the label.
0-15 are the reserved labels and are never made available for allocation. Label 0 is the explicit NULL label, whereas label 3 is the implicit NULL label. Label 1 is the router alert label, whereas label 14 is the OAM alert label.
EXP: These are the three experimental bits. These are used for QoS, normally the IP precedence value of the IP packet will be copied here or the first three DSCP bits will be copied here.
S: This is the “bottom of stack” bit. In MPLS it’s possible to add more than one label. Suppose there are three labels stacked together then the first two labels will have this field as ‘0’ while the bottom label will have this bit set with a value of ‘1’.
TTL: Just like in the IP header, this is the time to live field. You can use this for traces in the MPLS network. Each hop decrements the TTL by one.
Sample of the packet capture showing the MPLS label embedded between Ethernet header and IP header.