DEV Community

Khalif AL Mahmud
Khalif AL Mahmud

Posted on

Lab Task 4 - How I Built a Multi-Router Network Using RIP and OSPF Dynamic Routing in GNS3

Dynamic routing is one of those things that sounds intimidating until you actually sit down and configure it yourself. The moment your routers start exchanging routes automatically and your pings start going through across the entire network — something clicks. That's exactly what happened when I built this project.

In this article, I'll walk through how I set up a multi-router GNS3 topology with eight PCs, three routers, and four separate subnets — and then configured it twice: once using RIP (Routing Information Protocol) and once using OSPF (Open Shortest Path First). Both projects use the exact same topology and IP scheme, which makes them a perfect side-by-side comparison of two completely different routing philosophies.


Problem Statement

The challenge was straightforward: given a fixed network topology with three routers (RouterA, RouterB, RouterC), four LANs, and eight end devices, configure dynamic routing so that any PC can reach any other PC — regardless of which subnet it's on.

The catch? You can't use static routes. The routers need to learn the paths themselves.


Network Topology Overview

The topology breaks down like this:

Device Interface IP Address Network
RouterA f0/0 10.10.20.250/24 LANA
RouterA f2/0 10.10.100.1/24 Link to RouterC
RouterA f3/1 10.10.200.1/24 Link to RouterB
RouterB f2/0 10.10.200.2/24 Link to RouterA
RouterB f0/0 10.10.150.1/24 Link to RouterC
RouterB f3/0 10.10.10.250/24 LANB
RouterB f3/1 10.10.1.250/24 LANC
RouterC f0/0 10.10.100.2/24 Link to RouterA
RouterC f2/0 10.10.150.2/24 Link to RouterB
RouterC f3/0 10.10.5.250/24 LAND

End Devices:

PC IP Address Default Gateway
PC1 10.10.20.1/24 10.10.20.250
PC2 10.10.20.2/24 10.10.20.250
PC3 10.10.10.1/24 10.10.10.250
PC4 10.10.10.2/24 10.10.10.250
PC5 10.10.1.1/24 10.10.1.250
PC6 10.10.1.2/24 10.10.1.250
PC7 10.10.5.1/24 10.10.5.250
PC8 10.10.5.2/24 10.10.5.250

Project A — RIP Configuration

Step 1: Configure Router Interfaces

Before any routing protocol can work, every interface needs its IP address assigned and brought up. Here's how I did it for each router.

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)# exit
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)# exit
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)# exit
Enter fullscreen mode Exit fullscreen mode


Step 2: Configure End Devices (PCs)

Each PC in GNS3 uses VPCS. The command format is simple:

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

Repeat for all eight PCs with their respective IP and gateway:

PC2> ip 10.10.20.2/24 10.10.20.250
PC3> ip 10.10.10.1/24 10.10.10.250
PC4> ip 10.10.10.2/24 10.10.10.250
PC5> ip 10.10.1.1/24 10.10.1.250
PC6> ip 10.10.1.2/24 10.10.1.250
PC7> ip 10.10.5.1/24 10.10.5.250
PC8> ip 10.10.5.2/24 10.10.5.250
Enter fullscreen mode Exit fullscreen mode


Step 3: Enable RIP on All Routers

RIP tells each router which networks it's directly connected to, and from there it starts advertising those routes to its neighbors.

RouterA — RIP:

RouterA# enable
RouterA# configure terminal
RouterA(config)# router rip
RouterA(config-router)# network 10.10.20.0
RouterA(config-router)# network 10.10.100.0
RouterA(config-router)# network 10.10.200.0
RouterA(config-router)# exit
RouterA(config)# end
RouterA# wr
Enter fullscreen mode Exit fullscreen mode

RouterB — RIP:

RouterB# enable
RouterB# configure terminal
RouterB(config)# router rip
RouterB(config-router)# network 10.10.1.0
RouterB(config-router)# network 10.10.10.0
RouterB(config-router)# network 10.10.150.0
RouterB(config-router)# network 10.10.200.0
RouterB(config-router)# exit
RouterB(config)# end
RouterB# wr
Enter fullscreen mode Exit fullscreen mode

RouterC — RIP:

RouterC# enable
RouterC# configure terminal
RouterC(config)# router rip
RouterC(config-router)# network 10.10.5.0
RouterC(config-router)# network 10.10.100.0
RouterC(config-router)# network 10.10.150.0
RouterC(config-router)# exit
RouterC(config)# end
RouterC# wr
Enter fullscreen mode Exit fullscreen mode


Project B — OSPF Configuration

The IP addresses on all routers and PCs remain exactly the same. The only difference is replacing the RIP process with OSPF.

Step 1: Remove RIP (if reconfiguring)

RouterA(config)# no router rip
Enter fullscreen mode Exit fullscreen mode

Repeat on RouterB and RouterC.

Step 2: Enable OSPF on All Routers

OSPF requires a process ID (locally significant) and you advertise networks with their wildcard mask and an area number. For a simple single-area setup, we use area 0.

RouterA — OSPF:

RouterA# enable
RouterA# configure terminal
RouterA(config)# router ospf 1
RouterA(config-router)# network 10.10.20.0 0.0.0.255 area 0
RouterA(config-router)# network 10.10.100.0 0.0.0.255 area 0
RouterA(config-router)# network 10.10.200.0 0.0.0.255 area 0
RouterA(config-router)# exit
RouterA(config)# end
RouterA# wr
Enter fullscreen mode Exit fullscreen mode

RouterB — OSPF:

RouterB# enable
RouterB# configure terminal
RouterB(config)# router ospf 1
RouterB(config-router)# network 10.10.1.0 0.0.0.255 area 0
RouterB(config-router)# network 10.10.10.0 0.0.0.255 area 0
RouterB(config-router)# network 10.10.150.0 0.0.0.255 area 0
RouterB(config-router)# network 10.10.200.0 0.0.0.255 area 0
RouterB(config-router)# exit
RouterB(config)# end
RouterB# wr
Enter fullscreen mode Exit fullscreen mode

RouterC — OSPF:

RouterC# enable
RouterC# configure terminal
RouterC(config)# router ospf 1
RouterC(config-router)# network 10.10.5.0 0.0.0.255 area 0
RouterC(config-router)# network 10.10.100.0 0.0.0.255 area 0
RouterC(config-router)# network 10.10.150.0 0.0.0.255 area 0
RouterC(config-router)# exit
RouterC(config)# end
RouterC# wr
Enter fullscreen mode Exit fullscreen mode


How to Verify — Connectivity Tests

Once RIP (or OSPF) is configured on all routers, give it about 30–60 seconds for routes to converge. Then run pings from the PCs.

Ping PC8 from PC1

PC1 is on 10.10.20.0/24 (LANA under RouterA).

PC8 is on 10.10.5.0/24 (LAND under RouterC).

These are on completely different sides of the network.

PC1> ping 10.10.5.2
Enter fullscreen mode Exit fullscreen mode

Expected output:

84 bytes from 10.10.5.2 icmp_seq=1 ttl=62 time=xxx ms
84 bytes from 10.10.5.2 icmp_seq=2 ttl=62 time=xxx ms
84 bytes from 10.10.5.2 icmp_seq=3 ttl=62 time=xxx ms
Enter fullscreen mode Exit fullscreen mode

Ping PC7 from PC3

PC3 is on 10.10.10.0/24 (LANB under RouterB).

PC7 is on 10.10.5.0/24 (LAND under RouterC).

PC3> ping 10.10.5.1
Enter fullscreen mode Exit fullscreen mode

To verify what routes each router has learned, run:

RouterA# show ip route
Enter fullscreen mode Exit fullscreen mode

You'll see entries marked R (for RIP) or O (for OSPF) next to any network that was learned dynamically — not just the ones directly connected.


RIP vs OSPF — Quick Comparison

Feature RIP OSPF
Type Distance-Vector Link-State
Metric Hop count (max 15) Cost (based on bandwidth)
Convergence Slower Faster
Scalability Small networks Large, enterprise networks
Algorithm Bellman-Ford Dijkstra (SPF)
Advertisement Full table every 30s Only on topology changes
Network declaration Network address Network + wildcard mask + area
Route identifier in table R O

What I Learned

Working through both projects back to back made the differences between RIP and OSPF much clearer than any textbook explanation could. A few things that stood out:

  • RIP is dead simple to configure — if your network is small and you just need routes to propagate, it gets the job done in a few commands. But the 15-hop limit and the 30-second update cycle are real limitations.

  • OSPF requires more thought upfront — you need to understand wildcard masks and areas. But once it's running, it's noticeably more intelligent about path selection and doesn't flood unnecessary updates.

  • The routing table tells the whole story. Running show ip route after each configuration and watching the entries change from C (connected) to R or O is genuinely satisfying. It confirms the protocol is working.

  • Gateway configuration on end devices matters more than people think. If a PC doesn't have the right default gateway set, pings fail no matter how correct the routing protocol is — and it's an easy thing to overlook.

  • Convergence time is real. With RIP especially, if you ping immediately after configuring, you might see failures. Give it a minute and try again.


Common Mistakes

Mistake Why It Happens Fix
Interface stays down after IP assignment Forgot no shutdown Always run no shutdown after assigning an IP
RIP not advertising a network Wrong network address entered Double-check with show ip route — use the classful network
OSPF routes not appearing Wrong wildcard mask or wrong area Wildcard mask is the inverse of subnet mask; area must match on all routers
Ping fails even with routes present PC gateway is wrong Re-check PC gateway — it must point to the correct router interface
% Invalid input detected in RIP Tried to use wildcard in RIP config RIP only takes classful network addresses, no wildcard needed
Routes learned but ping still fails Interface on far end is down Check all interfaces with show ip interface brief

Conclusion

Setting up RIP and OSPF on the same topology is one of the best ways to understand what dynamic routing actually does for you — and what each protocol's trade-offs are. RIP is the quick and easy choice for small, simple networks. OSPF is more involved but far more capable.

If you're getting started with networking and haven't tried configuring dynamic routing in GNS3 yet, this is a great project to take on. The moment your pings start crossing multiple subnets without a single static route in sight — you'll understand why dynamic routing matters.


Have questions about the configuration or want to compare notes on your own GNS3 setup? Drop a comment below.

Top comments (0)