A few days ago, it appeared to me that a virtual router software did not exist at all. Expensive Cisco software for simulating Cisco equipment exists, but it is used solely for their cert exams and labs. Router companies only offer blank/skeleton versions of their router's web configuration pages, but it does not offer a way to test routers without actually breaking them. Enter vRouter.

vRouter, if the project ever takes off, is an open-source project written in Qt intended to develop virtual networks based off real hardware from routers of every tier. Whether you want to test the stability of the newest DD-WRT firmware for your exact router model or need to assess a new configuration before deploying it to production routers, vRouter strives to replicate the workings of the vast variety of routers out there to make your job easier.

vRouter can let you build a network of any size and integrate it with existing networks. You can bridge your virtual network with virtual machines running in common virtual machine software (initially, VirtualBox), or you can bridge it directly with your physical NIC using an NDIS 6 driver. This allows you to manage your network as if it were a real one: if you wanted to, you could access the virtual router's web interface as if you were configuring an actual router.

There are, of course, professional applications for vRouter that make it economically feasible, such as for support contracts. vRouter's robust networking capabilities make it an essential tool for security researchers, network administrators, students, and those wishing to move toward full virtualization. Since it is free, anyone can contribute, and those companies that would like to pay for features end up benefiting the entire project, as those features become available to the entire project, not just to the customer (except, of course, if it is for a highly specific task or is part of a classified project, in which the organization gets a personalized, private branch of the source tree).

Everyone deserves the opportunity to enhance their experience with Internet connectivity and networking; it is no doubt that routers are restarted daily for simply not understanding why they're not working as intended. What's more, the people who actually take their time to troubleshoot the problem are hesitant to flash new firmware, in fear that their router will be bricked forever, a far cry from simply having intermittent Internet connectivity. vRouter quells these fears: does the firmware work? Will a tiny change in configuration throw off the stability of the entire router? A router is not a magical black box after all; it is a machine that can be tamed, like the computer that you are using right now.

Naturally, there are immense obstacles to the creation of vRouter, especially in the realm of virtualizing each and every variation of router specifications. Routers are embedded applications with customized PCBs, often lacking any standard firmware interface: whereas PCs have BIOS or UEFI, there is no equivalent for routers. The solution is to create a generalized model that can be fit with minor tweaks to most models for a certain brand, product family, or chipset. Proprietary interfaces are abound, and reverse engineering will not be uncommon to make virtual versions of all these routers a reality. Some routers use MIPS32, others use ARM, and some even have MiniPCI slots for expansion.

The bright side is that due to the extensive use of open-source software by a number of router manufacturers such as Linksys and Netgear, they are legally obligated to release the entire source code for their firmware, absolutely free of charge. This means that opening up firmware in IDA Pro is absolutely not a requirement, and we can use what we know from the source to virtualize the hardware based on how the software expects it to work, along with spec sheets, effectively opening the way for mass virtualization of routers.

Finally, while the word "router" is most mentioned in this proposal, keep in mind that the target is all network equipment, including switches, firewalls, and load balancers. Virtual machines and physical network cards can be placed on the network.

After initial working versions, the roadmap would include packet tracing/capturing, saving the state of a network, and so many other things I can't even think right now.

Build your dream network, and never brick a router again. Welcome to the world of vRouter.
Because responding inline looks like a lot of work:


Tari wrote:
Because responding inline looks like a lot of work:



I have never heard of Open vSwitch, and thank you for introducing me to this. It definitely looks like a lightning-fast switch for bridging virtual machines.

However, I'm proposing emulating existing routers, rather than making my own, using a graphical user interface to help users make their network. Moreover, I'm designing vRouter to be primarily for experimental purposes rather than for production. I will make a mock-up to help you understand.
While the software does look awesome, I have looked at some similar stuff in the past and have a couple quick thoughts.

The biggest thing I can think of is how this software will compare to GNS3, already available for free and probably the standard non-Cisco source for network simulations. Its biggest limitation is a lack of Layer 2 support, but if you are trying to build up router configs and not switches, this shouldn't be too much of an issue.

The other software it will have to compete against in the Unified Networking Lab. I don't have as much experience with this software, but wanted to make you aware of it.

For people looking to work on certifications, for CCNA R/S, the general recommendation is Packet Tracer. It may not be as full featured as the others (I have used it and know that there are certain commands missing), but it is also lighter on resources than GNS3, UNL, or VIRL (Cisco's paid network simulator).

Also, if this is software that you want to make truly available, there will be legal restrictions to deal with as well. You can build the platform that is capable of emulating Cisco IOS for example, but will not be allowed to distribute code with it. As such, people will have to still source the code in a way that is legal to them. It is the same reason that the emulators for calculators you see require ROMs to run and are not just a download and run.

This is an ambitious project, but if you believe that you can set yourself apart from solutions already available and overcome these obstacles, I am excited to see what can come of it.
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum