Modern, lightweight network labs using Containerlab and FRR routing
Learn OSPF, BGP, and Linux networking with hands-on containerized labs. No VMs required!
Traditional network labs (GNS3, EVE-NG) require heavy virtual machines and complex setup. These containerized labs offer:
- ✅ 75% less memory - ~50MB per router vs 1GB+ for VM-based labs
- ✅ 96% faster startup - 30 seconds vs 10+ minutes
- ✅ Zero configuration - One-click deployment with VS Code devcontainers
- ✅ Modern approach - Docker containers, not VMs
| Lab | Difficulty | Time | Topics | Tests |
|---|---|---|---|---|
| OSPF Basics | ⭐⭐ Beginner | 45 min | OSPF single-area, neighbor adjacency, DR/BDR election | 6 |
| BGP eBGP Basics | ⭐⭐ Beginner | 60 min | eBGP peering, AS-path, route advertisement | 6 |
| Linux Network Namespaces | ⭐ Beginner | 30 min | Network namespaces, veth pairs, IP forwarding | 5 |
Learn OSPF fundamentals with a simple 3-router topology. Perfect for understanding OSPF operation, DR/BDR election, and basic troubleshooting.
Understand external BGP with a 4-router, 3-AS topology. Learn BGP neighbor establishment, route propagation, and AS-path manipulation.
Explore how containerlab uses Linux network namespaces to create isolated network environments. Understand the foundation of container networking.
All labs include SSH access with auto-login to router CLI - just like real Cisco/Juniper routers!
Credentials:
- Username:
admin - Password:
cisco
Access methods:
- VS Code Extension (easiest) - Right-click container → SSH
- Port mapping -
ssh -p 2221 admin@localhost - Container name -
ssh admin@clab-ospf-basics-r1
You land directly at the router CLI:
$ ssh -p 2221 admin@localhost
Password: cisco
r1# ← Router CLI (not bash shell!)
r1# show ip ospf neighbor
r1# show ip route
See SSH-SETUP-COMPLETE.md for complete documentation.
# Install containerlab (Linux/Mac)
bash -c "$(curl -sL https://get.containerlab.dev)"
# Verify installation
containerlab version# Clone this repo
git clone https://github.com/ciscoittech/containerlab-free-labs.git
cd containerlab-free-labs
# Build frr-ssh image (first time only)
./build-frr-ssh.sh
# Option 1: Run in VS Code with devcontainer (recommended)
cd ospf-basics
code . # Click "Reopen in Container"
# Option 2: Run locally
cd ospf-basics
sudo containerlab deploy -t topology.clab.yml
# Access routers via SSH (recommended)
ssh -p 2221 admin@localhost # OSPF r1
# Password: cisco
# Lands directly at router CLI: r1#
# Alternative: Docker exec
docker exec -it clab-ospf-basics-r1 vtysh
# Cleanup
sudo containerlab destroy -t topology.clab.yml- Start here: Linux Network Namespaces (understand the foundation)
- OSPF Basics: Learn link-state routing protocols
- BGP eBGP Basics: Understand internet routing fundamentals
Contributions are welcome! See CONTRIBUTING.md for guidelines.
Quick start:
- Fork this repo
- Create a feature branch (
git checkout -b feature/new-lab) - Test in devcontainer (
./scripts/validate.sh) - Submit a PR
Want to add a lab? Check our lab template
MIT License - Use these labs for learning, teaching, or building your own projects!
Note: These labs use FRR (Free Range Routing) which provides Cisco-like syntax for BGP, OSPF, IS-IS, and more. Perfect for CCNA/CCNP lab practice without expensive hardware!