MPLS Terminology
This section provides an overview of the common MPLS-related terminology used for the rest of this book:
- Forwarding Equivalence Class (FEC) – As noted in RFC 3031(MPLS architecture), this group of packets are forwarded in the same manner (over the same path with the same forwarding treatment).
- MPLS Label Switch Router (LSR) – Performs the function of label switching; the LSR receives a labeled packet and swaps the label with an outgoing label and forwards the new labeled packet from the appropriate interface. The LSR, depending on its location in the MPLS domain, can either perform label disposition (removal, also called pop), label imposition (addition, also called push) or label swapping (replacing the top label in a label stack with a new outgoing label value). The LSR, depending on its location in the MPLS domain, might also perform label stack imposition or disposition. The concept of a label stack is explained later in this section. During label swapping, the LSR replaces only the top label in the label stack; the other labels in the label stack are left untouched during label swapping and forwarding operation at the LSR.
- MPLS Edge-Label Switch Router (E-LSR) – An LSR at the border of an MPLS domain. The ingress Edge LSR performs the functions of label imposition (push) and forwarding of a packet to destination through the MPLS-enabled domain. The egress Edge LSR performs the functions of label disposition or removal (pop) and forwarding an IP packet to the destination. Note that the imposition and disposition processes on an Edge LSR might involve label stacks versus only labels.
Figure 1-4 depicts the network in Figure 1-2 with all routers identified as LSRs or Edge LSRs based on their location and operation in the MPLS domain.
Figure 1-4. LSR and Edge LSR
- MPLS Label Switched Path (LSP) – The path from source to destination for a data packet through an MPLS-enabled network. LSPs are unidirectional in nature. The LSP is usually derived from IGP routing information but can diverge from the IGP's preferred path to the destination (as in MPLS traffic engineering, which is discussed in Chapter 9, "MPLS Traffic Engineering"). In Figure 1-4, the LSP for network 172.16.10.0/24 from R4 is R4-R3-R2-R1.
- Upstream and downstream – The concept of downstream and upstream are pivotal in understanding the operation of label distribution (control plane) and data forwarding in an MPLS domain. Both downstream and upstream are defined with reference to the destination network: prefix or FEC. Data intended for a particular destination network always flows downstream. Updates (routing protocol or label distribution, LDP/TDP) pertaining to a specific prefix are always propagated upstream. This is depicted in Figure 1-5 where downstream with reference to the destination prefix 172.16.20.0/24 is in the path R1-R2-R3, and downstream with reference to 172.16.10.0/24 is the path R3-R2-R1. Therefore, in Figure 1-5, R2 is downstream to R1 for destination 172.16.20.0/24, and R1 is downstream to R2 for destination 172.16.10.0/24.
Figure 1-5. Upstream and Downstream
- MPLS labels and label stacks – An MPLS label is a 20-bit number that is assigned to a destination prefix on a router that defines the properties of the prefix as well as forwarding mechanisms that will be performed for a packet destined for the prefix.
The format of an MPLS label is shown in Figure 1-6.
Figure 1-6. MPLS Label
An MPLS label consists of the following parts:
- 20-bit label value
- 3-bit experimental field
- 1-bit bottom-of-stack indicator
- 8-bit Time-to-Live field
The 20-bit label value is a number assigned by the router that identifies the prefix in question. Labels can be assigned either per interface or per chassis. The 3-bit experimental field defines the QoS assigned to the FEC in question that has been assigned a label. For example, the 3 experimental bits can map to the 7 IP precedence values to map the IP QoS assigned to packets as they traverse an MPLS domain.
A label stack is an ordered set of labels where each label has a specific function. If the router (Edge LSR) imposes more than one label on a single IP packet, it leads to what is called a label stack, where multiple labels are imposed on a single IP packet. Therefore, the bottom-of-stack indicator identifies if the label that has been encountered is the bottom label of the label stack.
The TTL field performs the same function as an IP TTL, where the packet is discarded when the TTL of the packet is 0, which prevents looping of unwanted packets in the network. Whenever a labeled packet traverses an LSR, the label TTL value is decremented by 1.
The label is inserted between the Frame Header and the Layer 3 Header in the packet. Figure 1-7 depicts the label imposition between the Layer 2 and Layer 3 headers in an IP packet.
Figure 1-7. MPLS Label Imposition
If the value of the S bit (bottom-of-stack indicator) in the label is 0, the router understands that a label stack implementation is in use. As previously mentioned, an LSR swaps only the top label in a label stack. An egress Edge LSR, however, continues label disposition in the label stack until it finds that the value of the S bit is set to 1, which denotes a bottom of the label stack. After the router encounters the bottom of the stack, it performs a route lookup depending on the information in the IP Layer 3 Header and appropriately forwards the packet toward the destination. In the case of an ingress Edge LSR, the Edge LSR might impose (push) more than one label to implement a label stack where each label in the label stack has a specific function.
Label stacks are implemented when offering MPLS-based services such as MPLS VPN or MPLS traffic engineering. In MPLS VPN (see Chapter 3, "Basic MPLS VPN Overview and Configuration"), the second label in the label stack identifies the VPN. In traffic engineering (see Chapter 9), the top label identifies the endpoint of the TE tunnel, and the second label identifies the destination. In Layer 2, VPN implementations over MPLS, such as AToM (see Chapter 11, "Any Transport over MPLS [AToM]") and VPLS (see Chapter 12, "Virtual Private LAN Service [VPLS]), the top label identifies the Tunnel Header or endpoint, and the second label identifies the VC. All generic iterations of the label stack implementation are shown in Figure 1-8.
Figure 1-8. MPLS Label Stack