DEV Community

Khalif AL Mahmud
Khalif AL Mahmud

Posted on

Lab Task 3 - Static Routing with Backup Links: How Routers Automatically Recover from Failures

There's something genuinely satisfying about watching a network reroute itself around a broken link. No manual intervention, no panic — the packets just find another way.

That's what this post is about. I built a multi-router network in GNS3, configured static routing with administrative distance-based backup links, and then deliberately broke links to see if the backup paths kicked in. They did.

If you've been doing basic static routing but haven't touched redundancy yet, this is where things get interesting.


The Problem with Single Static Routes

Most introductory routing labs teach you to write one route per destination:

ip route 10.10.10.0 255.255.255.0 10.10.100.1
Enter fullscreen mode Exit fullscreen mode

That works fine — until the link goes down. With a single static route, the router has no fallback. The traffic just dies.

In real networks, that's not acceptable. You need a backup path that only activates when the primary fails. That's where administrative distance comes in.


Understanding Administrative Distance

Administrative distance (AD) is how a router decides which route to trust when it knows multiple paths to the same destination.

Lower AD = more trusted = used first.

Route Type Default AD
Directly connected 0
Static route 1
EIGRP 90
OSPF 110
RIP 120

The trick for backup links is simple: assign the primary route an AD of 1 (default) and the backup route a higher AD like 10. The router installs the primary in its routing table. The backup sits dormant. When the primary link fails, the backup's route becomes the only option — and the router uses it automatically.

# Primary route (AD = 1, implicit)
ip route 10.10.10.0 255.255.255.0 10.10.100.1

# Backup route (AD = 10, only used if primary goes down)
ip route 10.10.10.0 255.255.255.0 10.10.200.2 10
Enter fullscreen mode Exit fullscreen mode

Network Topology

The lab topology spans three routers (RouterA, RouterB, RouterC), four LAN switches, and eight PCs.

IP Address Summary

Device Interface IP Address
RouterA f0/0 10.10.20.250/24
RouterA f2/0 10.10.100.1/24
RouterA f3/1 10.10.200.1/24
RouterB f2/0 10.10.200.2/24
RouterB f0/0 10.10.150.1/24
RouterB f3/1 10.10.1.250/24
RouterB f3/0 10.10.10.250/24
RouterC f0/0 10.10.100.2/24
RouterC f2/0 10.10.150.2/24
RouterC f3/0 10.10.5.250/24
PC1 e0 10.10.20.1/24
PC2 e0 10.10.20.2/24
PC3 e0 10.10.10.1/24
PC4 e0 10.10.10.2/24
PC5 e0 10.10.1.1/24
PC6 e0 10.10.1.2/24
PC7 e0 10.10.5.1/24
PC8 e0 10.10.5.2/24

Link 1 = RouterA f2/0 ↔ RouterC f0/0 (via network 10.10.100.0/24)

Link 2 = RouterB f0/0 ↔ RouterC f2/0 (via network 10.10.150.0/24)


Step 1 — Configure IP Addresses on Routers

RouterA

RouterA# enable
RouterA# configure terminal
RouterA(config)# interface f0/0
RouterA(config-if)# ip address 10.10.20.250 255.255.255.0
RouterA(config-if)# no shutdown
RouterA(config-if)# exit
RouterA(config)# interface f2/0
RouterA(config-if)# ip address 10.10.100.1 255.255.255.0
RouterA(config-if)# no shutdown
RouterA(config-if)# exit
RouterA(config)# interface f3/1
RouterA(config-if)# ip address 10.10.200.1 255.255.255.0
RouterA(config-if)# no shutdown
RouterA(config-if)# end
RouterA# write memory
Enter fullscreen mode Exit fullscreen mode

RouterB

RouterB# enable
RouterB# configure terminal
RouterB(config)# interface f2/0
RouterB(config-if)# ip address 10.10.200.2 255.255.255.0
RouterB(config-if)# no shutdown
RouterB(config-if)# exit
RouterB(config)# interface f0/0
RouterB(config-if)# ip address 10.10.150.1 255.255.255.0
RouterB(config-if)# no shutdown
RouterB(config-if)# exit
RouterB(config)# interface f3/1
RouterB(config-if)# ip address 10.10.1.250 255.255.255.0
RouterB(config-if)# no shutdown
RouterB(config-if)# exit
RouterB(config)# interface f3/0
RouterB(config-if)# ip address 10.10.10.250 255.255.255.0
RouterB(config-if)# no shutdown
RouterB(config-if)# end
RouterB# write memory
Enter fullscreen mode Exit fullscreen mode

RouterC

RouterC# enable
RouterC# configure terminal
RouterC(config)# interface f0/0
RouterC(config-if)# ip address 10.10.100.2 255.255.255.0
RouterC(config-if)# no shutdown
RouterC(config-if)# exit
RouterC(config)# interface f2/0
RouterC(config-if)# ip address 10.10.150.2 255.255.255.0
RouterC(config-if)# no shutdown
RouterC(config-if)# exit
RouterC(config)# interface f3/0
RouterC(config-if)# ip address 10.10.5.250 255.255.255.0
RouterC(config-if)# no shutdown
RouterC(config-if)# end
RouterC# write memory
Enter fullscreen mode Exit fullscreen mode


Step 2 — Configure IP Addresses on PCs

Each PC in GNS3 (VPCS) is configured with its IP, mask, and default gateway. The gateway always points to the LAN interface of the connected router.

# PC1 example
PC1> ip 10.10.20.1/24 10.10.20.250
PC1> save
Enter fullscreen mode Exit fullscreen mode

Repeat the same pattern for PC2 through PC8 using the IP table above.


Step 3 — Configure Static Routes with Backup Links

This is the core of the lab. For every remote network, each router gets two static routes: a primary (AD = 1, implied) and a backup (AD = 10, explicitly set).

RouterA

RouterA# configure terminal

# To reach 10.10.10.0 (PC3/PC4 network)
RouterA(config)# ip route 10.10.10.0 255.255.255.0 10.10.200.2

# Backup via RouterC
RouterA(config)# ip route 10.10.10.0 255.255.255.0 10.10.100.2 10

# To reach 10.10.1.0 (PC5/PC6 network)
RouterA(config)# ip route 10.10.1.0 255.255.255.0 10.10.200.2
RouterA(config)# ip route 10.10.1.0 255.255.255.0 10.10.100.2 10

# To reach 10.10.5.0 (PC7/PC8 network)
RouterA(config)# ip route 10.10.5.0 255.255.255.0 10.10.200.2
RouterA(config)# ip route 10.10.5.0 255.255.255.0 10.10.100.2 10

RouterA(config)# end
RouterA# write memory
Enter fullscreen mode Exit fullscreen mode

RouterB

RouterB# configure terminal

# To reach 10.10.20.0 (PC1/PC2 network)
RouterB(config)# ip route 10.10.20.0 255.255.255.0 10.10.200.1
RouterB(config)# ip route 10.10.20.0 255.255.255.0 10.10.150.2 10

# To reach 10.10.5.0 (PC7/PC8 network)
RouterB(config)# ip route 10.10.5.0 255.255.255.0 10.10.150.2
RouterB(config)# ip route 10.10.5.0 255.255.255.0 10.10.200.1 10

# To reach 10.10.100.0 (Link 1 network)
RouterB(config)# ip route 10.10.100.0 255.255.255.0 10.10.150.2
RouterB(config)# ip route 10.10.100.0 255.255.255.0 10.10.200.1 10

RouterB(config)# end
RouterB# write memory
Enter fullscreen mode Exit fullscreen mode

RouterC

RouterC# configure terminal

# To reach 10.10.20.0 (PC1/PC2 network)
RouterC(config)# ip route 10.10.20.0 255.255.255.0 10.10.100.1
RouterC(config)# ip route 10.10.20.0 255.255.255.0 10.10.150.1 10

# To reach 10.10.10.0 (PC3/PC4 network)
RouterC(config)# ip route 10.10.10.0 255.255.255.0 10.10.150.1
RouterC(config)# ip route 10.10.10.0 255.255.255.0 10.10.100.1 10

# To reach 10.10.1.0 (PC5/PC6 network)
RouterC(config)# ip route 10.10.1.0 255.255.255.0 10.10.150.1
RouterC(config)# ip route 10.10.1.0 255.255.255.0 10.10.100.1 10

RouterC(config)# end
RouterC# write memory
Enter fullscreen mode Exit fullscreen mode


Step 4 — Verify Baseline Connectivity

Before testing failure scenarios, confirm the network works normally. Ping across routers end-to-end.

# From PC1, ping PC8
PC1> ping 10.10.5.2
Enter fullscreen mode Exit fullscreen mode

You should see 5 successful replies.

# From PC2, ping PC5
PC2> ping 10.10.1.1
Enter fullscreen mode Exit fullscreen mode


Step 5 — Scenario 1: Ping PC8 from PC1 with Link 1 Down

Link 1 is the direct connection between RouterA (f2/0) and RouterC (f0/0). Taking it down forces traffic through RouterB instead.

Both ends of the link must be shut down. Bringing down only one side leaves the other router with an active interface still trying to use the link — you'll see intermittent failures instead of clean failover.

# Shut down RouterA's side of Link 1
RouterA# configure terminal
RouterA(config)# interface f2/0
RouterA(config-if)# shutdown

# Shut down RouterC's side of Link 1
RouterC# configure terminal
RouterC(config)# interface f0/0
RouterC(config-if)# shutdown
Enter fullscreen mode Exit fullscreen mode

Now ping PC8 from PC1:

PC1> ping 10.10.5.2
Enter fullscreen mode Exit fullscreen mode

The first 1–2 packets may time out while the router converges. After that, replies come back through the backup path (via RouterB).


Step 6 — Scenario 2: Ping PC7 from PC3 with Link 2 Down (Link 1 Active)

Now bring Link 1 back up first, then take down Link 2 (RouterB f0/0 ↔ RouterC f2/0).

# Re-enable Link 1
RouterA(config)# interface f2/0
RouterA(config-if)# no shutdown

RouterC(config)# interface f0/0
RouterC(config-if)# no shutdown

# Shut down Link 2
RouterC# configure terminal
RouterC(config)# interface f2/0
RouterC(config-if)# shutdown

RouterB# configure terminal
RouterB(config)# interface f0/0
RouterB(config-if)# shutdown
Enter fullscreen mode Exit fullscreen mode

Now ping PC7 from PC3:

PC3> ping 10.10.5.1
Enter fullscreen mode Exit fullscreen mode

Traffic from PC3 now goes: RouterB → RouterA → RouterC → PC7, using Link 1 as the active path.


How to Verify

# Check routing table — look for [10/0] entries (backup routes)
RouterA# show ip route

# Confirm interface status
RouterA# show interfaces f2/0
RouterA# show ip interface brief
Enter fullscreen mode Exit fullscreen mode

A healthy routing table for RouterA will show two entries per destination — the active one installed normally, the backup marked with its higher AD in brackets like [10/0].


What I Learned

Administrative distance is what makes backup links work. Without it, two static routes to the same destination just confuse the router — it might load-balance instead of treating one as a standby. Setting a higher AD on the backup gives the router a clear rule: use this only when the primary is gone.

Both ends of a link must go down for clean failover. I found this out the hard way — shutting down only one side caused partial packet loss rather than clean switchover. Cisco routers detect the link down on a shutdown interface, but the far end may still think it's connected.

Static routing with AD-based backups is simple but powerful. It's not as automatic as OSPF or EIGRP, but for small, predictable topologies it's completely reliable and much easier to reason about.


Common Mistakes

Mistake What Happens Fix
Only shutting down one side of the failed link Intermittent packet loss instead of clean failover Shut down both interfaces
Forgetting to set AD on backup route Router load-balances instead of using one as primary Always add 10 at the end of backup route command
Using the same AD for primary and backup Both routes get installed; unpredictable behavior Primary = 1 (default), backup = 10
Not configuring return routes One-way traffic — ping fails from destination side Every router needs routes in both directions
Skipping write memory Config lost on reload Always save after configuring

Conclusion

Static routing with backup links is one of those foundational skills that shows up everywhere. Even in networks running dynamic routing protocols, static fallbacks are common for out-of-band paths, management links, or ISP connections.

The administrative distance trick is clean: one number tells the router exactly what to do when things break. Once you understand it, designing resilient topologies becomes a lot more intuitive.

If you try this out in GNS3, start with a simpler 2-router setup before scaling to three routers — it helps you visualize the path logic before it gets more complex.

Top comments (0)