In the beginning (2005) there was Dynamips, a Cisco router emulator written by Christophe Fillot. It emulates 1700, 2600, 3600, 3700, and 7200 hardware platforms, and runs standard IOS images. You could run Dynamips from the command line with appropriate command line switches and have an emulated Cisco router running on your PC. Nice! But not very useful, having just one router running on a PC. To get a network running, you would have to start two instances of the program with a bunch of carefully constructed command line options. Oh, and it ran your CPU at 100%.
Then (2006) came version 0.2.5, which made it possible to run Dynamips in “hypervisor” mode, which allowed multiple routers to be simulated in a single instance and added an “Idle-PC” option, which allowed you to fine tune your PCs CPU utilisation. But more importantly the “hypervisor” feature allowed Greg Anuzelli to put a front end to all those command line options with his program called Dynagen. This is where the “.net” file format was created, and GNS3 uses the dynagen libraries. In fact, the console dock at the bottom of the standard GNS3 screen is an adapted Dynagen console.
Now Dynagen was good, but maintaining your .net file was a nightmare – one single mistake in a connection definition and the hypervisor wouldn’t start.
September 2007 saw the first release of GNS3 – version 0.3. New names like Jeremy Grossmann and Xavier Alt were added to the now fairly large co-operative of contributors. Suddenly, we could drag icons around a screen and join routers with click-and-drag options, and GNS3 would go and build the appropriate .net file for Dynagen to do its magic with Dynamips which would drive the routers. And GNS3 added some extra config to the .net file (now called topology.net by default) so it could remember where all the objects had been placed and re-draw the screen when you loaded your projet the next time.
And in another part of the world around 2007, Mirnshi developed a little Application called VPCs which gave us simulated PCs that could easily tie in with our Virtual GNS3 networks.
Since then, each new version of GNS3 has added functionality to the previous version to an ever increasingly grateful community of users, but still many users were/are having difficulties installing and maintaining GNS3, especially in a Windows environment.
So that’s why I decided to run my GNS3 in a Virtual Machine running on Linux. Once I’d got this far, I customised my environment with script files that launched the VPCs application, printed some instructions and opened a topology.net file that was appropriate to the instructions. Once done, I decided to make the VM publicly available, and launched this site in November 2010 to do just that.