NOTE updated February 26, 2013: This post contains old information. I created a page that lists all the open-source network simulators listed in the post below. I will keep the page up-to-date. Please see the List of Open-Source Network Simulators page.
I’ve searched around and found a long list of potential solutions for an open-source network simulator. I listed the ones below that I think will fit my requirements. This list is based on only a quick look at each tool so I my comments below may not fully reflect the utility of each tool. I will have a detailed look at more than a few of these tools later.
Netkit
http://wiki.netkit.org/index.php/Main_Page
A command-line based simulation tool that uses user-mode Linux to create the virtual machines so a full Linux OS can run on each machine. It has good documentation and the project’s web site has a long list of interesting lab scenarios to practice, with documentation for each scenario. It also appears to be actively supported by a small community and has been updated recently.
VNX and VNUML
http://neweb.dit.upm.es/vnxwiki/index.php/Main_Page
http://neweb.dit.upm.es/vnumlwiki/index.php/Main_Page
Similar to Netkit, but uses a different scripting language to create the virtual network. Also supports chaining multiple physical workstations together to support larger virtual labs that operate across multiple physical workstations. It has good documentation. It is actively supported by a small community and has been updated recently.
V.I.M.I.N.A.L.
https://sourceforge.net/projects/viminal/
Based on KVM and LXD, this tool also has a few well-documented labs. It comes packaged as a LiveDVD so nothing needs to be installed on the PC workstation. (updated May 30, 2019)
IMUNES
Integrated Multiprotocol Network Emulator/Simulator
http://imunes.tel.fer.hr/imunes/
This simulator has graphical interface. It is based on the FreeBSD operating system. It looks like it has not been updated since 2005.
Cloonix
http://clownix.net/
This tools uses KVM to create virtual machines. It has been recently updated and also includes a Vyatta UML file system. The developer seems to have put a lot of effort into this tool.
GNS3
http://www.gns3.net
GNS3 is a graphical network simulator that allows simulation of networks. It can use different virtual-machine software such as VMWare, VirtualBox or qemu. It is focused mostly on supporting Cisco and Juniper software and the user must supply his own Cisco or Juniper images. But, GNS3 also has a Vyatta VMWare appliance as part of system so it could be used as an open-source routing simulator. It is supported by a small team of developers but has a large user base, made up mostly of people studying for Cisco exams.
Virtualsquare
http://wiki.virtualsquare.org/wiki/index.php/Main_Page
An interesting effort to create a virtual network tool. The developers are building their own tools to create virtual networks, instead of re-using tools available in the common Linux distributions. There are no prepared labs available so users will have to learn the tool before creating lab scenarios for themselves. The project is well documented. It looks like a research project and Linux kernel or programming skills may be required to fully appreciate it. Virtualsquare is also the source of the Virtual Distributed Ethernet (VDE) program. VDE is used in some of the other network simulation tools.
Psimulator
http://code.google.com/p/psimulator/
Simple graphical simulator for Linux and Cisco virtual machines, written in Java. I wonder how functional it is.
Do you consider to add Mininet to this list ?
http://yuba.stanford.edu/foswiki/bin/view/OpenFlow/Mininet
The mininet way of running an instance of a machine is like LXC?
I have not seen clearly (with a quick look) the way mininet works.
The use of openvswitch is a good idea.
Yes. I am interested in SDN and will try Mininet sometime soon.
Thanks,
Brian