GNS3
GNS3
This will be a quite short article. I am continuing my look at suitable tools to help me simulate and model dynamic and distributed MANET. I discussed an outline of my requirements in this article Evaluating Network Simulation Tools.
I have so far looked at Common Open Research Emulator (CORE) and found a very promising tool for my research purposes. My next stop is the Graphic Network Simulator (GNS3). This is an open source program (GPL) that can simulate complex networks. It has a graphical interface and is cross platform including Windows, Linux and Mac. The latest version was available in the software centre of my Ubuntu 14.04 system so installation was a simple point and click.
It quickly became clear though that this tool was not at all suited to my needs.
Using the tool
GNS3 sets out to be a faithful representation of the routers and switches you might see in a large fixed infrastructure. It does this by running the complete OS of that router in a virtual machine or appliance as they term it. It is very much geared towards Cisco which makes sense as they are so ubiquitous in this area. This is very powerful if you want to faithfully simulate the routing set up or if you are studying for a Cisco exam. The trouble is that in order to run the Cisco IOS you need to get hold of an image and there is simply no legal way to do it. If you are a Cisco customer then you can login at their website and download the images but if you look at the licence they are only supposed to be run on the actual hardware. They are of course available in the seedier corners of the internet as well if you are not a customer.
You can certainly argue the case morally if you are a Cisco customer and you want to try something virtually before you roll out real hardware. You could feel vindicated if you are studying for a Cisco CCNA as well. The fact is though that you cannot use this tool without violating copyright. I have not heard of Cisco going after anyone and really it can only be good for their business in the long run, but still.
This places the use of this tool on shaky ground for me as I do not want to have any issues against publishing findings and having others repeat. I also have no real need to simulate the routers themselves in this much detail. I am not Cisco trained and would be at a loss to set up a simple network on their routers.
Alternatives
GNS3 is not entirely bound to Cisco though and it does have a download page that gives some open appliances to try. These seem to be a collection of different Linux or BSD based distributions. I tried downloading a Linux Core Layer 3 switch appliance. I was able to then drag these appliances on to the canvas and make a link between them. After booting up the system it is then necessary to configure each instance manually. The tool does not set up IP addresses or routing in the same easy way that CORE did. Of course this makes the simulation more real but considerably more time consuming to set up.
Each appliance is run as a virtual machine and whilst they are generally lightweight it would soon add up if you wanted tens or even hundreds of nodes. It would take a very powerful machine to simulate a large topology.
Network Types
Once you begin putting nodes on the network it is possible to link them all together using the connection tool. This is the same as putting an Ethernet cable between them. There does not appear to be any wireless connections available and certainly no MANET. It does not even seem to be possible to put any kind of parameters on the link such as delay, jitter or packet loss. It would be possible to do this on the device using something like netem on the Linux kernel but that would be a very manual approach.
Conclusion
Clearly GNS3 is not suited for my needs. That is not to say it is a bad tool though. From what I have seen I would certainly recommend it to anyone who wants to practice with Cisco routers but does not have access to the physical hardware. The tool itself seems well laid out and creating a topology is drag and drop simple. If you can get hold of the Cisco IOS images then give it a try but for me I will not be using it going forward.