Hands-on network labs that run in seconds, not hours. Built with Containerlab and FRR so you can practice real routing protocols without expensive hardware or heavy VMs.
If you've ever spent hours setting up GNS3 or EVE-NG just to practice OSPF, this is for you. Each lab spins up a full network topology using Docker containers in about 30 seconds. You get real router CLIs, real routing protocols, and real troubleshooting — without the overhead.
How it compares:
| Containerlab (this repo) | GNS3 / EVE-NG | |
|---|---|---|
| Memory per router | ~50 MB | 1 GB+ |
| Startup time | ~30 seconds | 10+ minutes |
| Setup | git clone + one command |
Download ISOs, configure VMs, pray |
| Cost | Free | Free (but needs beefy hardware) |
Perfect for CCNA, CCNP, and anyone learning network engineering.
Six labs, beginner to advanced. Each one includes automated validation so you know when you've got it right.
| Lab | Level | Time | What You'll Learn |
|---|---|---|---|
| Linux Network Namespaces | Beginner | 30 min | How containers create isolated networks under the hood |
| OSPF Basics | Beginner | 45 min | Single-area OSPF, neighbor adjacency, DR/BDR election |
| BGP eBGP Basics | Beginner | 60 min | eBGP peering across 3 autonomous systems, AS-path |
| VyOS Firewall Basics | Beginner | 45 min | Zone-based firewall, traffic filtering, NAT |
| Zero Trust Fundamentals | Intermediate | 45 min | JWT auth, microservices, identity-based access |
| Enterprise VPN Migration | Advanced | 90 min | 16-container, 2-site GRE VPN migration with rollback |
Start at the top and work your way down. Each lab builds on concepts from the previous ones.
- Linux Namespaces — understand how containerlab works under the hood
- OSPF — your first routing protocol
- BGP — how the internet routes traffic between networks
- Firewall — add security between zones
- Zero Trust — modern identity-based access control
- Enterprise VPN — put it all together in a real-world migration scenario
Click the button above. That's it. Everything is pre-installed.
# Install containerlab (Linux or Mac)
bash -c "$(curl -sL https://get.containerlab.dev)"
# Clone and build
git clone https://github.com/ciscoittech/containerlab-free-labs.git
cd containerlab-free-labs
./build-frr-ssh.sh # builds the router image (first time only)
# Pick a lab and deploy
cd ospf-basics
sudo containerlab deploy -t topology.clab.yml
# SSH into a router — you'll land right at the CLI
ssh -p 2221 admin@localhost
# Password: cisco
# When you're done
sudo containerlab destroy -t topology.clab.ymlEvery FRR router has SSH enabled. Login and you land directly at the router CLI, just like a real Cisco or Juniper box.
$ ssh -p 2221 admin@localhost
Password: cisco
r1# show ip ospf neighbor
r1# show ip route
r1# show ip bgp summary
Credentials: admin / cisco
You can also connect via VS Code (right-click container, SSH) or Docker exec (docker exec -it clab-ospf-basics-r1 vtysh).
- CCNA / CCNP students — practice routing protocols with Cisco-like CLI syntax
- Network engineers — spin up quick topologies to test ideas
- Career switchers — learn networking hands-on without buying hardware
- Instructors — give students lab environments that just work
Got an idea for a lab? Found a bug? PRs are welcome.
- Fork this repo
- Create a branch (
git checkout -b feature/my-lab) - Test with the validation scripts (
./scripts/validate.sh) - Open a PR
See CONTRIBUTING.md for details.
- Containerlab Docs — the tool that makes this possible
- FRRouting Docs — the routing suite behind the router CLIs
- Codespaces Guide — detailed setup for GitHub Codespaces
MIT — use these labs for learning, teaching, corporate training, whatever you want.