Virtual Router

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.

Documentation Back to Portfolio
The demo is opt-in and lazy-loaded. You choose whether to enable terminals, packet captures, and logs.
Live terminal + captures available

Click “Launch Interactive Demo” to start.

Full terminal integration
End-to-end protocol flow
Advanced Security
Built to handle pressure and speed
Core Systems

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

IPv4 / IPv6

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

Lease logic you can follow

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

IA_NA • IA_TA • IA_PD

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

IPv4 link resolution

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

IPv6 neighbor discovery

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

Router-grade command set

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
Protocols CLI & Usage Testing Approach

Ready to try it?

Launch the interactive demo or dive into the documentation.

View Docs