Open-Source Network Simulators

This is a list of open-source network simulators and network emulators that run on Linux or BSD. Please post a comment on this page to let me know about any other open-source network simulation tools I did not include in this list.

Cloonix

Open-Source Network Simulators—CORE—Cloonix—GNS3—IMUNES_sed

The ​​Cloonix​​ network simulator provides a relatively easy-to-use graphical user interface. Cloonix uses QEMU/KVM to create virtual machines. Cloonix provides a wide variety of pre-built filesystems that can be used as virtual machines and provides simple instructions for creating other virtual machine root filesystems. Cloonix has an active development team, who update the tool every two or three months and who are very responsive to user input.

Please ​click here to see my posts about Cloonix​.

Cloonix web site: ​​http://clownix.net​

CORE

Open-Source Network Simulators—CORE—Cloonix—GNS3—IMUNES_sed_02

The ​​Common Open Research Emulator (CORE)​​ provides a GUI interface and uses the Network Namespaces functionality in Linux Containers (LXC) as a virtualization technology. This allows CORE to start up a large number of virtual machines quickly. CORE supports the simulation of fixed and mobile networks.

CORE will run on Linux and on FreeBSD. CORE is a fork of the IMUNES network simulator, and it adds some new functionality compared to IMUNES.

Please ​click here to see my posts about the CORE Network Emulator​.

CORE web site: ​​http://cs.itd.nrl.navy.mil/work/core/index.php​

GNS3

Open-Source Network Simulators—CORE—Cloonix—GNS3—IMUNES_linux_03

​GNS3​​ is a graphical network simulator focused mostly on supporting Cisco and Juniper software. GNS3 has a large user base, made up mostly of people studying for Cisco exams, and there is a lot of information freely available on the web about using GNS3 to simulate Cisco equipment.

GNS3 can also be used to simulate a network composed exclusively of VirtualBox and/or Qemu virtual machines running open-source software. GNS3 provides a variety of prepared open-source virtual appliances, and users can create their own.

Please ​click here to see my posts about GNS3​.

GNS3 web site: ​​http://www.gns3.com​

IMUNES

Open-Source Network Simulators—CORE—Cloonix—GNS3—IMUNES_ide_04

A team of researchers at the University of Zagreb developed the ​​Integrated Multi-protocol Network Emulator/Simulator (IMUNES)​​ for use as a network research tool. IMUNES runs on both the FreeBSD and Linux operating systems. It uses the kernel-level network stack virtualization technology provided by FreeBSD. It uses Docker containers and Open vSwitch on Linux.

IMUNES supports a graphical user interface. It works well and offers good performance, even when running IMUNES in a VirtualBox virtual machine.

Please ​click here to see my posts about IMUNES​.

IMUNES web site: ​​http://www.imunes.net​​​ or ​​https://github.com/imunes​

Marionnet

Open-Source Network Simulators—CORE—Cloonix—GNS3—IMUNES_ide_05

​Marionnet​​ is called a “virtual network laboratory” on its website. It allows users to define, configure and run complex computer networks on a host computer. It can simulate an Ethernet network complete with computers, routers, hubs, switchs, cables, and more. Marionnet seems designed to be used as an education tool and has an attractive graphical user interface, and some sample practice lab configurations. Marionnet does not provide a user manual but the user interface is fairly intuitive.

Please ​click here to see my posts about the Marionnet network simulator​.

Marionnet web site: ​​http://www.marionnet.org/EN/​

Mininet

Open-Source Network Simulators—CORE—Cloonix—GNS3—IMUNES_sed_06

​Mininet​​ is designed to support research in Software Defined Networking technologies. It uses Linux network namespaces as its virtualization technology to create virtual nodes. The web site indicates that the tool can support thousands of virtual nodes on a single operating system. Mininet is most useful to researchers who are building SDN controllers and need a tool to verify the behavior and performance of SDN controllers. Knowledge of the Python scripting language is very useful when using Mininet.

The Mininet project provides excellent documentation and, judging from the activity on the ​​Mininet mailing list​​, the project is actively used by a large community of researchers.

Please ​click here to see my posts about Mininet​.

Mininet web site: ​​http://www.mininet.org​

Netkit

Open-Source Network Simulators—CORE—Cloonix—GNS3—IMUNES_linux_07

​Netkit​​ is a command-line based simulation tool that uses user-mode Linux to create the virtual machines. 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 was last updated in 2011.

Please ​click here to see my posts about Netkit​.

Netkit web site: ​​http://wiki.netkit.org​

Psimulator2

Open-Source Network Simulators—CORE—Cloonix—GNS3—IMUNES_linux_08

​Psimulator2​​ is a basic graphical network simulator that may be used to demonstrate basic IP networking concepts to students. It is not a fully-functional simulator because only a small sub-set of normal networking functionality is supported on each emulated node.

It will run on any system that supports Java; including Windows, Mac OS, and Linux. It offers the ability to “capture” and “play back” data traffic generated by the simulation. The packets are displayed on the GUI as envelopes that move through the network.

Please ​click here to see my posts about Psimulator2​.

Psimulator2 web site: ​​http://code.google.com/p/psimulator/​

Virtualsquare

​Virtualsquare​​​ is 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.

I have not yet tried to use Virtualsquare.

Virtualsquare web site: ​​http://wiki.virtualsquare.org/wiki/index.php/Main_Page​

VNX and VNUML

Open-Source Network Simulators—CORE—Cloonix—GNS3—IMUNES_sed_09

​VNX​​ supports two different virtualization techniques and uses an XML-style scripting language to define the virtual network. It also supports chaining multiple physical workstations together to support distributed virtual labs that operate across multiple physical workstations. It is supported by a small community and has been updated within the past year.

VNX replaces ​​VNUML​​. The old VNUML web site still has sample labs and other content that would be useful when using VNX.

Please ​click here to see my posts about VNX and VNUML​.

VNX web site: ​​http://www.dit.upm.es/vnx​


+++++++++++++++++++++++++++++++++++++++++++++++++


​​Network simulators and virtualization - the list​​


C

Cloonix

web: ​​http://clownix.net/​

Description: Cloonix is a Linux router and host simulation platform. It fully encapsulates application, host, and network l2 and l3 into a relatively easy-to-use simulation GUI. Network delay and loss characteristics can be configured per link. It provides support for running kvm or UML virtual machines configured into an arbitrary complex network configuration. It is possible to run a 12 router UML simulation on a small x86 host (a P4 with 512 MB RAM). 32- and 64-bit KVM machines are provided.

Common Open Research Emulator

Web: ​​http://www.nrl.navy.mil/itd/ncs/products/core​

Description: The Common Open Research Emulator (CORE) is a tool for emulating networks on one or more machines. You can connect these emulated networks to live networks. CORE consists of a GUI for drawing topologies of lightweight virtual machines, and Python modules for scripting network emulation.


Cisco IOL (Cisco IOS on Linux)

web: learningnetwork.cisco.com is using

Description: Cisco IOS on Linux, also known as Cisco IOL, is an IOS compiled for Linux x86 platform, and, again, it is released for internal Cisco use only. Sometimes Cisco IOL is called Cisco IOU because IOU is the most famous. IOL is Cisco's internal software.


Cisco IOU (Cisco IOS on UNIX (IOU))

web: learningnetwork.cisco.com  is using ...  IOU is Cisco's internal software.

Description:  Cisco IOS on UNIX (IOU) is a fully working version of IOS that runs as a user mode UNIX (Solaris) process. IOU is built as a native Solaris image and run just like any other program. IOU supports all platform independent protocols and features. IOU is Cisco's internal software.



G

GNS3

web:​​ http://www.gns3.net/​

Description: GNS3 is an open source software (under GPL) that simulate complex networks while being as close as possible to the way real networks perform. All of this without having dedicated network hardware such as routers and switches (focusing no Cisco and Juniper).

Our software provides an intuitive graphical user interface to design and configure virtual networks, it runs on traditional PC hardware and may be used on multiple operating systems, including Windows, Linux, and MacOS X.

GNS3 can also be used to simulate a network composed exclusively of VirtualBox and/or Qemu virtual machines running open-source software. GNS3 provides a variety of prepared open-source virtual appliances, and users can create their own.


I

IMUNES

web:​​ http://www.imunes.net/​

Description: As invaluable tools in networked and distributed systems research, network emulators offer a viable alternative to live experimental / testbed networks. We are developing a realistic network topology emulation / simulation framework based on the FreeBSD operating system kernel partitioned into multiple lightweight virtual nodes, which can be interconnected via kernel-level links to form arbitrarily complex network topologies. The concept of using virtual nodes inside a kernel for fast network emulation is not entirely new, yet previously published work generally advocated the implementation of kernel-level virtual nodes with capabilities limited to only certain simple functions, such as passing of network frames from one queue to another based on a static precomputed path. We are basing our work on a thesis that virtual nodes, which could offer the identical rich set of capabilities as the standard kernel does, can be implemented very efficiently by reusing the existing OS kernel code. Our model therefore not only provides each node with an independent replica of the entire standard network stack, thus enabling highly realistic and detailed emulation of network routers; it also enables each virtual node to run a private copy of any unmodified user-level application, including routing protocol daemons, traffic generators, analyzers, or application servers. Furthermore, in later development phases we expect to enable each virtual node to support multiple network protocols concurrently, such as both IPv4 and IPv6, which would bring us a step closer to allowing for emulation of true multiprotocol networked environments.


M

Marrionet

web: ​​http://www.marionnet.org/​

Description: Marionnet is a virtual network laboratory: it allows users to define, configure and run complex computer networks without any need for physical setup. Only a single, possibly even non-networked GNU/Linux host machine is required to simulate a whole Ethernet network complete with computers, routers, hubs, switches, cables, and more. Support is also provided for integrating the virtual network with the physical host network.


Mininet

web: ​​http://mininet.org/​

Description:  Mininet creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command. 

Mininet is designed to support research in Software Defined Networking technologies. It uses Linux network namespaces as its virtualization technology to create virtual switches and virtual nodes. The web site indicates that the tool can support thousands of virtual nodes on a single operating system. Mininet is most useful to researchers who are building SDN controllers and need a tool to verify the behavior and performance of SDN controllers. Knowledge of the Python scripting language is very useful when using Mininet.


MLN

web: ​​http://mln.sourceforge.net/index.php​

Description: MLN (Manage Large Networks) is a virtual machine administration tool designed to build and run virtual machine networks based on Xen, VMware Server and User-Mode Linux. It is ideal for creating virtual network labs for education, testing, hosting or simply playing around with virtual machines.



N

NetKIT


NetSim

web: http://tetcos.com/

Description: NetSim is a network simulation software for protocol modeling and simulation, network R & D and defence applications. It allows you to analyze computer networks with unmatched depth, power and flexibility.


NS-2

web: ​​http://nsnam.isi.edu/nsnam/index.php/User_Information​​​ , ​​http://nsnam.isi.edu/nsnam/index.php/Main_Page​

Description: Ns is a discrete event simulator targeted at networking research. Ns provides substantial support for simulation of TCP, routing, and multicast protocols over wired and wireless (local and satellite) networks.

Ns began as a variant of the REAL network simulator in 1989 and has evolved substantially over the past few years. In 1995 ns development was supported by DARPA through the VINT project at LBL, Xerox PARC, UCB, and USC/ISI. Currently ns development is supported through DARPA with SAMAN and through NSF with CONSER, both in collaboration with other researchers including ACIRI. Ns has always included substantal contributions from other researchers, including wireless code from the UCB Daedelus and CMU Monarch projects and Sun Microsystems.


NS-3

web: ​​http://www.nsnam.org/​

Description: Ns-3 is a discrete-event network simulator for Internet systems, targeted primarily for research and educational use. ns-3 is free software, licensed under the GNU GPLv2 license, and is publicly available for research, development, and use.

The goal of the ns-3 project is to develop a preferred, open simulation environment for networking research: it should be aligned with the simulation needs of modern networking research and should encourage community contribution, peer review, and validation of the software.



O

Omnet++

web: ​​http://www.omnetpp.org/​

Description: OMNeT++ is an extensible, modular, component-based C++ simulation library and framework, primarily for building network simulators. "Network" is meant in a broader sense that includes wired and wireless communication networks, on-chip networks, queueing networks, and so on. Domain-specific functionality such as support for sensor networks, wireless ad-hoc networks, Internet protocols, performance modeling, photonic networks, etc., is provided by model frameworks, developed as independent projects. OMNeT++ offers an Eclipse-based IDE, a graphical runtime environment, and a host of other tools. There are extensions for real-time simulation, network emulation, alternative programming languages (Java, C#), database integration, SystemC integration, and several other functions.


Opencontrail

web: ​​http://www.opencontrail.org/​

Description: Contrail from ​​Juniper Networks​​​ is an open cloud network automation product that uses ​​software-defined networking (SDN)​​ technology to orchestrate the creation of virtual networks with high scalability. It brings together a scale-out framework and physical routers and switches to scale infrastructures beyond data center of cloud boundaries in order to offer workload mobility in a hybrid environment.


Opnet Modeler - new - Riverbed Modeler

web: ​​http://www.riverbed.com/products/performance-management-control/network-performance-management/network-simulation.html​

Description:  Riverbed Modeler - discrete event-simulation engine for analyzing and designing communication networks. Riverbed Modeler comprises of a suite of protocols and technologies with a sophisticated development environment. By modeling all network types and technologies (including VoIP, TCP, OSPFv3, MPLS, IPv6, and more), Riverbed Modeler analyzes networks to compare the impact of different technology designs on end-to-end behavior. Modeler lets you test and demonstrate technology designs before production; increase network R&D productivity; develop proprietary wireless protocols and technologies; and evaluate enhancements to standards-based protocols

Licence: Commercial




P

Packet Tracer

web:​​ https://www.netacad.com/web/about-us/cisco-packet-tracer​

Description: Cisco Packet Tracer is a powerful network simulation program that allows students to experiment with network behavior and ask “what if” questions. As an integral part of the Networking Academy comprehensive learning experience, Packet Tracer provides simulation, visualization, authoring, assessment, and collaboration capabilities and facilitates the teaching and learning of complex technology concepts.

Packet Tracer supplements physical equipment in the classroom by allowing students to create a network with an almost unlimited number of devices, encouraging practice, discovery, and troubleshooting. The simulation-based learning environment helps students develop 21st century skills such as decision making, creative and critical thinking, and problem solving. Packet Tracer complements the Networking Academy curricula, allowing instructors to easily teach and demonstrate complex technical concepts and networking systems design.

The Packet Tracer software is available free of charge to Networking Academy instructors, students, alumni, and administrators who are registered NetSpace users.

Licence: Free for Cisco Netacad program members


Psimulator2

web: ​​https://code.google.com/p/psimulator/​

Description: Psimulator2 is simple graphical linux and cisco network simulator created for education purposes - learning IP networks basis. It allows building virtual network consisted of linux and (basic) cisco routers and simple switches. Virtual network can be easily and quickly created in graphical user interface. Network devices (linux and cisco routers) are configured via command line over telnet protocol. Telnet client is included in GUI or different client (putty, linux telnet) can be used. GUI is designed to capture and display packets in virtual network (like Wireshark). Virtual network can be connected to real network.



U

Unified Networking Lab (UNetLab​i​)

web: http://www.unetlab.com/

Description: UNetLab can be considered the next major version of iou-web, but the software has been rewritten from scratch. The major advantage over GNS3 and iou-web itself is about multi-hypervisor support within a single entity. UNetLab allows to design labs using IOU, Dynamips and QEMU nodes without dealing with multi virtual machines: everything run in- side a UNetLab host, and a lab is a single file including all information needed.

V

VIRL

web:

Description: 

Virtualsquare

web:​​ http://wiki.virtualsquare.org/wiki/index.php/Main_Page​

Description:  Virtual Square is the name of a project that includes several software tools and libraries. Its main goal is to create an unified environment that allows virtual machines, systems and networks to communicate and interact.


VNX and VNUML

web: ​​http://web.dit.upm.es/vnxwiki/index.php/Main_Page​

Description: VNX is a general purpose open-source virtualization tool designed to help building virtual network testbeds automatically. It allows the definition and automatic deployment of network scenarios made of virtual machines of different types (Linux, Windows, FreeBSD, Olive or Dynamips routers, etc) interconnected following a user-defined topology, possibly connected to external networks.

VNX has been developed by the Telecommunication and Internet Networks and Services (RSTI) research group of the Telematics Engineering Department (DIT) of the Technical University of Madrid (UPM).

VNX is a useful tool for testing network applications/services over complex testbeds made of virtual nodes and networks, as well as for creating complex network laboratories to allow students to interact with realistic network scenarios. As other similar tools aimed to create virtual network scenarios (like GNS3, NetKit, MLN or Marionnet), VNX provides a way to manage testbeds avoiding the investment and management complexity needed to create them using real equipment.