A multi-branch enterprise network built in GNS3 and fully automated end-to-end with Python & Netmiko.
Covering OSPF routing, VLAN segmentation, SSH-based management, configuration backups, compliance auditing, configuration drift detection, and a unified HTML Network Operations Dashboard.
- ๐ Overview
- ๐ง Network Topology
- โจ Key Features
- ๐ ๏ธ Tech Stack
- ๐ธ Dashboard Preview
- ๐ Repository Structure
- ๐ Getting Started
- ๐ป Usage
- ๐ค๏ธ Project Phases
- ๐ฎ Future Enhancements
- ๐จโ๐ป Author
What started as a standard CCNA-level lab has evolved into a fully-fledged Network Operations Platform. Instead of manually logging into devices to verify state, a robust suite of Netmiko scripts automatically connects to every router and switch, retrieves live operational data, and renders it into a sleek, unified dashboard.
The Lab Scenario (ABC Company):
- HQ Site and two Branch Offices connected via OSPF (Area 0).
- Each site is segmented into specific VLANs for Users, Servers, and Management.
- A Python automation layer handles day-2 operations: config pushes, backups, drift detection, and compliance auditing against baselines.
| ๐ฅ๏ธ Environment | โ๏ธ Details |
|---|---|
| Lab Platform | GNS3 (inside GNS3 VM on VMware Workstation) |
| Devices | 3x Cisco IOSv Routers, 2x Cisco IOSvL2 Switches, 4x VPCS |
| Routing & Switching | OSPF (Area 0) | VLAN 10 (Users), 20 (Servers), 99 (Mgmt) |
| Management | SSH via Netmiko (cisco_ios_telnet initially, SSH pushed later) |
Network Subnets:
| ๐ Site | ๐ Subnet | ๐ช Gateway |
|---|---|---|
| Headquarters (HQ) | 192.168.10.0/24 |
192.168.10.1 |
| Branch 1 | 192.168.20.0/24 |
192.168.20.1 |
| Branch 2 | 192.168.30.0/24 |
192.168.30.1 |
(Note: A GNS3 Cloud node bridges the Windows host machine to the lab for script access. More details in docs/phase3_topology_build.md)
- ๐ Automated Device Inventory: Automatically collects and categorizes all routers and switches.
- ๐พ Scheduled Backups: Reliable, timestamped configuration backups.
- โค๏ธ OSPF Health Checks: Monitors neighbor adjacencies with clear pass/fail reporting.
- ๐ก๏ธ Compliance Auditing: Enforces baselines (hostnames, local admins, SSH v2, OSPF presence, encrypted passwords).
- ๐ Interface Monitoring: Tracks real-time up/down status per interface.
- ๐ VLAN Deployment: Automated zero-touch VLAN provisioning via Netmiko
send_config_set. - ๐ Drift Detection: Automatically spots configuration drift between any two backup periods.
- ๐ฅ๏ธ Unified Operations Dashboard (V2): A dark-themed, responsive HTML dashboard featuring live status cards, health scoring, compliance tables, drift viewer, and an interactive device explorer.
The flagship component of this project is the Unified Network Operations Dashboard V2. It runs asynchronously across all devices, pulling everything it needs, and outputs a stunning static HTML dashboard.
Click to expand Dashboard Screenshots
1. Overview & Status Cards
2. Switch Compliance & OSPF Health
3. VLAN, Backups & Drift Analysis
4. Device Search & Explorer
Network-Automation-Platform/
โโโ ๐ Network_Automation.gns3 # The main GNS3 lab project file
โโโ ๐ configs/ # Router & switch config templates/files
โโโ ๐ scripts/ # Python automation logic
โ โโโ ๐ inventory/ # Device collection
โ โโโ ๐ backups/ # Backup automation
โ โโโ ๐ monitoring/ # OSPF, interfaces, and compliance scripts
โ โโโ ๐ automation/ # VLAN deploy & config drift scripts
โ โโโ ๐ dashboard/ # Unified Operations Dashboard generator
โโโ ๐ backups/ # โณ Generated at runtime
โโโ ๐ drift_reports/ # โณ Generated at runtime
โโโ ๐ reports/ # โณ Generated at runtime (HTML dashboard lands here)
โโโ ๐ screenshots/ # Project evolution media
โโโ ๐ docs/ # Detailed phase-by-phase documentation
โโโ ๐ topology/ # Architecture diagrams
โโโ ๐ requirements.txt # Python dependencies
โโโ ๐ README.md # You are here!
- GNS3 + GNS3 VM running on VMware Workstation.
- Python 3.11+ installed on your host machine.
- Provide Images: You must legally obtain your own Cisco IOSv and IOSvL2 images (e.g., from a CML subscription) and import them into your GNS3 VM.
- Open Project: Open the provided
Network_Automation.gns3project file within GNS3 to load the full multi-branch topology. The devices should map to your imported images. - Verify Access: Ensure SSH is enabled with a local admin account configured on every router and switch in the lab.
pip install -r requirements.txtEach script inside the scripts/ directory defines its own routers / switches list (host, port, device type). Update these IP addresses and ports to match your GNS3 topology exposures.
It is highly recommended to run any script directly from inside the scripts/ folder so that relative paths (../backups, ../reports) resolve perfectly.
cd scripts
# 1. Run Core Operations
python inventory/inventory.py
python backups/backup_configs.py
# 2. Run Audits & Monitoring
python monitoring/ospf_health_check.py
python monitoring/compliance_audit.py
python monitoring/interface_monitor.py
# 3. Run Automation Scenarios
python automation/deploy_vlans.py
python automation/config_drift.py
# 4. Generate the Dashboard
python dashboard/network_operations_dashboard_v2.py๐ Pro Tip: Open the generated
reports/network_operations_dashboard_v2.htmlin your favorite web browser to view the final result!
We documented our journey from zero to automated! Check out the phase docs below:
| ๐ Phase | ๐ Description |
|---|---|
| Phase 1 | GNS3 / VMware setup & Cisco IOSv image installation. |
| Phase 2 | Topology design, IP/VLAN addressing, automation planning. |
| Phase 3 | Building the lab, SSH bring-up, and IP reachability. |
| Phase 4 | The Netmiko automation scripts (backups, OSPF, drift). |
| Phase 5 | Evolution to the Unified Network Operations Dashboard V2. |
We're always looking to improve! Potential future directions:
- ๐ Live Flask Dashboard with auto-refresh capabilities.
- ๐ Slack/Email Alerts for compliance drops or OSPF neighbor failures.
- โฑ๏ธ Scheduled Execution (Cron / Task Scheduler) for zero-touch backups.
- ๐บ๏ธ Dynamic Topology Visualization layer.
- ๐ Git-Based Version Control for network configurations.
- ๐ REST API exposing the underlying inventory and health data.
Built and documented by Mayur Garje as a flagship CCNA-level network automation project, seamlessly combining Cisco IOS, GNS3, Python, and Netmiko.




