IP Network Modeling Lab — OSPF, BGP, MPLS LDP Network Simulator

Free interactive browser-based IP network simulator. Build topologies with drag-and-drop, run OSPF SPF convergence, configure BGP eBGP and iBGP sessions with AS-path and best-path selection, enable MPLS LDP for label distribution, and test connectivity with simulated ping and traceroute.

About this tool — how it works & FAQOpen ▾Close ▴

About the IP Network Modeling Lab

This free browser-based simulator lets you build IP network topologies, configure routing protocols, and observe how packets actually travel through your network. Add routers, L3 switches, and hosts; connect them with links; assign IP addresses; run OSPF SPF convergence; configure BGP sessions between autonomous systems; and enable MPLS LDP label distribution. The simulator implements real protocol math — Dijkstra SPF for OSPF, RFC 4271 best-path selection for BGP, and LDP label binding for MPLS — so the routing tables, AS paths, and LFIB entries you see are correct, not simplified guesses.

What the lab covers

• Topology builder — drag-and-drop routers, L3 switches, L2 switches, and hosts. Connect devices in any topology: linear chain, hub-and-spoke, ring, full mesh, or three-tier campus. • IP addressing — configure IPv4 address and subnet mask per interface. Interfaces turn green when configured, amber when unconfigured, red when shut down. • OSPF — enable OSPF per device, configure network statements (network <net> <wildcard> area <area>), click Run OSPF to converge all routing tables via Dijkstra SPF. Supports multi-area OSPF with ABRs. • BGP — enable BGP per router, set the AS number, add eBGP or iBGP neighbors by IP and remote ASN. Configure next-hop-self for iBGP transit. Redistribute connected, OSPF, or static routes. Click Run BGP to propagate routes and run 8-step best-path selection. View the RIB in the BGP tab or via 'show ip bgp'. • MPLS LDP — enable LDP per device, click Run MPLS to build the Label Information Base (LIB), exchange bindings with neighbors, and compute the Label Forwarding Information Base (LFIB). PHP (Penultimate Hop Popping) is applied automatically at the router adjacent to the egress. View LFIB and LIB in the MPLS tab or via 'show mpls forwarding-table'. • Static routes — add ip route entries with destination, prefix length, next-hop, and administrative distance. • Simulated ping and traceroute — follow routing tables hop-by-hop. Detects routing loops, black holes, and unreachable destinations. • Link control — toggle links up/down, change bandwidth (10M to 100G), set per-interface OSPF cost. OSPF reconverges automatically after link state changes. • Realistic CLI — Show Cmds tab: show ip route, show ip bgp, show ip bgp summary, show ip bgp neighbors, show mpls forwarding-table, show mpls ldp neighbor, show mpls ldp bindings, show interfaces, show running-config. Each vendor uses native interface naming.

Pre-built scenarios

OSPF / Static: • Linear 3-Router OSPF — R1–R2–R3 with loopbacks and /30 transit links. Try pinging R3's loopback from R1, then bring down R1-R2 and watch OSPF reconverge. • Hub & Spoke, Ring, Redundant Core — explore OSPF path selection and redundancy. • Multi-Area OSPF — R2 and R3 as ABRs. Area 1 ↔ Area 0 ↔ Area 2. • Static Routing Demo — three routers, no OSPF, all routes manually configured.

BGP: • eBGP Two-AS Peering — R1 (AS 65001) and R2 (AS 65002) exchange routes via eBGP. Redistribute connected subnets, check the BGP tab on each router, run 'show ip bgp' to see AS-path attributes. • BGP Transit ISP — CE1 (AS 65001) and CE2 (AS 65002) connected via an ISP (AS 65000) with two PE routers running iBGP with next-hop-self. CE1 routes should appear in CE2's BGP table after one eBGP + one iBGP + one eBGP hop.

MPLS: • MPLS LDP Core — PE1–P1–P2–PE2 all running OSPF + LDP. P1 swaps labels; PE1 and PE2 perform PHP. Select P1 → MPLS tab to see the LFIB. • ISP BGP + MPLS Backbone — CE1/CE2 on eBGP, PE1/PE2 on iBGP (next-hop-self), core P router runs OSPF + MPLS only. Demonstrates a realistic ISP BGP/MPLS architecture.

How OSPF SPF works

OSPF (RFC 2328) is a link-state routing protocol. Each router maintains a Link State Database (LSDB) describing the entire network topology. The SPF algorithm (Dijkstra) computes the shortest path tree from each router's perspective:

1. Each router generates a Router LSA advertising its interfaces and neighbors. 2. LSAs flood throughout the OSPF area so every router has an identical LSDB. 3. Each router independently runs Dijkstra from its own Router ID as the root. 4. The algorithm assigns tentative costs to neighbors, picks the lowest-cost unexplored node, expands it, and repeats until all nodes are reached. 5. The shortest-path tree gives each destination its total cost (metric) and the first-hop next-hop IP and outgoing interface. 6. Routing table entries are installed: O prefix/len [110/metric] via next-hop, outIface.

When a link fails, the router detects the loss of OSPF Hello packets within the dead timer, removes the adjacency from its LSDB, floods an updated LSA, and all routers re-run SPF simultaneously. This is the reconvergence you observe when you toggle a link down in the lab.

Frequently asked questions

Why does R1's routing table show "O 3.3.3.3/32 [110/2]" instead of cost 1?

The metric shown is the cumulative OSPF cost along the full path, not the cost of a single link. In the 3-router linear scenario, all links have the default OSPF cost of 1. To reach R3's loopback (3.3.3.3/32) from R1, the path is: R1→(cost 1)→R2→(cost 1)→R3, then R3 advertises its loopback at cost 1. The cumulative path cost = 1 (R1-R2) + 1 (R2-R3) + 0 (R3's loopback is local) = 2. OSPF metric [110/2] means administrative distance 110, metric 2.

What is a wildcard mask and how is it different from a subnet mask?

A wildcard mask is the bitwise inverse of a subnet mask. Where a subnet mask has 1s for the network portion and 0s for the host portion, a wildcard has 0s for the bits that must match and 1s for the bits that are ignored. For a /30 subnet: mask = 255.255.255.252 (binary: ...11111100), wildcard = 0.0.0.3 (binary: ...00000011). OSPF network statements use wildcard masks to define which interfaces to enable: "network 10.0.0.0 0.0.0.3 area 0" enables OSPF on any interface with an IP in 10.0.0.0–10.0.0.3.

What does the amber dot mean on a device?

The small colored dot in the top-right of each device icon indicates its configuration state: green = device has IP addresses configured on its interfaces; blue = OSPF is enabled and the router is participating in SPF; amber = device has no IP addresses configured yet. Configure IPs via the Interfaces tab, then connect devices and enable OSPF.

Why can't I ping across a link after connecting two routers?

After creating a link, you need to configure IP addresses on both endpoint interfaces. Click the link (not a device) to open the link panel, then set the Endpoint A and Endpoint B IP addresses and masks. Both IPs must be in the same subnet (same network address) for the link to carry traffic. Click Run OSPF after configuring IPs and enabling OSPF. If using static routing instead, add static routes on each router for the remote subnets.

What is the difference between Routing Table and Show Cmds tabs?

The Routing Table tab shows a structured table view with columns for protocol, network, next-hop, interface, and metric — useful for quick inspection and comparing routes. The Show Cmds tab generates formatted IOS-style command output for the selected device, including "show ip route" (full routing table with protocol codes), "show ip ospf neighbor" (adjacency table with state and dead timer), "show ip ospf database" (LSDB with sequence numbers), "show interfaces" (interface status, IP, MTU, bandwidth), and "show running-config" (full device configuration). The vendor setting (Cisco, Juniper, etc.) changes interface naming in running-config.

Related tools & guides