In frame-mode MPLS, routers running MPLS exchange pure IP packets (penultimate hop popping) as well as labeled IP packets with one another in an MPLS domain. In an MPLS domain, label switching is done by parsing the frame header and then performing label imposition (push), label disposition (pop), or label swapping depending on the LSR's location in the network. Data link layer connectivity in a frame-mode MPLS domain is established using serial HDLC/PPP, Ethernet, or ATM. ATM brings us to another aspect of Layer 2 connectivity where cells are used to transport IP packets. Note that although there might be ATM links in the MPLS domain, it is possible to run regular IP point-to-point links (routed PVCs). In such cases, it is still considered frame-mode MPLS and not cell-mode MPLS, although the Layer 2 protocol is ATM.
Frame-Mode MPLS Operation
Figure 1-14 shows how label allocation and distribution take place in frame-mode MPLS. The figure depicts two Edge LSRs, R1 and R4, connected via two LSRs, R2 and R3. After IGP convergence and LDP neighbor establishment, the LSRs assign a local label for 172.16.10.0/24 and propagate this label upstream, as depicted in Figure 1-14. Therefore, the control and data structures, namely FIB, LFIB, and LIB, are populated with the appropriate values, as illustrated in Figure 1-14.
Figure 1-14. Frame-Mode MPLS Label Assignment and Distribution
As portrayed in Figure 1-14, Edge LSR R1 assigns an implicit-null local label and propagates the same upstream to LSR R2. LSRs R2 and R3 assign local labels L2 and L3, respectively, for destination network 172.16.10.0 and propagate them upstream. The label allocation can either be unsolicited downstream or downstream on demand label allocation; the only difference being that in downstream on demand label allocation, the upstream LSR requests a label for the destination network.
After label allocation and distribution, the FIB, LIB, and LFIB structures are as depicted in Figure 1-14 with reference to destination prefix 172.16.10.0.
Forwarding a data packet destined for 172.16.10.0 via the MPLS domain is depicted in Figure 1-15, where the Edge LSR R4 imposes a label L3 (next-hop label as learned from downstream LSR) and forwards the labeled packet to the downstream LSR R3. R3 performs a label swap of ingress label L3 for egress label L2. On R2, the ingress label of L2 maps to an implicit-null label. Therefore, LSR R2 removes the top label (L2) and forwards the resultant IP packet to Edge LSR R1, as shown in Figure 1-15.
Figure 1-15. Frame-Mode MPLS Forwarding
Routers receiving a frame can identify the type of payload by the use of the protocol/type field in the frame header. For example, in the case of Ethernet, the 13th and 14th octets of an Ethernet or IEEE 802.3 packet (after the preamble) consist of the "Ethernet Type" or "IEEE 802.3 Length" field. A value of 0x0800 in these octets identifies an IP packet as the Layer 2 frame payload. A value of 0x8847 identifies an MPLS unicast payload in the Layer 2 frame. Thus, the router identifies the frame received on an interface as either containing an IP packet or a labeled IP packet.
Loop Prevention in Frame-Mode MPLS
The label distribution protocols, namely LDP and TDP, predominantly rely on loop prevention mechanisms provided by the IGP implemented in the MPLS domain. However, to avoid infinite looping of packets in the MPLS domain, the TTL field in the label header is used. The functionality of the TTL field in the label header is the same as the TTL field in the IP Header. The TTL value is an integer from 0255 that is decremented by one every time the packet transits a router (IP TTL) or an LSR (Label TTL).
When the TTL value of an IP packet becomes zero, the router discards the IP packet, and an ICMP message stating that the "TTL expired in transit" is sent to the source IP address of the IP packet. This mechanism prevents an IP packet from being routed continuously in case of a routing loop. The same procedure is employed with the label TTL value.
When an IP packet enters a label switched domain, Cisco routers functioning as Edge LSRs copy the IP TTL value from the IP packet header onto the TTL value of the label. When the labeled packet encounters an LSR, the label TTL is decremented by 1. This process continues until the labeled packet is converted back into an IP packet at the egress Edge LSR in the MPLS domain, where the label TTL is copied back onto the IP TTL in the IP header. This process is called IP to label TTL propagation.
TTL propagation can be disabled in the MPLS domain. When TTL propagation is disabled, the IP TTL is not copied into the label TTL field, but instead, a value of 255 is written into the label TTL field. IP to label TTL propagation is enabled by default on Cisco routers. Configuration of the no mpls ip propagate-ttl [forwarded | local] command on an Edge LSR (privilege mode) can be used to disable IP to label TTL value propagation for either forwarded traffic or locally generated traffic as depicted by the forwarded and local options of the command. The no version of the command places a TTL value of 255 in the label TTL value.
When propagation is enabled, the command allows a traceroute to show all the hops in the path, including LSRs in the MPLS domain. For example, when traffic is generated by a network in the IP domain not locally connected (like Ethernet LAN or local loopback) to an Edge LSR, the forwarded option disables the IP to MPLS label TTL value propagation. Therefore, when a customer performs a traceroute via the provider network, the MPLS domain is transparent to the customer. This is the most common application of this command.
However, if the traffic was to be generated locally by a loopback interface on the Edge LSR, the IP TTL to label TTL value propagation will occur. Therefore, the provider can still perform any troubleshooting if required using traceroute commands. If no options are configured, the TTL propagation is disabled for both locally generated traffic and forwarded traffic. This hides the structure of the MPLS network from a traceroute command.
Figure 1-16 provides an example of the no MPLS IP propagate-ttl forwarded command when configured on Edge LSRs in a network. The following steps occur on the routers in Figure 1-16 when a traceroute is performed from Router A to Router B via the MPLS domain:
Figure 1-16. IP to Label TTL Propagation
As depicted in Figure 1-16, the traceroute from R1 (Edge LSR) to R4's loopback interface shows all hops in the provider network because IP TTL to label TTL mapping is not disabled for local networks.