A full-stack network diagnostic platform for Cisco environments. Run ping, traceroute, DNS, port scans, SNMP queries, CDP/LLDP discovery, and ARP lookups across hundreds of devices from a single web interface — with credential management, VRF support, and an integrated SSH terminal.
| Layer | Technology |
|---|---|
| Frontend | Svelte, Vite, xterm.js (WebGL) |
| Backend | FastAPI, Uvicorn (ASGI) |
| Database | SQLite (WAL mode) with aiosqlite |
| Network | icmplib, Netmiko, pysnmp-lextudio, pyATS/Genie |
| SSH Terminal | asyncssh over WebSocket |
| Export | fpdf2 (PDF reports) |
┌─────────────────────────────────────────────┐
│ Svelte Frontend (Vite) │
│ ScanForm │ Results │ SSH Terminal │ Creds │
├─────────────────────────────────────────────┤
│ FastAPI Backend (async) │
├──────┬──────┬───────┬──────┬───────┬────────┤
│ Ping │ DNS │ SNMP │ CDP/ │ ARP │ SSH │
│ │ │ v2/v3 │ LLDP │ │ Cmds │
├──────┴──────┴───────┴──────┴───────┴────────┤
│ Credential Manager │ Test Executor │
│ (Keychain-backed) │ (semaphore: 20) │
├─────────────────────────────────────────────┤
│ SQLite (WAL mode) │
└─────────────────────────────────────────────┘
# Clone
git clone https://github.com/bradmccloskey/cisco-network-test.git
cd cisco-network-test
# Backend
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
uvicorn backend.main:app --reload
# Frontend (separate terminal)
cd frontend
npm install && npm run dev
Open http://localhost:5173 in your browser.
cisco-network-test/
├── backend/
│ ├── main.py # FastAPI app, middleware, lifespan
│ ├── db/
│ │ ├── connection.py # DB init, migrations
│ │ └── schema.sql # SQLite schema
│ ├── routers/ # API endpoints
│ │ ├── scan.py # Scan execution & results
│ │ ├── credentials.py # Credential CRUD
│ │ ├── ssh.py # SSH command execution
│ │ ├── ssh_terminal.py # WebSocket terminal
│ │ ├── history.py # Scan history
│ │ ├── vrf.py # VRF management
│ │ └── export.py # PDF export
│ ├── services/ # Business logic
│ │ ├── network_tests.py # Ping, traceroute, DNS, port scan
│ │ ├── snmp_service.py # SNMP v2c/v3 queries
│ │ ├── cdp_lldp_service.py # Neighbor discovery
│ │ ├── arp_service.py # ARP table extraction
│ │ ├── ssh_service.py # Remote command execution
│ │ ├── credential_manager.py # Keychain integration
│ │ └── test_executor.py # Async execution with semaphore
│ └── models/ # Pydantic schemas
├── frontend/
│ └── src/lib/
│ ├── ScanForm.svelte # Target input & test selection
│ ├── ScanResults.svelte # Real-time result display
│ ├── SSHPage.svelte # Terminal UI
│ └── CredentialsPage.svelte # Profile management
└── requirements.txt
| Test | Description |
|---|---|
| Ping | ICMP connectivity with RTT, packet loss, jitter |
| Traceroute | Multi-hop path discovery with reverse DNS |
| DNS | Forward/reverse lookups, multiple record types |
| Port Scan | TCP probe on SSH, Telnet, HTTP/S, SNMP, NETCONF |
| SNMP | System info, interface stats, uptime, hostname |
| CDP/LLDP | Layer 2 neighbor discovery |
| ARP | ARP table extraction from devices |