for this network. Because this label is sent, the pop action (removing the top label in the MPLS label stack instead of swapping the top label with the next-hop label) for Network X is used on Router C, using a Penultimate Hop Popping (PHP) function. The packet sent to Router D will not be labeled. Receiving Label Advertisement
Router B can now map the entry for Network X in the router’s FIB and the local label 25 in the router’s LFIB to the next-hop label 47 that Router B receives from the downstream neighbor, Router C. Figure illustrates how LSRs update their tables. Router E has allocated label 26 for Network X and has received a label from Router B (label 25) and a label from Router C (label 47) for Network X.
Content 4.2 Assigning MPLS Labels to Packets 4.2.3 Populating the LFIB Table An IGP populates the routing tables in all routers in an MPLS domain. The LDP propagates labels for these networks. Each router determines the router’s own shortest path using an IGP. The LFIB table is populated by indicating the action that should occur when forwarding the packet based on labels. This action might be to swap a label, remove the label (un-tag), add an outgoing label, or to “pop” the label. The LDP adds labels into the FIB and LFIB tables. Only those labels that come from the next-hop router are inserted into the outgoing field in the LFIB table. In Figure , Router B first assigns label 25 locally to network X and then receives label 47 from the upstream router. Its LFIB table can be completed for network X by inserting 47 as the outgoing label. Note
In Figure , label distribution occurs from right to left, and packet forwarding occurs from left to right.
Content 4.2 Assigning MPLS Labels to Packets 4.2.4 Packet Propagation Across an MPLS Network How a packet is forwarded depends on whether the packet is an IP packet or labeled packet. An incoming IP packet is forwarded by using the FIB table and can be sent out as an IP packet or as a labeled IP packet. An incoming labeled packet is forwarded by using the LFIB table and sent out as a labeled IP packet. If a router does not receive a label from the next-hop router, the label is removed and an unlabeled IP packet is sent. Figure illustrates how IP packets are propagated across an MPLS domain. The steps are as follows: Step 1 An IP packet destined for Network X arrives at Router A. Step 2 Router A labels a packet destined for Network X by using the next-hop label 25 (CEF switching by using the FIB table). Step 3 Router A sends the packet toward Network X with the MPLS label 25. Step 4 Router B swaps label 25 with label 47 using the LFIB. Step 5 Router B forwards the packet to Router C (label switching by using the LFIB table). Step 6 Router C removes (pops) the label. Step 7 Router C forwards the unlabeled packet to Router D (label removed by using the LFIB table). When a router receives an IP packet, the lookup done is an IP lookup. In Cisco IOS, this means that the packet is looked up in the CEF table. When a router receives a labeled packet, the lookup is done in the LFIB table of the router. The router knows that it receives a labeled packet or an IP packet by looking at the protocol field in the Layer 2 header. If a packet is forwarded by either Cisco Express Forwarding (CEF) (IP lookup) or by LFIB (label lookup), the packet can leave the router either labeled or unlabeled.
Content 4.2 Assigning MPLS Labels to Packets 4.2.5 Penultimate Hop Popping Using Penultimate Hop Popping (PHP), an LSR removes the outermost label of an MPLS-tagged packet before passing the packet to an adjacent Edge LSR. The process reduces the load on the Edge LSR. Implementing PHP in networks that offer certain quality of service (QoS) features takes careful consideration, and consequently only certain routers in an MPLS-enabled network perform the task. For example, egress routers at the edge of the MPLS network would not use PHP. Without PHP, the Edge LSR would have to perform at least two label lookups: PHP reduces the CPU load on the Edge LSR by distributing work among the Edge LSR’s neighbor routers. PHP improves MPLS performance by eliminating routing lookups on egress LSRs and optimizes MPLS performance by reducing the number of table lookups on the egress router. When the downstream router realizes that the router is the final node in the label switched path (LSP), the router can distribute the label value of 3 to the upstream router at the time the path is established. The upstream router makes the next-hop determination for the packet based on the inbound label that the router receives. The router then forwards the packet without a label, allowing the downstream node to perform a single lookup. Note
A pop label is encoded with a value of 3 for LDP. This label instructs upstream routers to remove the label instead of swapping the label with label 3. The display in the LIB table of the router will be imp-null rather than the value of 3. Figure shows how labels are propagated and used in a typical frame mode MPLS network without PHP enabled. The check marks show which tables are used on individual routers. The egress router in this example must perform a lookup in the LFIB table to determine whether the label must be removed and if a further lookup in the FIB table is required. PHP removes the requirement for a double lookup to be performed on egress LSRs. The term pop means to remove the top label in the MPLS label stack instead of swapping the top label with the next-hop label. When popping, the last router before the egress router removes the top label. Figure shows how a predefined label pop, which corresponds to the pop action in the LFIB, is propagated on the first hop or the last hop, depending on the perspective. The following is a step-by-step explanation: Step 1 IP packet enters the MPLS cloud at Router A, the Ingress LSR; Step 2 A FIB lookup is performed and the packet is labeled with 17, the next hop; Step 3 The pack travels to Router B an LFIB lookup is performed and the label is switched to Label: 18, which is the next hop to Router C; Step 4 Router C does an LFIB lookup and removes (that is, pops) the label; Step 5 Router C sends the packet to router D, the Egress LSR. PHP slightly optimizes MPLS performance by eliminating one LFIB lookup at the egress edge LSR.
Content 4.3 Implementing Frame Mode MPLS 4.3.1 The Procedure to Configure MPLS There are three steps to configuring an MPLS: Step 1 Configure CEF: CEF must be running as a prerequisite to running MPLS on a Cisco router. Step 2 Configure MPLS on a frame mode interface: All MPLS backbone interfaces should be enabled for MPLS. Step 3 (Optional) Configure the maximum transmission unit (MTU) size in label switching: To prevent labeled packets from exceeding the maximum size, you may need to increase the MTU on the MPLS interface.
Content 4.3 Implementing Frame Mode MPLS 4.3.2 Step 1: Configure CEF To enable MPLS, you must first enable CEF switching. Figure lists two considerations when enabling CEF. CEF switching is commonly enabled globally on a router. However, it can also be enabled on individual interfaces. Enabling CEF or distributed CEF (dCEF) operations globally on a router also enables CEF on all interfaces that support CEF by default. If you want to turn off CEF on a particular interface, you can do so. In situations where you want to have control over the range of labels that LDP assigns, you may need to establish the range for the label pool. To enable CEF, use the ip cef command in global