The page provides a summarized and updated overview of simulation and virtualization tools suitable for the practice of networking educators, trainers or researchers.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Updates: 11/2023 (Containerlab), 07/2021 (Cisco dCloud) 06/2021 (NetEm), 05/2021 (Mininet WiF, GloMoSim, NAB, J-Sim, LTE-Sim), 03/2021 (Kathara, CML)
Note: Good source available at http://www.brianlinkletter.com/open-source-network-simulators/
A
Antidote (NRE Labs) (new)
web: https://antidoteproject.readthedocs.io/en/latest/ , https://labs.networkreliability.engineering/
Description: Antidote is a community initiative to democratize interactive, dependency-free learning. It is the core of the NRE Labs project, which combines the Antidote platform with a specific curriculum built to teach automation and Network Reliability Engineering principles. Together, NRE Labs teaches skills right in your web browser with real tools, code and network devices.
Often the first step to learning about network automation is the hardest: you need to setup complex virtual environments, labs, or worse risk experimenting in production. Antidote makes this first step a lot easier, by simply removing this initial barrier, and allowing the learner to focus only on the specific topic in question, without sacrificing any of the useful interactivity of a dedicated lab.
B
Boson Netsim Network Simulator
Web: https://www.boson.com/netsim-cisco-network-simulator
Purpose: Learning the Cisco IOS CLI
OS: Win
Licence: commercial, costs follow certification levels
Description: The Boson NetSim Network Simulator simulates Cisco Systems’ devices and is designed to aid the user in learning the Cisco IOS command structure. It offer set of labs whose number depend on the cert level. Actually (2020) it supports CCNA labs, ENCOR labs and ENARSI labs.
C
Cisco Modelling Labs (CML)
web:
- https://www.cisco.com/c/en/us/products/cloud-systems-management/modeling-labs/index.html
- https://developer.cisco.com/modeling-labs/
Purpose: practical configuration skills
Licence: commercial, but freely available over Devnet Sandbox (https://developer.cisco.com/)
Description: Cisco Modeling Labs is Cisco proprietary platform for network simulation. It allows for the creation of robust network topologies made up of nearly anything you can imagine. It supports virtual machine based devices using QCOW or KVM format, and can be tied into physical components by “bridging” the simulation to the real world. Tool runs on workstations and servers. CML use a variety of provided Cisco reference platforms to design and test your network. It Includes open-source images to enhance network simulation and Integrate other third-party KVM images using the included import tools.
Comes with different flavors
- For single user
- CML Personal: useful for certification study (199$), 20nodes max
- CML Personal Plus: 40 nodes max. (349$)
- For teams
- CML Enterprise up to 300 nodes (thousand of dollars)
- CML Higher Education: Designed for colleges, universities, and community colleges
Cloonix
web: http://clownix.net/
Purpose: practical configuration skiils, research
Description*): Cloonix is an open-source Linux router (using Linux VM (Virtual Machine) and contains installed Quagga/FRRouting daemon) and network emulator that works only under 64-bit Linux OS (under Windows OS Cloonix does not work even in VirtualBox). The emulator uses KVM (Kernel-based Virtual Machine)/QEMU (Quick EMUlator) virtualization. Cloonix allows to run many KVM/UML (User Mode Linux) based virtual machines (images are available online) interconnected through sockets to any complex network topology. As for the link technologies, Cloonix emulates several link interfaces including Ethernet LAN, NAT and Linux TAP interfaces. Latest version of Cloonix includes the OpenVSwitch. Cloonix natively supports the interconnection of several cloonix servers (c2c interface) for spread out and large-scale topologies. The use and control of the Cloonix emulator is possible either through its own command line interface (CLI) or through easy-to-use, graphical user interface (GUI) with drag-and-drop options.
The project page does not mention specific hardware requirements; however, CPU (Central Processing Unit) with VT-x and AMD-V support is required. Hardware supported virtualization is limited to 8 virtual-cores for each physical core, then the software virtualization is used (decrease of speed and performance). The installation process is easy and straightforward (tested under Ubuntu), storage requirements are low (main installation without images approximately 36MB).
Emulations of some Cisco appliances is supported (CSR-1000v), but not fully tested and the functionality is not guaranteed. Emulation of Juniper JunOS or firewall appliances is not mentioned.
.
Common Open Research Emulator
Web: http://www.nrl.navy.mil/itd/ncs/products/core
Description*): Core is a network emulator developed primarily for research purposes. It allows the user to emulate virtualized networks spread out on one or more physical machines. Core is a successor of another less known virtualization tool named Integrated Multiprotocol Network Emulator/Simulator (IMUNES). As the VM emulation, a lightweight virtualization provided by FreeBSD jails, Linux OpenVZ containers, and Linux namespaces containers is used, i.e. CORE virtualizes guest operating systems of host nodes. VMs can be interconnected through virtualized above-L3 wired (TUN/TAP) and L2 wireless networks (MANET, EMANE), but also the interconnection to real networks is supported. Switching technologies are not supported, L2 loops create performance problems. Virtualized links allows to adjust their parameters such as bandwidth, delay, or percentage loss, even during a simulation runtime. For routing support, a routing daemon has to be installed. CORE is controlled by an easy-to-use GUI interface (Tcl/Tk) with centralized management of distributed topologies and drag-and-drop features.
CORE consists of two main parts. The first is the CORE daemon that runs on the background and is responsible for the created simulations. The daemon uses Python modules that may be imported directly using Python scripts. This demon is controlled through the GUI, which is the second part of the program. The daemon and the GUI communicate together through a proprietary application interface called CORE API (Application Programming Interface). For correct operation authors recommend machine with at least 2GB of RAM and CPU with frequency higher than 2GHz. The installation process is simple, storage requirements are low too. Emulations of non-Unix based VM is not supported.
Cisco IOL (Cisco IOS on Linux)
web: learningnetwork.cisco.com is using
Purpose: practical configuration skiils
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
Purpose: practical configuration skiils .
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.
containerlab
web: https://containerlab.dev/
Purpose: practical configuration skills
OS: Linux
License: Open
Description: With the growing number of containerized Network Operating Systems grows the demand to easily run them in the user-defined, versatile lab topologies. Containerlab provides a CLI for orchestrating and managing container-based networking labs. It starts the containers, builds a virtual wiring between them to create lab topologies of users choice and manages labs lifecycle. Containerlab focuses on the containerized Network Operating Systems which are typically used to test network features and designs, such as: Nokia SR Linux, Arista cEOS, Cisco XRd, Azure SONiC, Juniper cRPD, Cumulus VX, Keysight IXIA-C, RARE/freeRtr.
n addition to native containerized NOSes, containerlab can launch traditional virtual machine based routers using vrnetlab or boxen integration: Nokia virtual SR OS (vSim/VSR), Juniper vMX, Juniper vQFX, Juniper vSRX, Cisco IOS XRv9k, Cisco Nexus 9000v, Dell FTOS10v, Cisco CSR 1000v, Arista vEOS, Palo Alto PAN, IPInfusion OcNOS, Check Point Cloudguard, Aruba AOS-CX
And, of course, containerlab is perfectly capable of wiring up arbitrary linux containers which can host your network applications, virtual functions or simply be a test client. With all that, containerlab provides a single IaaC interface to manage labs which can span all the needed variants of nodes.
D
dCloud (Cisco dCloud)
web: https://dcloud.cisco.com/
Description: DCloud allows to have access to a broad list of pre-scripted demos that are fully supported, from 9 different Cisco architectures (collaboration, enterprise network, service provider, security, data center virtualization, etc.). All you need is a computer, a browser and an internet connection. dCloud allows to get familiar with new technologies, solutions and products, and even play around with them in a sandbox environment. To gain access to dCloud a free Cisco account is required
Dynamips/Dynagen
web:
Purpose: practical configuration skiils
OS: Linux, Win
License: Open
Description*): D/D is famous emulator tool used in our classrooms. Dynamips is a hypervisor-based emulator of Cisco routers with IOS. Dynagen is the extension used for simplified server management, and the work with text-based topology configuration files.
D/D does not support switching appliances and any other VMs, but it allows the interconnectivity with Linux virtual bridges (virbr). This allows to interconnect D/D topology with a real network or other Linux virtualization technology as QEMU/KVM and to create a virtualized topology of Cisco routers and other networking elements. Building such topology requires Linux skills and root system rights. As a console, D/D provides remote telnet access. D/D functionalities with carefully selected Cisco IOS image (we recommend Cisco 7200 with c7200-advipservicesk9-mz.153-3.XB12.bin.unp and 256 MB of RAM) allow us to use D/D for all routing-oriented topics (for example CCNP ROUTE). Using D/D ghostios and sparsmem RAM and CPU optimization, we are able to run several hundreds of 7200 router instances on the server Lenovo x3550 M5 (2x Intel Xeon E5-2620, 512 GB RAM) without any observed problems (of course not network performance related). Routers are organized into groups of 40 router instances per one dynamips hypervisor.
Using D/D in our case is straightforward. We have divided TCP/UDP port spaces of the server among our teachers. They are then are responsible for the creation of dynagen network definition files and for correct assignment of hypervisor, console and UDP ports. The teacher runs selected topology inside of his/her Linux user-space and assigns console ports to students. After completing required tasks, the topology is stopped. D/D does not provide any GUI, however its use is so simple and powerful.
E
eNSP –
web: https://support.huawei.com/enterprise/en/fixed-network-oss/ensp-pid-9017384. You may need Tencent account or a Linkedin account
Purpose: practical configuration skills of Huawei CLI
OS: Windows
Description: eNSP is a graphical network simulation platform. Through the simulation of real network equipment, this platform helps ICT practitioners and customers quickly become familiar with Huawei Datacom products, understand and master the operation and configuration of related products, and improve the ICT network of enterprises. Planning, construction, operation and maintenance capabilities to help companies build more efficient and better corporate ICT networks. IMPORTANT NOTE: When using eNSP for network card binding, be sure not to bind the network card used by the public network.
Eve-ng
Purpose: practical configuration skiils
Description *): Eve-ng is a fork and future development of UNL. Overall functionality of Eve-ng are extended (MySQL instead of SQLite, added support for new devices, GUI features, multiuser) compare its UNL predecessor. The web interface is interactive and is implemented using the Angular JS framework and Twitter Bootstrap. Three versions of Eve-ng are available; the Community edition (CE), Professional and Learning-Centre (LC) editions. Only Eve-ng CE is offered under open-source license. Professional and LC editions are commercial products available for a fee. Professional for 99$ and personal use, LC provides pay per role model, where the price is +99$ (350$ per each of available admin, editor and user roles). Both versions significantly improve the functionalities of CE. However, from our point of view the most wanted additional features as the multiuser separation and the lab sharing support, is only available inside of LE edition. But in common Eve-ng provides features as KVM HW acceleration, click and play clientless GUI, multiuser support, topology sharing, Wireshark integration, memory optimization, CPU Watchdog, support for 63 running nodes at least, and many more.
Eve-ng supports a very similar group of virtualized networking appliances as GNS3. Both, the routing, and even more important the switching technologies are supported. Based on the results of our intensive testing of more as 100 devices we can recommend the following stable appliances deployed over specific supported virtualization technology. Cisco 7200 IOS over dynamips (c7200-adventerprisek9-mz.153-3.XB12.bin), Cisco IOL switch (86bi-Linux-l2-advipservicesk9-ms-15.2-high_iron.bin), Cisco IOL router (86bi-Linux-l3-adventerprise-ms-15.7-3.M.bin, supports serial links), Cisco vIOS L2 switch over QEMU (viosl2-adventerprisek9-m.15.2) and vIOS router over QEMU (vios-adventerprisek9-m.vmdk.SPA.156-2.T). Among other supported and interesting images we should highlight, from our perspective interesting, devices such as Cisco CSR1000v (csr1000vng-universalk9.16.07.01, requires 4,5GB of RAM), Cisco XRv and ASAv (asav-asav971), Fortinet Fortigate KVM (any release), pfSence 2.4.2, Juniper vSRX (vsrxng-15.1X49-D20.2), Juniper Olive (olive-12.1-R1-9), Juniper vMX.
Using these images, we were able to easily run on generic server (Intel based CPU, 8cores, 48GB of RAM) and use dozens of networking scenarios consisting of a maximum 63 devices (CE limit, with some hacks +100 devices) shared by twenty testing students at the time of the same lab exercise. The CE edition does not support separate user spaces, the teacher creates one large scenario consisting of required topologies and shared it for students. Students can use it through the web GUI or have remote access over SSH tunneled telnet directly on the console port of the selected device. The installation process is simple, we managed to install it on several working models, such as the VMware, LXC machine and bare-metal, which was the most stable. However, configuring and preparing a system with loaded and functioning virtual appliances requires deeper knowledge of Linux administration and can be time consuming. The system administration is over CLI.
Note: The Eve-ng and also client/server GNS3 solutions emulates routing and even switching, supports a variety of different router and firewall vendor devices and end host OSs. A thorough selection of images with supported features and further tests have shown, that both are able to support all routing, switching and security-oriented subjects, from both study levels. It includes a large range of fixed-network technologies of CCNA and CCNP, enterprise and SP certification levels (but even more).
In terms of education, the main problem of Eve-ng CE and GNS3, that they lack separated workspaces inside of which registered users may manage their topologies. Each user then may see all other topologies and can delete, start or stop them at will. Second limitation of Eve-ng is the upper limits of the number of nodes in operation. The use of both GUIs are intuitive, but without an automation features is particularly limiting, when a teacher needs to prepare for students many identical topologies with dozens of devices (many copy and paste or many drag and drop actions are required). Both tools of course allow for their users/students do design and run their own topologies, but this feature must be carefully controlled to protect the server from running out of its resources.
G
GloMoSim
web: https://networksimulationtools.com/glomosim-simulator-projects/
Purpose: A parallel discrete event wireless network simulator. Supports IEEE 802.11, FAMA, CSMA, and also MACA. with OSPF, DSR, WRP, and also Bellman-ford, flooding. Suitable also for MANET, VANET network simulations.
Description: GLOMOSIM Simulator Projects stands for global mobile information system simulator and satellite network simulation environment for extensive and wireline communication networks, and mobile Adhoc network. GloMoSim is written in the Parsec programming language, so it benefits from its ability to work on computers with shared memory with symmetric processor (SMP).
GNS3
web: http://www.gns3.net/
Purpose: practical configuration skiils
Description*): GNS3 is a widely used and supported open-source network emulator. GNS3 can emulate not only network devices, but also end systems, such as Linux or Windows workstations. It can be linked to multiple virtualization tools, for example VirtualBox, VMware workstation, KVM, Docker and so on. GNS3 can be installed as a stand-alone desktop application but also in version 2 as a powerful client-server service. It runs on multiple operating systems, including Windows, Linux, and MacOS X
In our approach, we prefer client-server mode. Graphic-less GNS3 server-side is installed on a powerful server. End users (students and teachers) then uses the graphical interface of his desktop GNS3 application as a client that connects to a remote server. This brings many positives. For example, centralized virtual images management. If there is a newer version of any virtual appliance, we need to replace the image on the server and each user has an actualized and updated version available inside of their client device list. Another advantage is that powerful workstations are not required to run complicated topologies. Everything runs on the server; the desktop only serves as a remote console. GNS3 supports the same set of virtualized images as Eve-ng, i.e. routing, switching and security technologies are supported and allows to run and simulate complex scenarios. The compatibility also allows to import/export theirs images from each other.
Some limitations. The client/server model requires that both the server and the client must run the same version of the GNS3 software. This means that operating the server of version 2.1.10 lead to situation, where clients of any other versions are unable to connect. There is also a usual complication, GNS3 in client/server mode still works as a single user space application where all working users can see any other saved or working topologies and may access and control it
Note: The Eve-ng and also client/server GNS3 solutions emulates routing and even switching, supports a variety of different router and firewall vendor devices and end host OSs. A thorough selection of images with supported features and further tests have shown, that both are able to support all routing, switching and security-oriented subjects, from both study levels. It includes a large range of fixed-network technologies of CCNA and CCNP, enterprise and SP certification levels (but even more).
In terms of education, the main problem of Eve-ng CE and GNS3, that they lack separated workspaces inside of which registered users may manage their topologies. Each user then may see all other topologies and can delete, start or stop them at will. Second limitation of Eve-ng is the upper limits of the number of nodes in operation. The use of both GUIs are intuitive, but without an automation features is particularly limiting, when a teacher needs to prepare for students many identical topologies with dozens of devices (many copy and paste or many drag and drop actions are required). Both tools of course allow for their users/students do design and run their own topologies, but this feature must be carefully controlled to protect the server from running out of its resources.
H
HVLab – hybrid virtualization laboratory
web: https://ieeexplore.ieee.org/document/8257876/references#references
I
IMUNES
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.
J
J-SIM
web: https://sites.google.com/site/jsimofficial/downloads
Purpose/Networks: Wireless sensor network simulations.
State: it seems to be a dead and no longer supported project. (last release 2013)
Junosphere / Juniper vLabs
Purpose: practical configuration skiils
Web: https://jlabs.juniper.net/
Description*): Junosphere was a cloud-based software-as-a-service (SaaS) solution provided by Juniper Networks. Junoshpere enables users to test and design topologies in a virtual environment using current Junos network operating systems. The solution was realistic, scalable, flexible and interoperable with physical environments. The product is end of sale/end of support on June 30, 2018. However, Juniper started immediately a new Juniper vLabs project. vLabs is a web-based platform that lets try Juniper products (vMX, vQFX, and vSRX) for free (only a Juniper account is required). vLabs relies on blueprints of schemas/situations that are pre-prepared for “read-it-then-try-it” learning model. Playtime is limited to a predetermined time and depends on the type of blueprint.
K
Kathará (NetKit) (new)
Description: a container-based framework to deploy virtual networks featuring NFV, SDN and traditional routing protocols. Kathará comes with P4, OpenVSwitch, Quagga, Bind, FRRouting and more, but can also be extended with your own container images.
L
LENA – LENA Network Simulator
web: http://networks.cttc.es/mobile-networks/software-tools/lena/
Description: LENA is an open source product-oriented LTE/EPC Network Simulator that allows LTE small/macro cell vendors to design and test Self Organized Network (SON) algorithms and solutions. Target applications for LENA include the design and performance evaluation of DL & UL Schedulers, Radio Resource Management Algorithms, Inter-cell Interference Coordination solutions, Load Balancing and Mobility Management, Heterogeneous Network (HetNets) solutions, End-to-end QoE provisioning, Multi-RAT network solutions and Cognitive LTE systems. LENA is based on the popular ns-3 network simulator for internet systems. The development of LENA is open to the community in order to foster early adoption and contributions by industrial and academic partners.
LTE-Sim
web:
- https://telematics.poliba.it/index.php?option=com_content&view=article&id=28&Itemid=203&lang=en
- https://github.com/lte-sim
Networks: LTE simulations.
OS: Linux
Licence: OpenSource
Note: Last update 2015
Description: LTE-Sim is an open source framework to simulate LTE networks. LTE-Sim, encompasses several aspects of LTE networks, including both the Evolved Universal Terrestrial Radio Access (E-UTRAN) and the Evolved Packet System (EPS). It supports single and heterogeneous multi-cell environments, QoS management, multi users environment, user mobility, handover procedures, and frequency reuse techniques. Four kinds of network nodes are modeled: user equipment (UE), evolved Node B (eNB), Home eNB (HeNB), Home eNB (HeNB), and Mobility Management Entity/Gateway (MME/GW).
M
Marrionet
web: http://www.marionnet.org/
Purpose: practical configuration skiils
Description*): Marionnet is an of open-source emulator of virtual network laboratory, i.e. it allows users to define, configure and run complex virtualized networks with computers, routers, hubs, switches and cables. It also supports the integration of virtual networks with the physical host network. Marionnet works only on the Linux operating systems (including option of VirtualBox). The machine emulation is done by UML (User Mode Linux) technology and the interconnection of VMs uses the VDE (Virtual Distributed Ethernet) technology. Computer nodes are Linux UML machines and routers are lightweight Linux VM (Pinocchio OS) with Quagga daemon installed. VDE supports the VMs interconnection over ethernet links only, but it allows STP (Sapnnng Tree Protocol) and VLAN (Virtual LAN) configuration (which is problematic or impossible for two previous tools mentioned). Marionnet offers a simple and user-friendly graphical interface.
The project homepage does not mention specific hardware requirements; however, CPU with VT-x or AMD-V support is required. Storage footprint is around 3GB, and RAM of 512MB is good enough for runtime of more than 15 VM. The installation process is simple and provides three different options (script, building from source and live distro). Emulation of neither Cisco IOS nor Juniper JunOS VM is supported.
Mininet
web: http://mininet.org/
Purpose: Practical SDN development and verification
OS: Linux
Licence: OpenSource
Networks: SDN / OpenFlow
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.
Mininet – WiFi
web: https://mininet-wifi.github.io/
Purpose: Practical SDN WiFi development and verification
OS: Linux
Licence: OpenSource
Networks: SDN / OpenFlow
Description: Mininet-WiFi is a fork of the Mininet SDN network emulator that extends the functionality of Mininet by adding virtualized WiFi Stations and Access Points based on the standard Linux wireless drivers and the 80211_hwsim wireless simulation driver. Mininet-WiFi extends the Mininet codebase by adding or modifying classes and scripts. So, Mininet-WiFi adds new functionality and still supports all the normal SDN emulation capabilities of the standard Mininet network
MLN
web: http://mln.sourceforge.net/index.php
Purpose: practical configuration skiils
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
NAB
web: https://github.com/henridf/nab
State: it seems to be a dead and no longer supported project. (last release 16years ago)
NetEm – Network Emulation
web: https://wiki.linuxfoundation.org/networking/netem https://www.linux.org/docs/man8/tc-netem.html
Purpose: network emulator
OS: linux (Fedora, OpenSuse, Gentoo, Debian, Mandriva, Ubuntu)
Licence: Open-Source
Networks: emulates WAN QoS parameters
Description: netem provides Network Emulation functionality for testing protocols by emulating the properties of wide area networks used in QoS testing or measurement scenarios.. The current version emulates variable delay, loss, duplication and reordering. Netem is controlled by the command line tool ‘tc’ which is part of the iproute2 package of tools.
NetKIT
Web:
Purpose: practical configuration skiils
Description: Understanding computer networks without performing practical experiments is really difficult, not to say it is almost impossible. Unfortunately, setting up a networking lab can be very expensive.
Netkit is an environment for setting up and performing networking experiments at low cost and with little effort. It allows to “create” several virtual network devices (full-fledged routers, switches, computers, etc.) that can be easily interconnected in order to form a network on a single PC. Networking equipments are virtual but feature many of the characteristics of the real ones, including the configuration interface.
Emulating a network with Netkit is a matter of writing a simple file describing the link-level topology of the network to be emulated and some configuration files that are identical to those used by real world networking tools. Netkit then takes care of starting (emulated) network devices and of interconnecting them as required. Alternatively, networks can be described by using an XML-based language known as NetML. Starting from a network description in NetML, it is possible to automatically obtain configuration files which can be used with real routers, or Netkit scripts which can be used to emulate the described network.
Netkit exploits open source software (mostly licensed under GPL) and is heavily based on the User Mode Linux (UML) variant of the Linux kernel. The purpose of this project is to solve many of the difficulties and technicalities that a user could have in using UML for networking. We offer the users an easy-to-use-and-install package, which at the same time implements effective network emulation. Further, we provide a corpus of teaching material that can be used for courses at different levels.
NetSim
web: http://tetcos.com/
Purpose: scientific simulator
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.
NetWire
web:
Purpose:
Description: NetWire[emu] is a distributed architecture designed for educational and research purposes which provides a synthetic and realistic network environment that may be used to teach and learn parallel algorithms (or parallel operating systems) as well as to research and develop new distributed algorithms.NetWire is an architecture based on a client/server derivation scheme: each client can interact with one or more servers emulating one or more networks by the NOEL protocol (Network Oriented Emulation Language), which is an extension of TCL over TCP/IP specifically designed for NetWire.
NS-2
web: http://nsnam.isi.edu/nsnam/index.php/User_Information , http://nsnam.isi.edu/nsnam/index.php/Main_Page
Purpose: scientific simulator
OS: Windows (CYGWIN), Linux
Licence: Open Source
Networks: Wired / wireless / wireless sensor / ADHOC / MANET / Wired cum Wireless / SDN / VANET / Security /Vertical Handover / Bluetooth
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
Purpose: scientific simulator
OS: Windows (CYGWIN), Linux
License: Open
Networks: Wired / wireless / wireless sensor / ADHOC / MANET / Wired cum Wireless / SDN / VANET / Device to Device Communication
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.
NVLab – Networking Virtual Web-Based Laboratory
web: https://ieeexplore.ieee.org/document/5204074
O
OneSim
Web: http://networksimulationtools.com/onesim-simulator/
Purpose: scientific simulator
OS: Win, Unix, Max
Licence: Open
Networks: Wired / wireless / wireless sensor / ADHOC / MANET / Wired cum Wireless / SDN / VANET
Description: OneSim Simulator of the DTN simulator used in the world is defined as sim. The programming language used in One sim is Java. The most famous DTN routing protocol is offered by the researchers.
The main logic of some DTN routing algorithms are understood by the researchers based on the implementation of these routing protocols.
An agent-based discrete event simulation engine is defined as One sim. A number of modules are updated by the engine at every simulation step which implements the main simulation functions.
The modeling of node movement, routing and message handling, inter-node contacts, is the main functions of the One sim. The visualization, reports and post-processing tools are provides the result collection and analysis. The Onesim simulator project page and a detailed description of the simulator is available where the source code is also available.
The movement models implement the node movement in One sim. This may be a synthetic models or existing movement traces. Based on the node location, communication range and the bit-rate the connection between the nodes is established.
An effective routing function is implemented by The routing modules implements the routing function where the messages to forward over existing contacts are decided by this model. Finally, the event generators generate the messages themselves.
The simulation engine sent the events (e.g., message or connectivity events) to the report module and the simulation engine generate results based on them. Secondarily, the simulation state showing the locations, active contacts and messages which is displayed by the the graphical user interface (GUI) and is carried by the node.
Omnet++
Purpose: scientific simulator
OS: Windows, Unix-based, Mac OS X
License: Open
Networks: Wired / wireless / wireless sensor / ADHOC / MANET / Wired cum Wireless / SDN / VANET / WBAN / Under water sensor network / Social sensor network
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.
OpenStack
web: https://www.openstack.org/
Purpose: IaaS cloud environment
Description*): OpenStack is an open source cloud computing (CC) platform. It is mostly deployed as Infrastructure as a Service (IaaS), which means that administrators offer to their customers VMs. The customer is than responsible for all management of his VM. Whether it is updating of OS, installation of services, securing system and services, or the configuration at all. OpenStack is modular system; every functionality is provided by separate module.
OpenStack deployment at our department consist of three servers, and operational network infrastructure (switch, firewall). One server act as a controller. There is CLI, web and API interface for administering the system and database for storing settings. Second server is called compute node. This is responsible for running VMs. Third server is a storage node, where persistent storage is located. OpenStack can run several hypervisors, such as KVM, Xen, VMware, Hyper-V and so on. We use KVM/QEMU, so as the IaaS service we are able to provide any OS that can run on KVM, i.e. *nix, Windows, or virtualized images of different networking vendors (Cisco, Juniper, MikroTik, Fortinet, etc.). OpenStack, in contrary to Dynamips/Dynagen, eve-ng and GNS3, is natively multi-tenant platform. This means that user in one tenant (called a project) is completely separated from other tenants.
One of disadvantages of OpenStack is its complexity, where skilled administrator is needed to regularly maintain the whole complex OpenStack ecosystem of modules. On the other hand, OpenStack offers powerful automation, where administrator using scripts can build large environments of hundred VMs in minutes.
Opnet Modeler – new => Riverbed Modeler
Purpose: scientific simulator
OS: Win, Solaris, MAC OS
Licence: Commercial
Networks: Wired / wireless / wireless sensor / ADHOC / MANET / Wired cum Wireless / SDN / VANET / Radio Network
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
P
Packet Tracer
web: https://www.netacad.com/web/about-us/cisco-packet-tracer
Purpose: configuration skills
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 (PT) is a graphical simulation tool that is available for students and instructors of the network academy. There are several studies devoted to it, for example. PT is primarily developed for CCNA, IoT, and IT essentials courses of CNA program. PT is actively developing; the current version is 7.2.2 from September 2019. PT provides students with the basic configuration functionality of wired and wireless network elements offered over easy-to-use GUI.
PT is a nice piece of software, however, we need to highlight that it is only a simulator and therefore does not provide full Cisco device functionalities, as well as distorts more detailed inspection of network technologies, for example STP or routing functionalities.
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
PeerSim
web: http://peersim.sourceforge.net/
Purpose: scientific simulator
OS: Win, Linux
License: Open Source
Networks: Parallel Systems / Wired / wireless / wireless sensor / ADHOC / MANET / Wired cum Wireless / SDN / VANET
Desciption: Peer-to-peer systems can be of a very large scale such as millions of nodes, which typically join and leave continously. These properties are very challenging to deal with. Evaluating a new protocol in a real environment, especially in its early stages of development, is not feasible.
PeerSim has been developed with extreme scalability and support for dynamicity in mind. We use it in our everyday research and chose to release it to the public under the GPL open source license. It is written in Java and it is composed of two simulation engines, a simplified (cycle-based) one and and event driven one. The engines are supported by many simple, extendable, and pluggable components, with a flexible configuration mechanism.
Psimulator2
web: https://code.google.com/p/psimulator/
Purpose: practical configuration skiils
Description*): Psimulator is a simple graphical simulator of Linux and Cisco based networks created at the Czech Technical University in Prague, Faculty of Information Technology to educate the basics of computer networks. Because it’s not an emulator, the program does not use any virtualization techniques. Each node is a Java program that implements the functionality of the end computer, simple ethernet switch or router (Cisco or Linux based). It run on any system that supports Java (version 7), including Windows, Mac OS, and Linux.
The program consists of two main parts – the back-end and the front-end. Front-end provides GUI, back-end provides main simulation functionalities controlled using the XML files generated by the front-end. Hardware requirements are not specified, only the support for Java Runtime Environment is needed. The storage requirements are approximately 27MB. Psimulator does not require installation, it is only needed to be downloaded and then executed. The GUI interface is simple and intuitive. Program is very simple, supports only virtualized ethernet links, but allows the connection to real network adapter. Psimulator is a software simulator which resembles to a very simple version of the Packet Tracer simulator.
Q
QualNet
Web: https://www.scalable-networks.com/qualnet-network-simulation-software-tool
Purpose: Scientific simualtions
OS: Win, Mac, Linux, Solaris
Licence: Commercial
Networks: Wired / wireless / wireless sensor / ADHOC / MANET / Wired cum Wireless / SDN / VANET
Description: The QualNet® network simulation software (QualNet) is a planning, testing, and training tool that “mimics” the behavior of a real communications network. Network simulation is a cost-effective method for developing, deploying and managing network-centric systems throughout their entire lifecycle. Users can evaluate the basic behavior of a network, and test combinations of network features that are likely to work. Our network simulation tool provides a comprehensive environment for designing protocols, creating and animating network scenarios, and analyzing their performance.
S
Shadow
web: https://shadow.github.io/
Description: An open-source network simulator/emulator hybrid that allows to run real applications like Tor and Bitcoin over a simulated Internet topology, light-weight, efficient, scalable, parallelized, controllable, deterministic, accurate, modular, and more!
Focused on the emulation of big networks with many nodes and the network performance modelling, scheduling, and other tasks.
U
Unified Networking Lab (UNetLab)
Purpose: practical configuration skiils
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.
UNL isa new brand of open-source simulation tool developed as a competitor of GNS3 and VIRL. UNL has built-in nested multithreaded virtualization support that integrates the support of multiple virtualization techniques (Dynamips, Cisco, WebIOU, WebIOL, QEMU, KVM) and supported interaction with real network. It is provided through a web based, and easy-to-use web application. The development of UNL has stopped and continues in two new, but separated branches, UNetLab version 2 and Eve-ng. UNLv2 has not been officially released yet (2019).
V
VIRL
Purpose: practical configuration skiils
Licencse: Commercial
Description*): VIRL PE is a powerful network orchestration and virtualization platform based on the Openstack Kilo release. VIRL PE is offered as a Cisco commercial product and is available as a PC OVA, ESXi OVA images for hypervisor installation (VMware Workstation, Player, or ESXi), or as an ISO image for bare metal installation, so it provides good portability options. Minimum system requirements are 8GB of RAM, four core CPU with Intel VT-x / EPT or AMD-V / RVI virtualization and 70GB of HDD, however more resources are recommended (at least 12GB of RAM for running maximally 20 generic nodes, but for example single IOS XRv 9000 requires 16GB of RAM).
VIRL integrates and officially support and comes with different legal Cisco device platform images (IOSv, IOSvL2, IOS-XRv, CSR1000v, NX-OSv, ASAv, NX-OS 9000v, IOS XRv 9000) and what is great, native L2 switching functionalities (IOSvL2). Besides that, VIRL integrates 3rd Party VMs and selected end point appliances realized as LXC containers. Virtualized topologies are possible seamlessly interconnect with real network environments and physical devices. The control is through GUI design (VM Maestro tool). Configuration of devices can be performed locally through CLI or over offered web interface. Remote configuration is possible through telnet/SSH (Secure Shell Protocol) protocol.
VIRL is natively designed as a learning virtualization tool primarily used for personal, single user learning and Cisco certification training purposes. In the past, VIRL existed in two versions as the Personal (PE) and Academic Edition (AE). Both with the same functionalities, but AE offered better price for teachers and students. Currently the tool exists only as PE (available for 199$ per year) with license model that allows to run maximally twenty Cisco devices (of this vendor only). This significantly limits its use for teaching where we usually expect a higher number of devices, and contrary to other tools, it is also tightly coupled to Cisco technology only. However, under certain conditions it may be used within a higher educational environment. We considered two models of its deployment. As a program installed on each of laboratory PCs, what introduces higher financial burden. The second is an economic variant, where VIRL will be executed on a server by a teacher, where console ports of started devices will be with to students.
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
Purpose: practical configuration skiils
Description*): VNX is a project of Technical university of Madrid, that builds on the previous tool Virtual Networks User Mode Linux (VNUML). VNX is developed as an open-source virtualization tool designed to help building virtual network testbeds of a large scale, spread out over server clusters (EDIN component). It allows the definition and automatic deployment of network scenarios created from virtual machines of various types, with a real network interconnectivity. This is achieved using a modular design approach that is particularly useful for the integrating several virtualization platforms that are embedded into the program through the appropriate modules. Virtual device management is implemented through the application programmable interface vmAPI. VNX integrates UML module (UML VM), libvirt module (KVM, XEN, QEMU, VMware), dynamips module (Cisco IOS) and the module for physical devices (real network interconnection). Integrating these tools, VNX is able to virtualize Cisco and Juniper routers, but also computer operating systems such as Windows, Ubuntu and Debian. VNX consists of two main components. The topology specification component describes the virtualization network scenario that is defined in eXtensible Markup Language (XML) description files. The file through the means of VNX XML tags (<global>, <net>), <host>) specifies global parameters of the scenario, VMs and network interconnections. Specification of some VM types may require additional configuration files that specifies VMs definitions. The language interpreter component is used to call a language analyzer and to create, run and manage a virtualized topology defined in the XML file. The VM device access is over SSH session or directly through their consoles. As the network link technology VNX supports three interface types, LAN, PPP (Point-To-Point protocol) and P2P. VNX does not provide a GUI interface and the whole work and control of VNX is through CLI.
For correct operation of VNX in a single host deployment authors recommend a machine with at least 2GB of RAM, 10GB of HDD space and modern CPU with obvious virtualization support (VT-x, AMD-V). The installation process was, thanks to official guides, seamless and without obstacles.
VNX is a comprehensive tool without GUI interface, so using and managing it requires a deeper VNX knowledge. VNX is not as easy (cannot be) as is for example Dynagen/Dynamips (D/D). However, VNX is an interesting solution thanks to support of several virtualization techniques, which make VNX unique.
Personally, VNX is a tool that deserves wider support from community of users and developers.
vrnetlab (new)
web: https://github.com/plajjan/vrnetlab
OS: Linux
Licence:
Networks: IP
Note: Last update 02/2021
Description: Run your favourite virtual routers in docker for convenient labbing, development and testing. vrnetlab is being developed for the TeraStream project at Deutsche Telekom as part of an automated CI environment for testing our network provisioning system.
It supports:
- Arista vEOS
- Cisco CSR1000v
- Cisco Nexus NX-OS (using Titanium emulator)
- Cisco XRv
- Cisco XRv 9000
- Juniper vMX
- Juniper vQFX
- Nokia VSR
W
Web-IOU
Description*): Web-IOU is a Linux emulator tool that only works with Cisco IOU (IOS on Unix) device types. The Cisco IOU platform is a fully functional version of IOS that runs as a user mode UNIX (Solaris) process. IOU was created as a native Solaris image and runs just like any other program. The term IOU usually refers to IOL (IOL or IOS On Linux) too, as it is the IOU Linux version. The main advantage of Cisco IOU/IOL is the support of switched Cisco IOSs, the feature that is very rare and not widely available. Web-IOU and its topologies are managed using CLI. User access is over the web interface; however the tool did not implement user management functionalities, anyone with a web access can manage all topologies. Tool for the remote access on console interfaces of running devices (as the dynagen does) support telnet protocol. The tool is not actively developing.
Wistar (new)
web: https://github.com/Juniper/wistar https://wistar.readthedocs.io/en/latest/
Purpose: Juniper JunOS emulator
OS: Linux
Licence: OpenSource
Networks: IP
Note: Last update 2019
Description: Wistar is an open-source network emulator originally developed by Juniper Networks and released under the Apache license. Wistar is a tool to help create and share network topologies of multiple virtual machines. It is designed to be light weight enough to run on a laptop or a small dedicated server. It uses a drag and drop interface to make connecting instances together into large networks super easy. These topologies can then be saved, shared, cloned, or destroyed at will. The idea is to make experimenting with virtual networks and virtual machines as frictionless as possible.
Wistar uses Linux bridges to connect VMs to each other and to any external networks. To connect VMs to the external world, you’ll need at least one NIC in a bridge. In this example, the first NIC is put in a bridge called ‘br0’. To connect VMs to this NIC, add an ‘External Bridge’ object to the topology with the corresponding name ‘br0’. Multiple external bridges are supported.
Some feature Comparison