Overview
Standard MPLS and OSPF send traffic on the shortest path by default โ which means all traffic between two nodes uses the same link even if an alternate uncongested path exists. MPLS-TE lets you explicitly route LSPs (Label Switched Paths) based on bandwidth, link color, affinity, or administrative constraints. Combined with Fast Reroute, TE tunnels recover from failures in under 50ms โ faster than any routing protocol can converge.
MPLS-TE Components
Topology
Part 1 โ Prerequisites: Enable MPLS-TE in OSPF
! Enable MPLS globallympls traffic-eng tunnelsmpls label protocol ldp! Enable TE extensions in OSPF โ floods link attributes into TEDrouter ospf 1 mpls traffic-eng router-id Loopback0 mpls traffic-eng area 0! Enable TE on each physical interface that will carry TE tunnelsinterface GigabitEthernet0/0 mpls traffic-eng tunnels ip rsvp bandwidth 1000000 ! Reserve max 1Gbps of RSVP bandwidth on this 1G interface ! Typical: reserve 75-80% of link capacity for TEPart 2 โ Configure a TE Tunnel
! Tunnel interface on the head-end (PE-1)interface Tunnel1 ip unnumbered Loopback0 tunnel mode mpls traffic-eng tunnel destination 10.0.0.5 ! Destination = tail-end router ID (PE-2 loopback) tunnel mpls traffic-eng bandwidth 500000 ! Reserve 500Mbps on this LSP tunnel mpls traffic-eng path-option 1 dynamic ! Dynamic = CSPF computes best path satisfying constraints ! Alternative: path-option 1 explicit name EXPLICIT-PATH-TO-PE2 ! (explicit path manually defines each hop) tunnel mpls traffic-eng priority 5 5 ! Setup priority / holding priority โ lower = higher priority ! Priority 0 = highest (can preempt others), 7 = lowest tunnel mpls traffic-eng record-route ! Record the actual path taken โ visible in "show mpls traffic-eng tunnels"Explicit Path (when you need to force a specific route)
ip explicit-path name PATH-PE1-TO-PE2 enable next-address 10.0.0.2 ! P-1 next-address 10.0.0.4 ! P-3 next-address 10.0.0.5 ! PE-2interface Tunnel1 tunnel mpls traffic-eng path-option 1 explicit name PATH-PE1-TO-PE2 tunnel mpls traffic-eng path-option 2 dynamic ! Fallback to dynamic if explicit path becomes unavailablePart 3 โ Steer Traffic into the Tunnel
Option A โ Autoroute (recommended)
interface Tunnel1 tunnel mpls traffic-eng autoroute announce ! Makes the tunnel visible to OSPF/BGP as a "shortcut" ! Traffic destined to PE-2 or beyond PE-2 uses Tunnel1 automatically tunnel mpls traffic-eng autoroute metric relative -10 ! Makes OSPF prefer this tunnel by lowering its metric by 10 ! Useful for load balancing across parallel tunnelsOption B โ Static Route into Tunnel
ip route 10.200.0.0 255.255.0.0 Tunnel1! All traffic to 10.200.0.0/16 goes into Tunnel1 (explicit steering)Part 4 โ Fast Reroute (FRR)
FRR pre-installs a bypass LSP from each node to the next-next hop. When a link or node fails, the PLR (Point of Local Repair) immediately redirects traffic onto the bypass without any RSVP re-signaling.
! On the tunnel (head-end) โ request FRR protectioninterface Tunnel1 tunnel mpls traffic-eng fast-reroute tunnel mpls traffic-eng fast-reroute protect bandwidth ! "protect bandwidth" โ bypass must have enough BW for this tunnel! On transit nodes โ enable FRR facility backupmpls traffic-eng fast-reroute promote tunnels! Tells this node to build bypass tunnels to protect its downstream linksinterface GigabitEthernet0/0 mpls traffic-eng backup-path Tunnel100 ! Explicitly assign bypass tunnel (optional โ auto-created if not specified)! Verify FRR statePE-1# show mpls traffic-eng fast-reroute database! Shows protected LSPs and their bypass tunnel assignments! "State: Ready" means bypass is in place and will activate on failureReal-World Scenario
The situation: A service provider has two parallel 10G links between their two core P routers. During business hours, video streaming fills 70% of the first link. VoIP traffic also uses the same link and experiences jitter. The second link is only 15% utilized.
Fix โ Use MPLS-TE to steer VoIP onto the underloaded link:
! Mark VoIP interfaces with TE affinity color "low-latency" (bit 0 = 0x1)interface GigabitEthernet0/1 ! The underloaded parallel link mpls traffic-eng attribute-flags 0x1 ! This link is "colored" as low-latency! VoIP TE tunnel โ only use links with color 0x1interface Tunnel10 description VOIP-TE-LSP ip unnumbered Loopback0 tunnel destination 10.0.0.5 tunnel mode mpls traffic-eng tunnel mpls traffic-eng bandwidth 500000 tunnel mpls traffic-eng affinity 0x1 mask 0x1 ! CSPF only picks links with bit 0 set โ forces VoIP onto the low-latency link tunnel mpls traffic-eng path-option 1 dynamic tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng fast-reroute! Result: VoIP goes via Gi0/1 (underloaded), video stays on Gi0/0! Show the path CSPF chose:PE-1# show mpls traffic-eng tunnels tunnel 10 detail | include pathTroubleshooting
TE tunnel in Down/Down state โ RSVP path not established
Symptom: show mpls traffic-eng tunnels tunnel 1 shows Admin: up Oper: down State: no-path.
Cause: CSPF can't find a path satisfying the constraints โ not enough bandwidth reserved, affinity mismatch, or OSPF TE extensions not flooded.
Fix:
! Check TED for available bandwidthPE-1# show mpls traffic-eng topology path destination 10.0.0.5! Shows available bandwidth on each link in the TE domain! Check RSVP bandwidth config on all transit interfacesP-1# show ip rsvp interface GigabitEthernet0/0! "BW" column shows allocated vs available! Relax bandwidth constraint temporarily for testinginterface Tunnel1 tunnel mpls traffic-eng bandwidth 100 ! If tunnel comes up with 100kbps, the issue is bandwidth exhaustionFRR not activating on link failure
Symptom: Link fails, FRR bypass was shown as Ready, but convergence still takes 2-3 seconds.
Cause: tunnel mpls traffic-eng fast-reroute not configured on the protected tunnel, or the bypass tunnel wasn't pre-established.
Fix:
PE-1# show mpls traffic-eng fast-reroute database! Look for: "FRR-label: Push NNN" โ if blank, FRR not configured on tunnelinterface Tunnel1 tunnel mpls traffic-eng fast-reroute ! Add this if missing! Force bypass to rebuildPE-1# mpls traffic-eng reoptimizePE-1# show mpls traffic-eng fast-reroute database! State should change to "Ready"Autoroute not advertising tunnel to routing table
Symptom: TE tunnel is Up but traffic doesn't use it. show ip route 10.0.0.5 shows IGP path, not Tunnel1.
Cause: autoroute announce not configured, or tunnel metric is higher than the IGP metric.
Fix:
interface Tunnel1 tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng autoroute metric absolute 10 ! Set a very low metric so OSPF prefers this tunnel! Verify:PE-1# show mpls traffic-eng autoroute! Should list Tunnel1 and the destinations it announces into the routing tableMPLS-TE Deployment Checklist
- OSPF TE extensions enabled:
mpls traffic-eng router-idandmpls traffic-eng area 0in router ospf ip rsvp bandwidthconfigured on every physical interface that TE tunnels traverse- TE tunnels use
record-routeโ essential for verifying the actual path taken by CSPF path-option 2 dynamicas fallback when explicit paths are configured โ prevents tunnel staying down during maintenance- Fast Reroute: bypass tunnels verified as
State: Readybefore cutting over production traffic - Autoroute metric carefully tuned โ don't accidentally attract all traffic onto a single TE tunnel
- TE tunnel bandwidth reservation โค 75% of physical link capacity โ leave headroom for non-TE traffic
- CSPF logs monitored for path computation failures โ indicates BW exhaustion or topology change
- Reoptimization timer set:
mpls traffic-eng reoptimize timers frequency 3600โ allows CSPF to find better paths after topology changes