IBN Platform
In development Solo project · Cisco IOSvL2 labA network operations console for Cisco IOS switches. The operator writes what they want in plain language; a language model I fine-tuned on a purpose-built dataset produces the IOS commands together with their rollback path, and the system applies them to real hardware, with a pre-change snapshot and one-click rollback.
“On SW1, create a VLAN with ID 99 named Guest.”
configure terminal
vlan 99
name Guest
end
configure terminal
no vlan 99
end
If the model cannot produce a valid rollback for a change, the system refuses to execute it. Before anything is applied there is a second verification pass at temperature zero, and the device's current running-config is snapshotted.
Problem
Changing configuration on network gear depends on CLI recall, and a single wrong line can cut management access. Reverting a change is usually manual and risky.
Approach
Rather than relying on a general-purpose model, I fine-tuned a small one on a dataset built from real network scenarios so its output follows a fixed, parseable format. Before generation, the device's live state is pulled over SNMP and fed to the model so its answer is grounded in the actual network.
My role
I built this one on my own, end to end: system design, dataset construction, model training, and implementation from the network layer up to the UI. Part of the coding was done with AI tooling; the architecture, prompt engineering, safety layers and validation against real hardware are my own work.
Architecture
- Next.js application with 17 API routes over Prisma and SQLite
- Standalone socket.io service for live events: chat, topology, telemetry, terminal
- SSH/Telnet driver supporting legacy IOS key-exchange algorithms
- Topology discovery via BFS traversal of the CDP neighbour table
- Local model served through llama.cpp with Q4_K_M quantisation
Model training
- Base: Qwen2.5-7B-Instruct, 4-bit QLoRA fine-tuning with Unsloth
- Dataset generated by my own scripts; after cleaning: 21,240 training and 1,117 validation samples
- Output: a merged model plus a GGUF build that runs locally on a consumer GPU
Challenges
- Concurrency: a per-device lock and a single-flight queue for the model, so two changes never land on one switch at once
- Parsing model output through three fallback strategies, because the response format is not always uniform
- Connecting to older IOS images that will not negotiate with modern SSH defaults
Status
Running and tested in a personal lab with two Cisco IOSvL2 switches, including creating and rolling back a VLAN on live hardware. It is single-user, has no authentication layer, and is not production-ready.