A deliberate router, built from scratch.
A from-scratch C++ routing platform built to explore networking without shortcuts. Core protocols are implemented with depth and intent, with security treated as a requirement — not a checkbox.
Click “Launch Interactive Demo” to start.
Protocols & Features
Each protocol here is built in full, tested in real-world conditions, and designed to work together as one system. This section gives a closer look at the core features that shape its behavior.
EIGRP
Adjacencies form cleanly, queries travel with intent, and routes converge without surprises — even when links flap.
- Adjacency discipline & reliable transport
- Real query/reply handling under pressure
- Summarization & stub behavior that actually help
DHCPv4
Requests get the right answer for the right reasons. Conflicts are handled, leases are tracked, and intent is explicit.
- DISCOVER → ACK flows you can trace
- Conflict checks & clean decline handling
- Config choices that are visible, not magic
DHCPv6
Authentication isn’t optional here. Relays, reconfigure, and lease state behave as the spec expects — and you can see why.
- Delayed Auth & RKAP done for real
- Relay chains with preserved context
- Reconfigure that’s verifiable
ARP
Requests are answered instantly, caches stay fresh, and stale entries never linger. Gratuitous updated handled with care.
- Strict cache validation
- Graditude ARP handling & defense
- Zero-delay resolution for active neighbors
NDP
Duplicate Address Detection, neighbor reachability and router advertisements — all spec-accurate and visible in real time.
- DAD for duplicate address detection
- Accurate reachability tracking
- RFC-clean RA/RS behavior supporting SLAAC
CLI
Commands is structured, supports tab-completion, '?' for help, and designed for speed without losing clarity.
- Hierarchical configuration
- Context-aware help & completion
- Immediate feedback on changes
About the Project
Built to learn, not to guess
I started the Virtual Router out of pure curiosity — to learn networking at a level books and labs can’t reach. So I implemented the protocols myself: reading the RFCs, turning them into working systems, and stress‑testing the behavior.
Deliberate over “good enough”
As it grew, the gaps in typical gear stood out — skipped auth, partial implementations, and architectures that bleed efficiency. This build takes the opposite path: protocols implemented on purpose, with security and completeness as requirements.
One system, not a pile of features
Everything is placed to serve the whole. Behavior is explicit, testable, and resilient under real conditions — more than “it runs,” it behaves the way it should when it matters.
Every part reinforces the rest; nothing is left open‑ended. The result isn’t a collection of parts — it’s one complete, deliberate system.
At a Glance
- From‑scratch C++ routing platform
- EIGRP (IPv4/IPv6): clean adjacencies, real query/reply handling, SIA discipline
- DHCPv4 & DHCPv6: relay chains, IA_NA / IA_TA / IA_PD, verifiable flows
- Security as a requirement: DHCPv6 Delayed Auth + RKAP implemented
- Designed for observability: explicit decisions and repeatable tests
Ready to try it?
Launch the interactive demo or dive into the documentation.
Interactive Demo
Choose what to load. You can change these inside the demo later.