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.
β Start Linux Namespaces Lab
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!