SDN digest - six open source emulators

Last time we did selection of open source SDN controllers. Today, open emulators of SDN networks are next in line. Anyone who is interested, we invite under the cat.

SDN digest - six open source emulators/flickr/ Dennis van Zuijlekom / CC

mininet

The tool allows you to set up a software-controlled network on a single machine (virtual or physical). It is enough to enter the command: $ sudo mn. According to the developers, Mininet is well suited for deploying test environments.

For example, professors at Stanford (where they developed Mininet) use the utility during practical classes at the university. It helps students develop networking skills. Some of the tasks and demos can be found in the repository on GitHub.

Mininet is also suitable for testing custom SDN topologies. The virtual network is deployed with all switches, controllers and hosts, and then its performance is checked using Python scripts. The settings are then transferred from Mininet to the real network.

Of the shortcomings of the solution experts point out lack of Windows support. In addition, Mininet is not suitable for working with large-scale networks, since the emulator runs on one machine - there may not be enough hardware resources.

Mininet is released under the BSD Open Source license and is being actively developed. Anyone can contribute - there is information on how to do this at official website of the project и in the repository.

ns-3

Simulator for discrete event simulation networks. The tool was originally conceived as an educational utility, but today it is used to test SDN environments. Manuals for working with ns-3 are on project documentation website.

Among the advantages of the utility are support for sockets and libraries pcap to work with other tools (like Wireshark), as well as a responsive community.

The disadvantages include relatively weak visualization. For displaying topology thrown out NetAnim. Also, ns-3 does not support all SDN controllers.

Reading on the topic in our corporate blog:

open net

This SDN emulator builds on the previous two tools, Mininet and ns-3. It combines the strengths of each of them. To make solutions work together, OpenNet uses a Python binding library.

Thus, Mininet in OpenNet is responsible for emulating OpenFlow switches, providing CLI and virtualization. As for ns-3, it emulates those models that are not in Mininet. Job Guide can be found on GitHub.Is there additional links for materials on the topic.

SDN digest - six open source emulators
/ PxHere /PD

Containernet

This is a fork of Mininet to work with application containers. Docker containers act as hosts on emulated networks. The solution was created to allow developers to experiment with cloud computing, edge computing, fog computing, and NFV. The system has already been used by the authors of SONATA NFV to create an orchestration system in virtualized 5G networks. Containernet acted the core of the NFV emulation platform.

You can install Containernet using guide on GitHub.

Tinynet

A lightweight library that helps you quickly prototype SDN networks. API tool, written in Go, allows you to emulate any network topology. The library itself "weighs" a little, due to which it is installed and works faster than analogues. Tinynet can also be integrated with Docker containers.

The tool is not suitable for large scale network emulation due to limited functionality. But it will come in handy when working on small personal projects or rapid prototyping.

Sample implementations and commands for installing Tinynet are available at GitHub repositories.

MaxiNet

This tool allows you to use Mininet on multiple physical machines and work with large-scale SDN networks. Each of the machines Workers - launches Mininet and emulates its part of the overall network. Switches and hosts communicate with each other using GRE-tunnels. To manage the components of such a network, MaxiNet provides an API.

MaxiNet helps you quickly scale networks and optimize resource allocation. MaxiNet also has monitoring features, a built-in CLI, and the ability to integrate with Docker. However, the tool cannot emulate the operation of one switch for several machines.

The project source code is on GitHub. Installation guide and quick start guide can be found on the official project page.

Reading on the topic in our corporate blog:

Source: habr.com

Add a comment