show mpls forwarding-table
Displays the MPLS forwarding table, showing label bindings and next-hop information for label-switched paths.
Overview
The 'show mpls forwarding-table' command is essential for verifying and troubleshooting MPLS label forwarding on Cisco IOS-XR routers. It displays the Label Forwarding Information Base (LFIB), which contains mappings between incoming labels (local labels) and outgoing labels, along with next-hop and interface information. This command is used after configuring MPLS protocols like LDP or RSVP-TE to ensure that label bindings are correctly installed. In Cisco IOS-XR, the output is similar to IOS but with additional fields like 'Bytes Switched' for traffic accounting. The command is critical in troubleshooting MPLS forwarding issues, such as label mismatch, missing routes, or incorrect next hops. It fits into workflows where you first verify MPLS neighbor adjacencies, then check label bindings, and finally confirm forwarding entries. Understanding the output helps network engineers quickly isolate problems in MPLS networks.
show mpls forwarding-table [vrf vrf-name] [labels label-value] [prefix prefix/length] [interface type number] [detail] [private]When to Use This Command
- Verify MPLS label forwarding entries for a specific prefix after configuring LDP or RSVP-TE.
- Troubleshoot MPLS label switching failures by checking label bindings and outgoing interfaces.
- Monitor the MPLS forwarding table for label consistency across multiple routers in an MPLS network.
- Validate label imposition and disposition operations at ingress and egress LSRs.
Parameters
| Parameter | Syntax | Description |
|---|---|---|
| vrf | vrf vrf-name | Specifies the VRF instance to display MPLS forwarding entries for. Used in MPLS VPN environments to view per-VRF label information. |
| labels | labels label-value | Filters the output to show only entries with a specific local label. Useful for focusing on a particular LSP. |
| prefix | prefix prefix/length | Displays forwarding entries for a specific IP prefix. Helps verify label bindings for a particular destination network. |
| interface | interface type number | Filters entries by outgoing interface. Useful for checking label forwarding on a specific link. |
| detail | detail | Provides additional information such as MAC encapsulation, MPLS label stack details, and MTU. Used for in-depth troubleshooting. |
| private | private | Displays private (internal) MPLS labels used for features like MPLS-TE or inter-AS. Typically used by advanced engineers. |
Command Examples
Basic MPLS forwarding table display
show mpls forwarding-tableLocal Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ---------- ------------------ ------------ --------------- ------------ 16001 16003 10.1.1.0/24 GigabitEthernet0/0/0/0 192.168.1.2 1500 16002 Pop Label 10.2.2.0/24 GigabitEthernet0/0/0/1 192.168.2.2 0 16003 Untagged 10.3.3.0/24 GigabitEthernet0/0/0/2 192.168.3.2 500
Local Label: locally assigned label; Outgoing Label: label to push (Pop Label means PHP, Untagged means no label); Prefix: destination network; Outgoing Interface: egress interface; Next Hop: next-hop IP; Bytes Switched: traffic count.
Detailed MPLS forwarding entry for a specific label
show mpls forwarding-table labels 16001 detailLocal Outgoing Prefix Outgoing Next Hop Bytes
Label Label or ID Interface Switched
------ ---------- ------------------ ------------ --------------- ------------
16001 16003 10.1.1.0/24 GigabitEthernet0/0/0/0 192.168.1.2 1500
MAC/Encaps: 14 bytes, MPLS Label: 16003 (exp 0) [TTL 255]
Outgoing Interface: GigabitEthernet0/0/0/0
MTU: 1500Detail shows encapsulation details: MAC header size, MPLS label value with EXP and TTL, outgoing interface, and MTU.
Understanding the Output
The output displays the MPLS forwarding table with columns: Local Label (assigned by this router), Outgoing Label (label to push onto the packet; 'Pop Label' indicates PHP, 'Untagged' means no label), Prefix or ID (destination network or tunnel ID), Outgoing Interface, Next Hop, and Bytes Switched (traffic count). A healthy table shows consistent label bindings with expected outgoing labels and next hops. Problematic values include 'Untagged' where a label is expected (indicating LDP/RSVP failure) or missing entries for known prefixes. The 'Bytes Switched' column helps identify traffic flow; zero bytes may indicate no traffic or a forwarding issue.
Configuration Scenarios
Verifying MPLS LDP forwarding
After configuring MPLS LDP on a core router, verify that label bindings are installed for IGP routes.
Topology
R1 --- R2 --- R3
10.1.1.0/24 via R3Steps
- 1.Configure MPLS LDP on all interfaces.
- 2.Verify LDP neighbors with 'show mpls ldp neighbor'.
- 3.Check forwarding table with 'show mpls forwarding-table prefix 10.1.1.0/24'.
! On R2 mpls ldp interface GigabitEthernet0/0/0/0 interface GigabitEthernet0/0/0/1 !
Verify: Run 'show mpls forwarding-table prefix 10.1.1.0/24' and confirm an outgoing label is present.
Watch out: Ensure IGP (OSPF/IS-IS) is advertising the prefix; otherwise, LDP won't install a label.
Troubleshooting with This Command
When troubleshooting MPLS forwarding issues on IOS-XR, start with 'show mpls forwarding-table' to see if labels are present. If a prefix is missing, check LDP or RSVP-TE bindings with 'show mpls ldp bindings' or 'show mpls traffic-eng tunnels'. If the outgoing label shows 'Untagged' unexpectedly, verify that the next-hop router is MPLS-capable and that LDP sessions are up. Use the 'detail' option to inspect encapsulation details; for example, a missing MAC header may indicate an ARP issue. Compare the 'Bytes Switched' field over time to detect traffic drops. If labels are present but traffic fails, check the outgoing interface status and next-hop reachability. In VRF contexts, ensure the correct VRF is specified. For PHP issues, confirm that the egress router is advertising an implicit null label. The command is also useful for verifying label consistency after configuration changes or during network migrations.
CCNA Exam Tips
Remember that 'Pop Label' indicates Penultimate Hop Popping (PHP), which is normal for egress LSRs.
Know that 'Untagged' means the router is not imposing a label, often seen for directly connected or BGP routes without MPLS.
Practice interpreting the 'Bytes Switched' field to identify active LSPs.
Common Mistakes
Confusing 'Pop Label' with an error; it is correct for PHP operation.
Assuming 'Untagged' always indicates a problem; it is valid for certain scenarios like BGP-free core edge.
Neglecting to check the 'Outgoing Interface' and 'Next Hop' for consistency with routing table.
Platform Notes
On Cisco IOS-XR, the 'show mpls forwarding-table' command is similar to IOS but with some differences. IOS-XR uses a modular architecture, so the output may include additional fields like 'Bytes Switched' for per-prefix accounting. The 'detail' option provides more granular information about label stack operations. In IOS, the equivalent command is 'show mpls forwarding-table' with similar syntax, but IOS-XR supports VRF filtering and private labels. For older IOS versions, the command might be 'show mpls forwarding-table' without the 'vrf' keyword. On Juniper Junos, the equivalent is 'show route table mpls.0' or 'show mpls lsp'. On Nokia (Alcatel-Lucent) SR OS, use 'show router mpls forwarding-table'. IOS-XR also supports 'show mpls forwarding-table labels' for specific label queries. Version differences: In IOS-XR 6.x and later, the output format is consistent, but earlier versions may have slight variations in column headers.
Practice for the CCNA 200-301
Test your knowledge with hundreds of CCNA practice questions covering all exam domains.
Practice CCNA Questions