The scenario
PE1 serves Host-A (10.0.1.10) and has two remote sites. Site B, Host-B on 10.0.3.0/24, is behind P-North and PE-B. Site C, Host-C on 10.0.5.0/24, is behind P-South and PE-C. PE1 has a static route and an LSP for each: traffic for 10.0.3.0/24 gets label 16001 and goes to P-North (10.0.10.2); traffic for 10.0.5.0/24 gets label 16010 and goes to P-South (10.0.20.2). P-North swaps 16001 for 16002 and PE-B pops it; P-South swaps 16010 for 16011 and PE-C pops it. Replies come back on their own LSPs: PE-B pushes 16020 (P-North swaps it for 16021), PE-C pushes 16030 (P-South swaps it for 16031), and PE1 pops both. The P routers have no route to any host network and no router runs OSPF.
What you will work out
Understand forwarding equivalence classes: how an ingress PE chooses a label by destination prefix, and why the label must match the path the packet takes.
Why this matters
Every real MPLS network carries many LSPs at once, and the PE's job of mapping each destination to the right label is the step the rest depends on. When a route and a label binding disagree, as in the misrouting step, the result is a black hole at the first core router rather than an obvious error at the edge, which is why checking the label a PE pushes and the label its neighbour expects is a basic MPLS troubleshooting step.
Running it
MPLS: Multiple LSPs opens on a canvas, already wired and addressed. Trace a packet through it hop by hop, or run the same topology live on real Linux network namespaces. How the two modes differ.
Open MPLS: Multiple LSPs
Runs in your browser. No install, no signup, and the simulation starts instantly.
Open the lab →