Open-Source Network Simulators

Latest News

February 21, 2018

  • The ONOS project created an ONOS Emulator based on a VirtualBox VM and Mininet. In addition to providing a ready-to-use ONOS SDN network emnulator, the ONOS project also created a complete a set of exercises designed to explain the main concepts of ONOS.

January 17, 2018

Older news is archived on the Network Simulator News page.

List of Network Simulators and Emulators

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.



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:


CORE desktop

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:


Open-source Linux GNS3 simulation

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:


IMUNES open-source network routing simulator

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: or



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.

Some researchers have created forks of Mininet that focus on specific technologies. I list projects based on Mininet below:

Please click here to see my posts about Mininet.

Mininet web site:


Netkit open source single-area OSPF pre-configured lab

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:



NS-3 is a discrete-event open-source network simulator for Internet systems, used primarily for research and educational use. NS-3 is a complex tool that runs simulations described by code created by users, so you may need programming skills to use it.

NS-3 can run real software on simulated nodes using its Direct Code Execution feature. This allows researchers to test real software like Quagga or web servers in a discreet-event network simulation to produce repeatable experiments.

NS-3 is meant to replace NS-2, a previous version of the network simulator. NS-2 is no longer actively maintained but is still used by some researchers.

I have not used NS-3, yet.

NS-3 web site:

OpenStack all-in-one (DevStack, etc.)


OpenStack all-in-one refers to scripts that help set up an OpenStack installation on a single machine, such as a laptop or a virtual machine. The best known tool is DevStack but most vendor’s OpenStack deployment tools offer a way to install an all-in-one OpenStack system. In a way, any of these all-in-one systems can serve as an OpenStack simulator for students and researchers interested in experimenting with cloud systems.

Links to single-node installers:
DevStack single-node install
Ubuntu OpenStack Autopilot single-node install
Red Hat RDO single-node install
Openstack on Ansible single-node-install



Shadow is an open-source network simulator/emulator hybrid that runs real applications like Tor and Bitcoin over a simulated Internet topology on a single Linux computer, and also on a pre-configured AMI instance on Amazon EC2. Users run a simulation by creating an XML file to describe the network topology and plugins to link their application code to nodes in the simulation. They see the results of their experiments in log files generated by Shadow.

Shadow operates as a discrete-event simulator so experimental results are repeatable. Shadow can also run real software on its virtual nodes, using plugins created by the user. This combination of features — discreet-event simulation coupled with real software emulation — makes Shadow a unique tool.

I have not yet used Shadow. It seems to be useful to developers who want to test the performance of distributed or peer-to-peer applications like TOR and Bitcoin.

Shadow network simulator web site:



UNetLab and EVE-NG are network emulators that support virtualized commercial router images (such as Cisco and NOKIA) and open-source routers. They use Dynamips and IOS-on-Linux to support Cisco router and switch images, and KVM/QEMU to support all other devices. Each is available as a virtual machine image and may also be installed on a dedicated server running Ubuntu Linux.

EVE-NG is the next-generation of UNetlab. It is currently part of a crowd-funding campaign to raise funds to support development. UNetLab is the “stable” version and EVE.NG is available as an “alpha” version.

Both UNetLab and EVE-NG are open-source and post source code on GitHub for UNetLab and on GitLab for EVE-NG.

UNetLaB/EVE-NG web site:


VNX linux open-source network simulator

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:

Other Emulators and Simulators

I list projects below that are either very new or that are older with low development activity.

New projects (on the radar)

NetMirage is a network emulator developed at the University of Waterloo in Canada. It is currently available as an open beta. Similar to other network emulators, NetMirage allows users to run real code to test IP applications. The NetMirage developers are currently using it to construct large-scale virtual Tor networks.

Yet Another Network Simulator, also knowns as YANS, makes it easy to emulate simple networks. See more details about YANS.

LStacker is a new project that builds virtual networks consisting of containers and bridges. It supports both LXC and Docker containers.

ESCAPE (Extensible Service ChAin Prototyping Environment) is a framework which supports the development of several parts of the service chaining architecture including VNF implementation, traffic steering, virtual network embedding, etc.

LENA, the LTE-EPC Network Simulator, is based on NS-3. It is in active development.

Older projects (low activity)

DockEMU is a network emulator that uses Docker Containers and Linux Bridging to emulate IP network functionality and NS-3 to emulate Ethernet and physical networking functionality. It seems like an effort to create a “best of both worlds” network emulator. After releasing the first version, it has not been updated in two years.

Marionnet allows users to define, configure and run complex computer networks on a host computer. Marionnet seems designed to be used as an education tool and has an attractive graphical user interface, and some sample practice lab configurations. The Marionnet software has not been updated since 2011, but the Marionnet web site was redesigned more recently, in 2016.

Psimulator2 is a Java-based network simulator useful for basic networking education. It is an old project, recently forked a couple of times by different developers so, hopefully, we will see some active development in the future. The Psimulator2 Google Code web site is now read-only and there appears to be a new version (or it may just be an archive of the current version) at Another developer forked Psimulator and made his updated code available at

OFNet is a relatively new SDN network emulator but, after releasing the first version, the developer has gone quiet. Hopefully we will see some new development in the future. The OFNet web site is

LINE is a network emulator that emulates IP networks and supports detailed analysis and reporting. It has not been updated in three years.

220 responses to Open-Source Network Simulators

  1. Vincent Perrier March 18, 2013 at 5:13 am

    I cannot wait for all the missing evaluations, this web site does exactly what I wanted to do but failed to find the time for it.
    The wording: “simulation” could be replaced by “emulation”, it would be good to add details about the difference between network “simulations” (based on ns3 for example) that change the time base (1 mn simulation is done in a much longer duration) and the network “emulation” that are based on virtualisation and work in real time.
    I am not even sure about my own vision of these word definitions (emulation, and simulation), clearer definitions could be put on this web site. I like simulation more than emulation, so it may be a good thing to keep calling the “network emulation” “network simulation”, in the end the technical meaning of the word will cover both real time and non-real time way to simulate.
    Hit “ns3+opnet+time+simulation” in google to see about usual meaning of simulation.

    • Hi Vincent,

      You are correct that the tools I am working with are mostly related to “emulation”, not “simulation”. Looking at the Google Analytics information for this site, I see that the search terms most people use to find this site are the terms, “network simulation” or “network simulator”. Very few people seem use the search term, “network emulation”.

      I agree with you that using the term “network simulation” to describe both “emulation” and “simulation” is an acceptable way to make this topic more accessible to searchers, even if it is not really an accurate way to describe the tools.


      • I wonder how many of the people that find this site using ‘simulation’ actually wanted to find this site…ie using the ‘wrong’ word might increase traffic, but is it traffic you actually *want* to attract (I’m sure you don’t just want *any* traffic – there are much ‘better’ words to use ;)).

        • My, quite elitist aren’t we?

        • I wanted to find this site! I didn’t know the exact term to look up so I searched simulator. Now I can see an emulator is really want I need. But sometimes you have to think about what the end user is going to search for.

    • christian erick oundo June 2, 2015 at 8:19 am

      i like this much , i have been struggling to practice routing and switching configurations. this site will help me a great deal, i hope to keep in touch with you guyz for more support.

  2. Vincent Perrier April 17, 2013 at 4:09 am

    The official “simulation” has for main goal to reduce the cpu/ram resources use in the study of large scale topologies. The cpu and ram will not be a problem in a few years and “emulation” will probably replace simulation in the end, the merge has already began:

    So I agree, the word simulation should cover both methods.

  3. Brian — this is a very interesting roundup of open source systems you’ve got here. I was really intrigued by Marionet, but… my problem is that I want to build a course that needs to deal with students who are most likely running Windows based machines (I can’t help it.)

    Other than GNS3… do you know of a system that seems straightforward, friendly, and not so tied to a particular vendor’s certification training, that can be used in an introductory networks course?


    • Hi Mike,

      Thanks for your question.

      Based on what I know about all the tools in this list, I think that GNS3 is the only system that will work on Windows. However, I was able to run most of the tools I reviewed (and I’ve reviewed about half the tools in this list so far) in a virtual machine and the virtual machine will run on VirtualBox in Windows.

      For the case you describe, and assuming you want a tool that has a GUI, I would also recommend either IMUNES or the CORE Network Emulator running on a FreeBSD system in a VirtualBox virtual machine on MS Windows. The instructor will have to do some work to create the system and simplify the desktop setup so that the complexities of using an unfamiliar operating system are hidden from the students but as soon as IMUNES or CORE is started, the students will be using the application and not worrying about running Unix BSD Unix commands. While this solution is not really straightforward and simple, I believe that the instructor can set it up so that, from the students’ point of view, it appears to be acceptably straightforward and simple.


      • Sourasekhar Banerjee October 5, 2016 at 12:56 pm

        hello Brian. I’m doing research on Distributed Operating System. I have written some algorithm on mutual exclusion I’m searching for some Simulation platform where I can execute my code. Is these emulator or simulation tool will help me to do my job ??

        • Hi Sourasekhar,
          It depends on how you’ve implemented the distributed system. Can the system run in KVM or VirtualBox? If so, use GNS3 or Cloonix. If the system runs on top of Linux, you may be able to use containers so you could use CORE in that case.

  4. Vijay Murugesan March 15, 2014 at 7:45 pm

    This is a great article and information for people who are like me (Developers by nature but still want to have a edge on the networking concepts). I’m going to recommend this to all my team. I feel bad I have missed it for so long.

    • Hi Vijay,
      Thanks for your interest in this blog. I have almost completed my survey of open-source network simulators so, over the next few months, I will begin discussing examples of simulated networking scenarios. I hope you and your team will find this blog to be useful.

  5. Hi,

    Have you tested Live Raizo, an Linux environnement based on GNS3 ? (

    • Hi David,
      Yes, I tried Live Raizo. It offers GNS3 installed on a basic Linux system in a Live USB or Live CD disk image. It also offers a useful selection of other Linux software and tools pre-installed.

      • I have tested it. It does a little more 😉 There has several VirtualBox Linux whose are completely integrated with gns3, and these VMs have already many networks tools installed.

      • Hi,

        I will wish just your feedbacks on Live Raizo.

        With your little description, i believe that you think that Raizo is just a Live where GNS3/Qemu/VirtualBox are already installed and if you want use it, you must configured a lot of things.

        But, Live Raizo can do more : 18 Debian Linux VM are created and fully integrated into GNS3/VirtualBox. These VM have same softwares that NetKit (which was installed on the first releases of Raizo).

        Without configuring anything, you can do the same things that with Cloonix or NetKit (with VisualNetkit).

        One of its advantages is that nothing is installed, modified or deleted on your own OS.
        One of its drawbacks is that all is lost if you don’t save.


        PS : I think that your contact email on privacy-policy page doesn’t work.

        • Hi David,

          Thanks. I fixed my contact e-mail address. And, thanks for the extra information about Live Raizo.

          I think Live Raizo is a good project. Projects like Live Razio and GNS3 Workbench provide an installation of GNS3 along with supporting filesystems (with all necessary software pre-installed) and prepared lab scenarios are a great way for people to become familiar with using GNS3 without having to install and configure GNS3 on their PC. They also make it easier to use GNS3 to build simulation scenarios.

          I notice the both Live Raizo and GNS3 Workbench are prominently featured on the GNS3 web site.


  6. Brian:
    You have a great resource here. Thanks for making all this info available. I’ve been looking for an open source network emulator to suit my needs and was hoping I could get your opinion. I want to connect openNMS to an emulator and then have the emulator run simple scenarios that present a network admin with various types of problems to diagnose and correct. Any suggestions would be most appreciated.

    • Hi Larry,
      Thanks for your question.
      I think you should use a network emulator that runs either KVM or user-mode linux. So use either Cloonix or Netkit. These emulators will let you install the software you need on each virtual machine (especially an SNMP agent and MIBs).

      • Brian:
        Thanks for the feedback. I had been thinking about trying CORE but I will take a close look at Cloonix and Netkit as you suggest. I’ll let you know how it goes.
        Thanks again

        • Larry,
          I think the main issue is virtualization of the file system. I’ve not had to set up MIBs on a lInux box so I do not know if CORE creates a namespace for the directories used by SNMP. Cloonix and Netkit use KVM and user-mode-linux, respectively and those technologies virtualize the full filesystem and allow you to save the changes to the files for future use.

          • Hi,

            You can use also GNS3 who can easily incorporate your own VirtualBox VMs. You don’t need IOS Cisco to use GNS3.

          • Good point, David! GNS3 would also be a good tool for this case. I have a few posts on using open-source routers in GNS3. Click on the GNS3 tag to find them.

  7. Brian/David:
    Thanks for all the feedback. I had posted the same question on an openNMS forum and gotten zero responses so I really appreciate the info being provided here.
    Regarding GNS3, I was under the impression it’s main focus is providing a high-fidelity replication of Cisco and Juniper routers and enterprise-level WANs. By “high-fidelity” I mean something detailed enough that it can be used as a study aide for somebody trying to get certified by Cisco or Juniper. I think for my needs the best fit will be something that is fairly broad in scope (e.g. can emulate anything from SOHO LAN to a global grid) but where fidelity is less important than flexibility and ease of use. The idea is to get a basic network emulation going and than interface to it via openNMS. I wondering if using GNS3 may force me to go deeper into IOS and/or JUNOS that I want.
    My understanding is that Cloonix is pretty easy to set up and use, allows the use of standard Linux networking tools (e.g., ping, traceroute, etc) and, if desired, has support for emulating cisco routers with some reasonable fidelity. If that is correct, I’m thinking I’ll try it first.

    – Larry

    • Hi Larry,

      I prefer cloonix for working with open-source routers, in the case where full-stack virtualization is needed (using KVM).

      GNS3 will work with open-source routers but, as you observed, it’s primary purpose is to support Cisco router images and it’s management of open-source routers relies on VirtualBox (which is OK but takes more steps to set up each unique virtual machine disk image).

      Both cloonix and GNS3 provide high-fidelity network simulation because they allow you to work with virtual machines running real networking software. Cloonix is more streamlined for use with open-source routers and other open-source software, which I think fits better with your use-case for working with OpenNMS.

      Thanks for your questions!


    • Hi,

      You don’t need to install or/and configure Cisco/Juniper to use GNS3 🙂
      Look the first screen of “Live Raizo” here ( which uses GNS3, it is only Debian Linux.
      And i think that GNS’s interface is more beautiful than Cloonix’s interface 😉

  8. Hi Brian,
    Thanks for this great article. I test access multiplexers and would like to create a network of 24-96 guest hosts, each with their own IP. The purpose of this is to try to congest multiplexer-under-test with TCP traffic. There will be a simulated PC for each of the modems connected to a multiplexer-under-test (that supports between 24-96 modems). I would then like to set up a packet (TCP) generator or an FTP server on the uplink of the multiplexer, where the 24-96 guest hosts would then simultaneously download files from the server. Other than 2 high performing server blades with 10G ports, which virtualization software and/or network simulator do I need?

    • You need to do some testing to determine which options work best for you. In my opinion, you need a hypervisor like Xen, KVM, of VMWare) or you can use Linux containers (maybe use Docker), which use less systme resources than full VMs and may allow you to run more virtual test nodes per host machine. Set up your VMs and connect them all to the 10G port. You don’t need a network simulation emulation tool, unless it helps with your automation requirements (for example: Cloonix for KVM, CORE for Linux containers). Even then, I would recommend other tools like chef or puppet (or use shell scripts) instead of a network simulator for your test system because it seems you will need more functionality related to virtual server setup automation instead of simulating different network topologies.

      • Thanks for quick reply, Brian. I mostly use python for automation scripting. As I’ve not use either KVM or Linux containers before, do they have a master controller that I can use to manage all the test nodes? Like installing FTP clients and initiate the downloads/uploads? Or do I use tools like Jmeter? Another question is, how do I calculate the max number of nodes the host can handle if I need each node’s unidirectional transfer rate to be at around 100 Mbps?

        • I don’t know all the tools available to automate virtual server setup and configuration but I would expect some of them support a Python API so I suggest you do some searches to find what would be suitable. I don’t know how to calculate the expected performance or throughput per virtual server, but I think 100 Mbps is asking for a lot, unless you have a very powerful host machine. You will have to do some testing, I think.

          To get started quickly, try using the [CORE Network Emulator]( CORE is implemented in Python and has a documented Python API. You can create a set of virtual servers that all connect to the external Ethernet interface on the host machine. You can create a custom service type that supports starting an FTP client and then running some download commands. When you save the network scenario, you can re-load it at a later date to run the same test again. I plan to post some information on customizing services in the CORE Network Emulator in a few days.

          But, I do not know what kind of performance you will get.

          For master controllers, Linux offers the *[libvirt](* tool (which supports KVM, Linux containers, and other types of virtualization) and I am sure there are other open-source virtual machine configuration and controller tools you can use.

          You can also use *[Virtualbox](*, which is an easy-to-use VM manager with a GUI (and excellent documentation).

  9. Hello everyone, I need some advice!

    I’m a networking student (BSc) in my final year of Uni and I have chosen to base my final year project on simulating an Indoor Positioning System (IPS). Is there any free network simulator software that I can use as a tool to develop and demonstrate a working IPS within a simulation?

    I appreciate any advice you give me!

    • Hi Adam,
      Thanks for your question. What protocols do you intend to use in your solution? If you can describe your needs in terms of the technology you need to emulate, you may be more successful in finding answers.

  10. Hello Brian!

    We are working on implementing communication network testbed for a smart grid system. We are planning to emulate ADSL and LTE/GPRS communication technologies in combination with network traffic generation. the experiment also need to be analyzed which means the experiment output need to be captured. Can you please recommend an emulation tool with realistic performance and which is not complicated to configure?

    • I think your requirements exceed the capabilities that the open-source tools that I know about can provide.
      I’ve seen some research papers that discuss using NS-3 to simulate LTE packet core networks (but if you may find NS-3 to be a complicated solution).
      I think you’ll be looking for a commercial solution. Sorry I can’t be more helpful.

  11. I have working in research about detecting a malicious router that can attack autonomous system
    (AS) so I want to simulate simple AS with some routers and simulate a malicious router that drop the traffic maliciously
    I want to select the simulator to use it in this research , some ones advice me to use NS2 simulator

    thank you for help

    • I think you will want to run real software on virtual nodes in this scenario so I recommend you use a network emulator for your project.

      Most of the software projects I list on this page are actually “network emulators”. You should choose a network emulator that uses virtualization technology and scripting languages you are comfortable using.

      If you need a recommendation I can say that CORE and Cloonix are easy to use and should meet your requirement to run BGP routing software on different nodes in an emulated network. But any of the other emulators (except for Psimulator) will also work for you.

      If you really need to use a “network simulator”, you may want to use the NS-3 network simulator. I have no practical experience with NS-3 but it I understand that it supports a feature called “Direct Code Execution” (DCE) that can run real networking software, such as quagga. See and

      I hope that helps.

  12. thank you very mush for responded and for guides about my issues and I think , I will use DCE in the simulator NS-3 that can maintain multiple implementations of a single protocol

    thank you

  13. hello for everyone

    I am research student. I want make simulation about surveillance camera in WIMAX , can you help me which program can be effective and easy to use . help me please
    thank to all


  14. Thanks for this overview. Have you known about the WANem network simulator ? I have not used it yet but it was recommended and seems to have won a few awards in 2008. A new beta is quite current.

    • HI Christian,
      Yes I should look at WANem. I considered it to be more of a “black box” emulator that I would run on a node in a simulation if I wanted to simulate performance issues on a linke (such as delay, error rates, etc). So, I did not list it among the set of open-source simulators on this page. I’ll consider adding some posts about WANem in the future.
      Thanks for you post.

  15. Hello Brian I have to use Network CORE for a college project, in which I have to install software on one of the node, Example Apache server.
    The thing is i don’t know how to install applications on to a node within the Core environment, any help would be greatly appreciated.

    Regards desperate Dave

    • Hi David,
      CORE uses Linux Namespaces as its method to create virtual nodes. This means that each node does not have its own filesystem upon which you can install apps. You need to install applications on your host computer, like I do in my post about installing CORE services. Then, when you start a virtual node in the CORE Network Emulator, that node can run the app in a separate process namespace. Also you need to be aware of how CORE sets up configuration files in the filesystem for each service that runs, especially if you will create your own custom services. Remember, you should not just start a process on a CORE node. USe the “Services” dialogue box to start the programs you need and if the program you need is not already listed in the “Services” dialogue box, create a custom service. I suggest you read the rest of my posts about using the CORE Network Emulator. I encountered the same problems I suspect you will encounter.

  16. Hi,
    We’re running an experiment where we need to simulate a TCP/IP environment for testing purposes. We should be able to introduce heavy errors for retransmission such as packet drop, congestion, etc. Which of these will be a better fit?
    Someone from work recommended ns-3. I’m not sure about that. Please help.
    Thank you

    • Hi Sean,
      If you need results that are consistently reproducible, you should use a discreet-event network simulator like NS-3. If you can accept some variability in measured performance then it is much easier to use a simulator like those listed on this page.

  17. Great work. Im a Phd student. You blog really helped me. Thx

  18. Hi there,

    Thanks for this list of NS. It contribute and simplify the work of find a suitable tool for networking teaching. Best work

  19. Gabriel Babajide May 31, 2015 at 8:35 am

    Hi, I’m an undergrad looking to apply SDN to WCDMA network.. please which network simulator is best… the blog and comments are helpful. thanks

  20. Gabriel Babajide May 31, 2015 at 9:11 am

    Please of all the above network simulators, which is best for simulating WCDMA network??. Thanks

    • Hi Gabriel,
      None of these is useful for emulating a WCDMA network. You can use the CORE Network Emulator to emulate a user in a basic mobile network but I have not covered that functionality in my posts about CORE. You will need to set up the packet core network functionality yourself, regardless of which simulation p,at form you use.
      I hope that helps.

  21. Gabriel Babajide May 31, 2015 at 1:15 pm

    The project is to apply SDN to a WCDMA network… from the OSI model, I want to use SDN to program the network, decouple the control and the data plane. I’ll love to obtain as more information as I can get. Thanks

    • I think you are looking at Network Function Virtualization and/or Software Defined Networking. You should look at how the CORE Network Emulator can work in your situation. It is written in Python so you can modify it as you need to. You may also look at Mininet. I hope your research is successful.

      • Gabriel Babajide June 9, 2015 at 5:31 pm

        You think it’s going to be very difficult, no?… I’ve been looking @ developing a model from the TCP \ IP model and create a topology off it.. which I will then seek to simulate… what do you think??

        • Well, the nodes in the access network and in the packet core will need a TCP/IP network (or something that emulates a TCP/IP network) so they can communicate with each other to create the required services. I suggest that you look at the RouteFlow project for some inspiration. If you are focused on SDN, then I suggest you use the Mininet network simulator.

  22. Gabriel Babajide May 31, 2015 at 7:00 pm

    Thanks… Thank you very much

  23. Hi Brian,

    thanks for this overview.very helpful.
    I am working on a student project and want to simulate some IP-based fast reroute techniques, can you recommend a simulator that can help me?
    I appreciate any advice you give me! Thanks.


    • Hi Jiadai,
      Fast-reroute techniques are implemented by the routers you emulate. So the simulation tool you use is not a factor in making this work. If you need a simulator that can run commercial router software (where I think you will find fast reroute is better supported than on Linux), I suggest that you use GNS3 or Cloonix because you will need to use full virtualization (VirtualBox, or QEMU/KVM).

      • Thank you for you response.

        I have read some papers about IP-based fast reroute techniques. On the simulation part, they all mentioned that they used some network topologies such as ABILENE, GEANT and BELNET, but I don’t know how they simulated the IPFRR mechanisms on those networks.
        So how I can make the simulation work to evaluate those mechanisms? I am still a newbie, hope you can give me some hints.

        Thank you!


        • Hi Jiadal,
          You will need to use GNS3 and Cisco or Juniper images to test IP Fast Reroute technologies because most of these are not implemented as open source software.
          ECMP is implemented in the Linux networking stack and it is probably one of the fast reroute technologies covered in the papers you read. If you cannot access Cisco or Juniper software, you can study ECMP in Linux.

  24. Is there a way to save the topology of cloonix?.


    • Hi Chris,
      That’s a good point! It appears there is no “Save Topo” command in version 26. I suggest you post your question to the Cloonix mailing list.

      • I am sorry to say that there has been a cloonix mailing list once, but now, the list is closed.
        There is very little communication around cloonix apart from this blog here.
        Do not hesitate, Brian to forward anything concerning cloonix to the cloonix team. The mail you transmitted about saving and configuration was good for the product progress, the needs we have here usin the tool is not the same as the needs other people may have. Here we never save a topology, we just scritp its construction and send configuration commands to virtual machines always starting from virgin reference guests.
        Thanks Brian for this blog.

    • Sorry about that, next version 29 will have the save function back.
      The rewriting and simplification of cloonix had side-effects. The save functions back in v29 and the monitoring/traffic-shapping of all lan links in v30.

  25. I’m learning about Security stuff, Pentesting specifically. Which Emulator/Simulator you suggest me?


    • I suggest you use a simulator that uses virtualization tools like KVM or VirtualBox. This way you can test security with different distributions, kernels, and even with operations systems like Windows.

      Use Cloonix or GNS3.


      • Yes, i have used VirtualBox but not real scenario. It isn’t necessary for reconnaissance, gathering informations of ports, OS, figure out the vulnerability, but i just straightforward to exploit. I think those hardly ever happen in real world, so i need to stand at malicious attacker
        side, point of view, which always try to figure out the way to get in, even against sophisticated
        & uptodate appliance (such as routers, firewalls, IDS/IPS etc).
        Can those 2 (Cloonix or GNS3) adapt uptodate & sophisticated appliance, which always been patched, updated. I mean can i update the router software, IDS/IPS (if any) etc like in real ?


        • With last cloonix (v28) comes the following choice of distribution:
          archlinux, jessie, stretch, centos-7, opensuse-13-2, ubuntu-15-04, fedora22,
          opensuse-42-1 ubuntu-15-10 fedora23 openwrt_15_05.
          In all except openwrt, you can install gcc, compile and run your patched software.
          You can also update your virtual machines at any time providing the host in which cloonix server is running has an internet connection.
          The next version of cloonix (v29) will be available before chrismas.

  26. Hi Brian,
    I’m working on a student project on “IP Traceback mechanism using packet logging”,which simulator do you recommend ?


    • I think it depends on how you will set up your test scenario. Will you be modifying the Linux kernel? Will you run modified networking stacks on some of the nodes on the network? If so, I recommend using a simulator that supports full virtualization, like GNS3 or Cloonix.

      If you need to run a lot of nodes in the simulating or will all use the same kernel and networking software, use a simulator based on containers, like CORE or Mininet.

      All these are actually “emulators” that provide accurate functionality but may not provide accurate performance simulation if you run large amounts of traffic. If you need performance accuracy and reproduceable measurements of performance, I suggest you use a discreet-event simulator like NS-2 or NS-3.

      I hope this helps.


  27. Hi Brian,
    I am working on student project. I want to setup ipv6 bgp scenario and analyze route reflector and ibgp performance on heavy traffic loads.Earlier,I have simulated ipv4 bgp in ns2 but now i am not able to scale it in ipv6. i dont want to use ns3. Please suggest

    • Hi Shipra,
      I need to know more about the simulation scenario you want to create. I assume that, since you are using NS-2, you need a discreet-event simulator so only NS-2 or NS-3 would work for you because they are the only discreet-event open-source network simulators I know about. Since you wish to simulatate heavy workloads, I think a simulator like NS-2 or NS-3 is the best solution because using an emulator to run heavy workloads may not provide reproducible results.

  28. Is there any tool that i can use to simulate users, i.e. internet users with unique ip addresses.


  29. But what if I have one system that emulates the x number of users, obviously with different IP addresses, and one system containing my network or wan and other sections of the experiment?

    I was wondering I have a named interface with a single IP address attached to it so my network (other physical computers) will be seeing it as a single user. Are these software able to work around that as well?


    • CORE will do this. You can create hosts with all your users in one CORE canvas and your WAN in another CORE canvas and then connect the two canvases together.

    • Also Cloonix allows separate servers that can be connected.

    • If your test network is other physical PCs and you want to emulate many servers on one PC and connect it to other PCs, then most of the network emulators listed in this page can be used to set up a network of hosts and then connect that virtual network to you PC’s Ethernet interface so it can interact with your other physical PCs. Of the simulators I have reviewed, I think Psimulator2 is the only one that would not work for you.

      • Got the idea. Thanks. Since you are online, I should put another question as well. I saw your article on Testing IPv6 addressing in a network simulator – Part 1 and Part 2. Can this setup be used as an overlay to test another protocol that is similar to IPv6 or I would have to port the implementation into the simulator itself and then use that code to interact with IPv6 network. One such scenario might be to test a protocol e.g. ILNPv6 with IPv6 while testing interoperability.


        • You need to install the software you will test so it will run on the virtual nodes. InCORE, you install software on the host system and then create services in CORE. See my post about making custom services in CORE. It would be simpler to do this in Cloonix or GNS3 where you could create a disk image that has the software each node will run. But GNS3 and Cloonix use full virtualization so use more resources.

  30. By canvas, you exactly mean an independent physical server with an interface card (even though that interface card will be bound to a single ip)?
    I am going to look into CORE, and try to do exactly what you suggested.

  31. Salutations for this effort to concentrate all this pertinent information in a so precise manner

  32. macchindra patil February 1, 2016 at 4:44 am

    hello sir

    i am doing the project of Cluster based certificate revocation with vindication capabilities
    as a fresher i am unable to analyze the project

    plz help me how should i use GNS3, where to actual coding
    which language suitable for this
    how can i show simulation to users
    plz help me sir

  33. Hi Brian,
    Thanks for the useful post. I am a researcher who is interested in Computer Network, Network Security, and Cloud Computing. I am looking for a simulator/emulator/tool that can suit my area of interest.

    Thanks in advance.


    • Hi Farid,
      Any of the simulators I have written about (except for Psimulator2) would probably meet your needs, depending on the details of your requirements.
      My preferences for emulators are CORE or Cloonix. If you are using Windows or Mac, consider using GNS3.

  34. Hello, Brian !

    Congratulations for taking the time to create such an amazing content, and to share it with the whole Internet.

    It is very interesting your discussion about the differences between emulation and simulation.

    I’d really like to see more information about simulation/emulation of non-IP protocols, or at least the protocols in the lower levels.

    All the best,

    • Hi Hilton,
      Thanks for reading my blog. I’ll have a look for non-IP simulators and emulators, or Layer-2 emulators. But since lower layers tend to be more reliant on specific hardware, I am not sure I will find any that are based on open-source software.

  35. Parthiban Nalliamudali March 29, 2016 at 2:57 am

    Hi Brian,

    Thanks a lot for this post/article. My bad, I missed this for so long time.
    Awesome part is, you take time to reply every single reply/comment. That’s really amazing.

    I wonder, if you can suggest from the list, the simulator where I can also do automation of network configurations & network protocol testing.

    I believe that is outside the scope of all these network simulators and/or emulators listed.
    For education purpose, I am trying to create a framework for this purpose.

    Thanks Again!


    • Hi Parthiban,
      Thanks for your comment. I need to know which network automation tools you are considering before I can advise you. Some network automation tools (like Ansible, or Docker) effectively do the same work as the network emulators I reviewed in this blog: they set up hosts and create networks between them in an automated fashion.
      To do what you want, you need a tool that supports nested virtualization because you will need to create two “layers” of virtual networks. The first “layer” will consist of an emulated network created using a tool like Cloonix or GNS3. The second “layer” will be created by the network automation tools you are testing and it will operate as if the first “layer” is the hardware infrastructure available to it.
      I suggest using Cloonix on a Linux system because it will support nested KVM.
      I do not know how well this will work. Good luck.

  36. Hi Brian
    please suggest any simulator which can record energy consumption of routers in backbone networks.I could not find energy model for wired networks in ns2.


  37. Hello, thanks for the informative article.

    Do you have a recommendation for wireless sensor network simulator in particular? Thanks

    • Hi Nguyen
      I suggest Mininet-WiFi. The CORE network emulator is also useful for emulating a wireless mesh network (but does not emulate the radio part).

      • Hi Brian !! In order to simulate Wireless mesh network as you said CORE is a good network emulator. Does it also have the features to move nodes in a real time and do path computation/optimization with a routing protocol ?
        Is there any link/website which shows tutorial for simulating wireless mesh network in CORE?

  38. Hello
    thanks for informative article
    could you please help me to get the names of open source multimedia simulators for networking
    Which can be used to send audio video messages..

  39. I really like and appreciate your forum.Really looking forward to read more. Will read on…

  40. Thanks for keeping this blog. It is wonderful to find this much good info and experience in one place. I will, hopefully, be doing some of this in my job in the very near future. I am late to the discussion, but I think it is valuable to keep “simulation” and “emulation” conceptually distinct. The key distinction is the ability to create test-beds for physical hardware and systems under test. If I have a new device, I cannot “plug it into” a simulation to discover its behavior. I can only “plug it into” a simulation when I already know how it behaves in all relevant circumstances. How do I find this information out? I plug it into an “emulator” first! Then, I subject it to every interesting condition, measure its behavior, THEN I can write a simulation of it. Think of it this way: if I shoot you with a good emulation of a gun, it will probably — literally — kill you. If I shoot you with a good simulation of gun, you will just have to wear a sign that says, “I’m simulating a corpse.”

  41. You can find more cisco network diagram templates and examples in creately diagram community. There are 1000s of examples and template to be used freely.

  42. Hello, I was wondering if the OPNET Modeler simulation open source or not?
    and what are the best software simulation for WiMAX network? because I want to study WiMAX scheduling Algorithms ..

    Many Thanks,

    • OPNET is a commercial product. The only open-source emulator that may meet your needs is CORE. NS-2 and NS-3 can be used to simulate WiMAX but they have a steep learning curve (and I have not used wither NS-2 or NS-3).

  43. Nancy Carrere June 2, 2016 at 5:12 am


    I reviewed quickly all the simulators listed on your page, however I am not sure any of them would fit my need which is, to emulate a 3G/4G core mobile network : this implies the need to emulate many protocols (diameter for instance), not only IP, and can also imply some processing of the data received within the nodes being emulated.
    The only tool I found in your list that might be suitable (but I am not sure…) would be N3S, since the web site says “The ns-3 simulation core supports research on both IP and non-IP based networks”.
    But I would very much appreciate your feedback on this matter in case you have other suggestions?
    Thanks a lot!

    • I agree that emulating an LTE network is a complex scenario. You would need to find open source implementations of LTE protocols. I am not aware of any. I think NS3 is the most likely to work because you may write your own code to simulate the LTE network.

  44. LPEECOMPUSERVE LTD June 3, 2016 at 8:54 am

    I want to run a WI-FI network for a very large school. But I want to simulate/emulate the network using an appropriate software that will emulate all the hardware I will employ for the design of the network. Please tell me the software’s I can employ to tackle this problem. Thanks as I wait in anticipation for your reply. My mail is


  45. Hi Brian,

    First of all Thank you for providing all this helpful information.

    I need your suggestion regarding a task.

    I want to use a network emulator where I can add some new devices from non standard vendors. And then I want to configure the devices/ or simply input information in the attributes of configuration. Then using my application I want to get the configuration or attributes to generate configuration in a file. Can you please suggest me any emulator where we have APIs to communicate or can be used to complete the purpose?

    Many Thanks in advance!!!


    • Hi Gaurav,
      If your non-standard devices can run in a Linux container then try the CORE network emulator. CIRE has a Python API that supports node configuration.
      If your devices need full virtualization like KVM/Qemu, then use Cloonix. Cloonix supports adding node configuration commands to the project file.

  46. Hello, i want to do routing in VANET using Software Define Network. Can u tell which simulator is required and how to do integration of that simulator with SUMO.

  47. Please I want to know if any of these open source network simulator/emulator App can simulate GPON, POL, or any FTTx related architecture

  48. Hi Brian,
    Thank you for the great post.
    I’ve went over some of the tools you’ve mentioned and still have some openm questions.
    So, I would like to hear your opinion on the subject below.

    My group is working on development of smart SDN applications, specifically targeting network health analytics and traffic redistribution.
    We need to emulate DC and enterprise networks, having following capabilities:
    1) connect the simulator to SDN controller
    2) generate network traffic (TCP\UDP) and being able to gather particular flows information (sFlow\NetFlow?)
    3) being able to reconfigure devices on the fly using OpenFlow and see changes in the traffic patterns accordingly
    4) create large topologies easily
    5) having some GUI tool to review the outputs and design topologies

    If you are familiar with a tool\tools combination that can supply all\some of the above functionality, I’ll realy appreciate your help.

    Thank you,

  49. Great website. Thanks for pulling all these in a single location.
    I have been using Dynamips/GNS3 for a while ..iou..unl… .Knowing about these other opensource options is great.
    Like a buffete….

  50. Hello Brian,
    Thank you for this informative post. I have a question for you if you don’t mind.
    My research is on software defined mobile networks, where I propose an architecture of distributed controllers. In my case, it’s really important to have inter-communication between the distributed controllers, and I’m looking for a simulation tool to validate my approach.
    So, from your experience, what tool can provide me with such feature?


  51. Hello Sir,
    I have to work in 802.11e mac layer.Can we use CORE to work in layer 2?

    • No, CORE is best for Layer3. Generally, most of the emulators I discuss are best used for Layer 3 and higher. You may want to look at mininet-wifi to see how it emulates the wireless Ethernet link layer…

  52. I’m interested in simulating public WAN for testing new UDP based multi-cast protocol. I am thinking of it to be like a overlay network of internet nodes running new multicast protocol. This means, at the destination, I can incur packet loss, delay, corruption etc. Which simulator is recommended ?

  53. HI brain>>

    which software is best suited to simulate the real time traffic analysis of traditional network.i want to compare different topologies of SDN and tradition network.for SDN i am using mininet what software should i use for traditional network that simulate real time traffic so i have accurate readings for Round trip time,average delay,packet loss

    • The emulators I generally suggest for traditional network emulation are: Cloonix, GNS3 and CORE. If you are already using the Python API for mininet, then you may find CORE is more familiar to you to use since it also provides a Python API.

  54. Please tell What is the best simulation tools for PMIPv6 except NS2 and NS3?

  55. Brian,

    You clearly know way more about these tools than I do.

    Maybe you could save me a bunch of time and make a recommendation for me. Perhaps, the best answer for my needs is a custom solution, and that’s okay too.

    I develop voip/sip software I was interested in simulating network failure and recovery scenarios by actively running my components in some sort of virtual Network environment on a single machine and observing how they behave when network sub-nets or server nodes become unavailable or come back on-line. Seeing how well (or poorly) they perform in a stable and unstable network environment would be valuable too.

    My components build on ZeroMQ and Redis so whatever platform is okay with me.

    Any suggestions?

    Thanks so much!

    • Hi Karlton,
      I don’t know enough about the software you want to emulate to make a strong recommendation. But, the simplest case is to use GNS3 or Cloonix. These offer full separation between virtual machines. If you want to run a lot of nodes in an emulated scenario, you may use CORE but then you would need to be careful which directories you use since you are writing on the host filesystem unless you set up mount namespaces using CORE’s Python API.

  56. hi
    I’m Master student, I’m going to make an evaluation of diffrent routing protocols in Ad hoc networks(throughput , distanc , delay , jitter , availability and # of nodes) with different numbers of nodes 5,10,20,30,50.

    can you please advice me which is the best?
    I heared that ns2 and ns3 is not GUI , and I’m familiar with Windows and OSX , so if the best simulator is ns3 , is it easy to learn??


    • If you need to use a discreet-event simulator like NS-2 or NS-3, then I do not have an opinion because I have not used those tools very much. NS-3 is the newer version so maybe you should use the tool that is currently supported (NS-3). That said, to run different routing protocols more easily, I suggest using an emulator like CORE. It may not produce perfectly repeatable results but it will allow you to set up test much more quickly.

  57. Hi Brian,
    I happened across your article via Google and wanted to ask a quick question if you don’t mind?

    Can these programs be used to generate network traffic?

    I’m asking because I’m working on a project now that polls network switches for different data sets via SNMP, and examines forensic Netflow. We then tie the two datasets together for reporting. Our local network traffic isn’t large enough to help load test our software, so I’m looking for a tool that can scale our network traffic.

    Would you recommend any of these tools for this job?


    • Hi Clinton,
      Yes, most of the emulators listed on this site could also be used to generate traffic. You could connect the emulated network to the NIC of your PC and then run SNMP or Netflow software on each virtual node and run scripts on each node to make them each send traffic via the NIC to your test system. I think CORE, Cloonix, or GNS3 are good candidates for trying this out.

  58. bonjour je voudrai savoir comment on arrive a déployer Ansible avec des Equipements Cisco sous gns3. merci pour votre compréhension j’attends avec i,patience votre reponse

  59. Hi Guys,
    Can anyone suggest a simulator for simulating energy networks particularly smart energy networks, I am looking to create a simulation for home networks. Target is to simulate home IOT nodes (Any device with a sensor, whether it is a smart meter or any other home appliance).

    I researched that NS3 can simulate energy networks but not sure whether it can simulate energy networks or not (In my case home network)


  60. Hi Brian, I’m working in a project to compare IP-based networks vs Openflow-based. I’m using network throughput and latency (iPerf and Ping) and creating different topologies (tree, bus, single, etc) to collect results from the network and compare. For Openflow I used Mininet which allow me to create link with specific parameters (bw=100Mbps, Delay=2ms). Which net sim would you recommend to do the same with ip-based networks? I was trying with GNS3 but I notice GNS3 won’t let me configure the link to specific parameters (bw, delay). Some of the other options looks like also doesn’t support link parameters.

    • Hi Daniel,
      Cloonix includes a feature (called A2B) that will allow you to configure link attributes links.

      • Thanks Brian,
        I give IMUNES a try and created a small topology with a layer 2 sw and 2 hosts connected. I started the simulation and ran iPerf between the two docker containers and it worked perfect. Then I tried adjusting the link bandwidth to 100Mbps and delay of 2ms and it doesn’t work, not even a simple ping between the containers. I remove the links parameters and everything works again… any suggestion?

  61. Hi. I want to develop a new File Transfer Protocol for Local Area networks (LAN) and i do not know which simulator is more proper for that. Can you help me with that please? I need to know which one is easiest on config, run and test.
    Thank you my good friend.

    • Hi Ali,

      I assume your software testing must be rigorous and repeatable. If you need to measure performance and step through the protocol, you will need a “discreet event” network simulator like NS-3. NS-3 is complex and I do not have any experience using it. But it is used by academics around the world because it offers repeatable results. NS-3 can also support different link-layer protocols besides just Ethernet.

      On the other hand, network emulators are easier to use. They work like “real world” systems but the performance results will not always be consistent. Most are limited to experimenting with Network-layer and higher layer protocols. The emulators I review in this blog use Ethernet as the Link-layer protocol. Emulators may be “good enough”, depending on your needs.

      Emulators I usually recommend for “traditional” IP network emulation are: Cloonix, GNS3, and CORE.


      • Thank you very much for this perfect answer.

        I prefer not to use GN3 because of its complexity and thats why i asked this question.

        So, do you recommend Cloonix or CORE for my project? (Assuming that we do not use GN3 unless it is absolutely necessary)

        • If you will use traditional virtual machines, use Cloonix. If you will use Linux containers then use CORE.

          • Actually, Cloonix also support containers. If you will use namespaces, the building blocks for containers, then use CORE. I =have written many posts about both Cloonix and CORE so review those posts and you will be able to determine which one meets your needs best.

          • You really helped me sir. I can only say thanks and wish you all the best dear Brian.

            Good luck …

  62. Hi, I don’t see in your list, maybe because it’s a French project. It seems to be a simulator and not an emulator, although I couldn’t find rapidly any confirmation from their website.

    Do you know ? It’s allows looking for alternative to lots of softwares. For instance for GNS 3 (, you can see that there are fewer alternatives than the ones you list here. Maybe worth updating their website ?
    Anyway it’s a useful site to follow to find new alternatives.

    I see there are more than 150 comments on this post, which is repellent to read, although there are precious information. Maybe you could refactor these into dedicated question pages (in a stackoverflow way) ?
    And instead of refreshing this post, maybe you could create a new post (one per year ? updated for 1 year), as it is done on this (also) very interesting blog

    Last one thing, in order to make an educated choice concerning a simulator/emulator, would it be possible to get a comparison table (something more viusal and sortable) with the following data:
    – Type (emulator / simulator…)
    – Some caracteristics (discreet event…)
    – Virtualisation used (KVM…)
    – Supported vendors (CISCO, Juniper, OpenvSwitch…)
    – The current version
    – The platform on which it can be installed: FreeBSD / Linux (debian…) / Windows
    – Language(s) with which the software is programmed (Java…)
    – The type of GUI (web clientless GUI…)
    – Your opinion on the beauty / usability / ergonomy of the GUI (Cloonix’ one sucks)
    – The use cases
    – If they are deprecated
    – …

    I discovered your site through Cloonix’ doc but after reading many of your articles, I think I prefer CORE, but I still have some questions:
    – As CORE is a fork of IMUNES, IMUNES should use the same virtualization technology (LXC on Linux) but it is not explicitly said in your posts.
    – IMUNES uses OpenvSwitch for switch emulation (, and CORE used to use brctl (2013 test drive) but no more info…

    However, I still hesitate between IMUNES and CORE. What would you argue ?

    Thanks for your great work, you made my day.

    • Hi Romain,
      Thanks for all your suggestions.
      To answer your questions about CORE and IMUNES: IMUNES has been re-written in Linux to use Open vSwitch and Docker while CORE still uses namespaces and Linux bridge. When choosing which tool to use, use the one that uses technology you are most comfortable using and debugging (example: namespaces versus Docker).

  63. Hi Sir
    I’m looking for a simulator/emulator that can simulate both SDN and legacy(traditional) network, since my research is based on comparative analysis on both technologies. My problem with Mininet, as far as I know, it’s only support SDN only. Please I am looking forward for your advice. Thank you.

    • You can emulate a normal router in Mininet. You’ll need to create a host, set up the software (like quagga) and configure the necessary directories using the Python API.
      Also, you can run Mininet networks inside VMs in GNS3 or Cloonix.

  64. Hello guys, I am working on a project and I have a doubt, actually I am looking for an open source software tool which is appropriate to simulate SDN/NFV Environment.
    Any idea?

    • I also want to add , that I don’t have any experience with python so I am avoiding using Mininet.
      My project includes : implementation of that open source simulation software/tool. A test case must be modeled and simulated and test result will be evaluated to show this tool is feasible with SDN/NFV . Please reply if you have any idea .
      Thanks 🙂

  65. Hello guys,

    Are any of you familiar with ns-3? I want to simulate a network and compute link delays and some other metrics but I need some assistance in this matter.

    • Hi Nadir,
      I hope you find the answers you need. NS-3 is more complex than most of the network emulators I have written about in this site. Since the learning curve is long, I have not yet tried NS-3.

      • Hi Brian,
        I really like and appreciate your discussion forum. currently I’m working on Internet of Things, so Brian would you suggest me an appropriate simulation tools for this.
        Thank you in advance,

        • Nothing I have written about to date is specifically adapted to emulate an “internet of things”. I think any emulator will work for you but you’ll need to do the following:

          • On hosts that emulate the the devices at the edge of the network, you’ll need to write scripts that emulate activity typically seen in IOT, such as intermittent connectivity for applications, high ratio of control traffic to data traffic, etc…
          • On hosts that emulate the packet core, or that run the applications than manage the devices, you’ll need to install the software that handles the messages from the edge devices.
          • You’ll need to emulate thousands of edge devices if you want to create a realistic scenario.
          • Some suggestions:
            • The CORE network emulator can emulate many nodes on the same PC
            • Mininet, or Mininet-WiFi, can also emulate many nodes (if you are working in an SDN scenario)
            • “full virtualization” emulators like Cloonix or GNS3 emulate fewer nodes but allow more specific configurations, such as different kernels or operating systems, on each node
            • A discrete-event simulator like NS-3 will probably be best for simulating behavior of many nodes in an IOT network and there is probably already a lot of work done by other researchers in the topic of IOT using NS-3 that you can reference.


  66. Hi Sir Brian,

    What are the current simulators for Millimeter Wave energy efficiency in Mobile Cellular Network?
    Because currently i am working on 5G Mobile cellular network basically i want to reduce Energy consumption of the Cellular Network, so please guide me which one Simulator/Emulator best for ” The Energy efficiency in Mobile Cellular Network” ??

  67. Thanks Brian for the great exposure. I wonder what programming languages and tools are used to build such simulation software in windows and linux?

  68. Akinwunmi Cypriano January 10, 2017 at 5:26 am

    Thank you for this informative post. Your website is a great website and once again for putting these together in one location.Please I have a question for you if you don’t mind. I am new to the network environment, and i intend taking the Comptia network+ exam soon, which open source lab. simulator software can you suggest for me? And in addition,which open source lab. simulator software is good for studying Cloud+ and Security+.

  69. Hi Brian,

    I just wrote YANS (, Yet Another Network Simulator. The whole purpose was to ‘make it simple to simulate simple networks’.

    In my blog ( I gave more details on the rationales behind creating YANS.

    Will appreciate if you can evaluate YANS and give me feedback. If you find it useful, feel free to include it in your list.


  70. Hi Sir Brain,
    i am working on 5G System and want to reduce the Energy Consumption in Cellular Network, so which one Algorithm is best for reducing the Energy and make energy Efficient network for future 5G???

  71. I’m looking at this as part of my DR planning. I have a current location and I want to practice if it goes down. How can I switch networks for my users. I like the tools they are (so far) a little lite on features. I already own the Cisco equipment and IOS, so if I can load them all and drop in my existing configs, I’m off and testing. This sounds like a good plan.

  72. Hello,
    I have been working on the development of an integration testbed of Linux containers (LXC or LXD) and ns-3 network simulator. The ns-3 has an emulation mode execution set up where the ns-3 net devices can be connected to LXC via tap-bridge.

    In this regard, there was a preliminary tutorial provided at In my research work, I may need to deploy 1k to 10k Linux containers. Therefore, I have decided to use the LXD that is built on LXC for the high level and service oriented management.

    In my host machine, I have Linux containers created by LXD and a ns-3 simulator. Can you help me or show me how the Linux containers can be integrated to the ns-3 simulator?

    Thanks in advance

  73. Thanks Brian. These infos will help me a lot on my master degree research.

  74. Hello Brian. I’m doing research on distributed operating system. So I need a simulator to run my algorithm. Can I use any network simulator to design a distributed OS algo ? or Is there any specific simulator for distributed Os

  75. Hi Brian, great info you got here. I’m after a network simulation and modelling tools capable of producing graph or table results for comparison purposes. an alternative to Riverbed opnet.

  76. Dear Sir,

    I build my own network topology and put the link bandwidth 100 Mbps and when I test the throughput using iperf command between two hosts, I get very small value about 100 kbps.
    Why I got this small number?
    I appreciate your help

  77. Hello Brain,

    Great article!! which simulator/emulator do you recommend if i want to simulate an SDN network, in which I want to feed its controller with different data input including time to change the path or converge to different toplogy

  78. Hi Brian, I am trying to find a suitable network simulator for optical networks that can offer QoS for real time multimedia streaming applications. Optical network wise, I am thinking of WDM with EDFA running at 40 or 100Gbit/s per channel. I have discussed OBS, OCS and OPS within my dissertation, however I guess simulating that would be too timely and complex.

    Any ideas?

  79. HI sir ,
    I have to work in 802.11ac mac protocol . Except ns3 , what can we use to simulate ? or only ns3 can do that

  80. Vishal Anantharaman April 13, 2017 at 11:14 am

    I want to try network programming . Which one would be the best to use for network programming ? I am already using GNS3 but since don’t own cisco Nexus image I am unable to try out my codes. Can you provide your opinion on this ?

  81. nise post ……….

    thanks for posting this information. its helpful

  82. Michael Jhun Nuena May 24, 2017 at 3:11 am

    HeyBrian Can you Give Me tool That helps manages networks like viewing routers if it has a connection per floor. It can be link or link also because im working for my capstone and thesis

  83. Hi Brian,

    I’m looking to virtualize network routers such as Cisco, RAD for L2 and L3 Ethernet activations. Can you suggest some open source tools to simulate and emulate such behaviors virtually without the use of real physical devices. This is for testing and development purpose only.

  84. Hi Brian
    Thank you for this nice post.
    First, I’d like to ask you: Can I use Openet as SDN simulation tool?
    Second, What is the best tool to simulate SDN network to monitor the behavior of network to define the optimal placement of the controller based on dynamic traffic.

    • Hi Nasser,
      Thanks for your interest. My blog does not cover commercial network emulators so I cannot comment about OpNet. Any network emulator may be used to evaluate performance. Mininet is designed to support SDN network emulation so it is probably your best open-source option. If you need reproducible results that you might use in a research paper, you must use a simulator like NS-3. I do not know enough about NS-3 to recommend any specific path forward with that tool.

  85. hi
    Thanks for sharing this valuable post. Please guide me and suggest me an easy GUI simulator where i can simulate different protocols in VANETS b/w different types of vehicles like car vs trams, truck vs car etc (different speeds)

  86. Hi Brian:
    I have read your most posts about network simulation,The writing is wonderful!I have benefited a lot from it.I have developed network simulation for ten years by opnet.but now I found that network simulation is more useful in building network testing platform.
    I want to build a network attack and defense platform.But I’m not familiar with the emulation tools you mentioned above.Can you give me a suggestion? Which tool is better? What are the differences between IMUNES and CORE ? Does IMUNES support multiple machines running? Does both IMUNES and CORE support DOCKER?
    By the way, are you familiar with emulab and ToMaTo Testbed?

    • Hi QiTan, I know about emulab and ToMaTo. At some point in the future, I plan to investigate whether ToMaTo can be installed and used on a single laptop computer. I understand that emulab is a research platform and is not available to individuals like me.
      I cannot recommend a specific emulator because I do not know all your requirements. I suggest you consider what type of virtualization best meets your requirements and use that as a basis for choosing the emulator. IMUNES supports Docker natively. CORE has the ability to connect to a Docker container but does not implement nodes using Docker.

      • Hi Brian:
        First of all thank you for your reply.I want to find a tools for supporting large scale network simulation and support dock(use it to Load own applications) and distributed support for multiple emulator. Does IMUNES only support stand-alone operation?

  87. Hi Brian, I am student at DeMonfort University which is based in the UK and I am studying Computer Security (Bsc). For my final year, I am required to do a Research Development Project (which is based on Penetration-Testing) for my dissertation. For my project, I am trying to find 3 or more types of CCNA/Cisco based router simulators, to compare and identify the vulnerabilities, as it will allow me to find ways to exploit them.

  88. Hi all.

    Please check this new simulator., It is very useful to learn and teach how routing protocols works.

  89. Hey How to generate traffic from csv file in mininet.
    How will I generate the csv file and where will I save it.

  90. Hi Brian,
    I’m a master’s student in computer engineering and for my final year I’m supposed to do a research based on SDN-IoT network. I’m trying to simulate an IoT network and control this network with a SDN controller. I’m confused about choosing the best simulator which is good and also easy to learn. What’s your suggestion?

  91. dear sir,
    i am research scholar, in cloud cryptography simulation tools. i written encryption and decryption program. that simulate to cloud cryptography simulation programs. please tell me…

  92. hi Brian Linkletter:
    I want to emulate large scale SDN netwrk .Maxinet can suported mininet cluter .But I can not Correctly install and running the software .I hope to get your help.What other software support this function ?

  93. Hi Brian:
    I know this is a down-in-weeds question but your blog seems to be the de-facto Cloonix support site so I figured I would see if you might be able to help. I’m trying to install the latest version of Cloonix based on the instructions in your post on “DNS and BIND demonstration using the Cloonix network emulator“. More specifically, I cloned the gitHub repository and then ran the install_depends and doitall scripts. Unfortunately, the build fails with the following:

    virgl_egl_context.c: In function ‘virgl_egl_init’:
    virgl_egl_context.c:165:49: error: ‘EGL_PLATFORM_GBM_KHR’ undeclared (first use in this function)
    d->egl_display = get_platform_display (EGL_PLATFORM_GBM_KHR,
    virgl_egl_context.c:165:49: note: each undeclared identifier is reported only once for each function it appears in
    make[3]: *** [virgl_egl_context.lo] Error 1

    This would appear to be a bug in either the latest posted source or the build scripts (e.g., they are using unstable code). Any suggestions?

  94. Hi Brian,
    First thanks to this blog that i find very usefull for network emulators/simulators.
    In my PhD I intend to develop some Optimisation algorithms for Service Function Chaining.
    Hence I need to simulate/emulate an NFV/SDN Environnement in which i will integrate my algorithms to test their performances (with scale of nodes, links, Network functions…etc).

    –> Can you please advise what are the best simulators/emulators that i could use for this issue (In conjunction perheps of SDN controllers like OpenDaylight, ONOS,…etc.).

  95. Do you know Filius?
    The site is German,but the software can be in English, as well as introductory documentation

  96. Hi Brian, you did a great post and I would like to ask some questions about it. I’m noob in this field, but I would like to set up a test environment to do some live migration tests over a single physical machine. I explain my idea : I want to have two containers emulating a streaming server linked via an emulated wan and a third virtual machine/containers by emulating the client that will receive the video streaming. I don’t know what software and in which order I should install to make everything working. I have thought that I need, first, installing a linux server like ubuntu and on top of that I need to install a network emulator. My first doubt is : am I to install this network emulator as simple software on top of linux server or like a docker or virtual machine? This network emulator will have to emulate a wan link and connecting two containers which will emulate the streaming servers. Second doubt is : How can I connect these two containers to my network emulator? Or better are these two containers to be installed inside a virtual machine? I mean do I need to nest containers into virtual machines or I simple can connect them to the network emulator? So to sum up, my ideal scenario would be : a network emulator for emulating a wan link between two video streaming containers and a third machine emulating the client of service. Could you please , help me out to have a clear picture of what software and in which order to install on a unique physical machine? Many thanks in advance.

  97. Narayanan Prasanth February 3, 2018 at 4:00 am

    Hi Brian, Hats off for the job you have done.

    I want to simulate network switch scheduling algorithm for buffered crossbar switches. Kindly suggest me the simulators for the above work.
    – Prasanth N

    • All the emulators use either Linux bridges or OVS bridges. In your case you will probably have to either implement your switch on a Linux node in your scenario. Or, use a real-time simulator like ns-3 and implement your algorithm in a simulated switch created by you.

Leave a Reply

Text formatting is available via select HTML. <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>