Last time, we made a
selection of open source SDN controllers . Today on the queue open emulators SDN-networks. All who are interested, we invite under the cat.
/ Flickr / dennis van Zuijlekom / CC
The tool allows you to raise a managed network on a single machine (virtual or physical). Just enter the command: $ sudo mn. According to the developers, Mininet is well suited for scanning test environments.
')
For example, Stanford teachers (where Mininet was developed) use the utility during practical training at the university. It helps students develop networking skills. Some of the tasks and demos can be found
in the GitHub repository.
Mininet is also suitable for testing custom SDN topologies. The virtual network is deployed with all the switches, controllers and hosts, and then its performance is checked using Python-scripts. Then the settings are transferred from Mininet to the real network.
Among the shortcomings of the solution,
experts point out the 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 actively developing. Anyone can contribute - how to do this, there is information on the
official website of the project and
in the repository .
Simulator for
discrete-event modeling networks. Initially, the tool was conceived as an educational utility, but today it is used to test SDN environments. Guidelines for working with ns-3 are on
the project documentation website .
Among the advantages of the utility, you can highlight socket support and the
Pcap library for working with other tools (such as Wireshark), as well as a responsive community.
The disadvantages can be attributed to the relatively weak visualization.
NetAnim is responsible for mapping the topology. In addition, ns-3 does not support all SDN controllers.
Reading on the topic in our corporate blog:
This SDN-emulator is based on the two previous tools - Mininet and ns-3. It combines the strengths of each of them. To make solutions work together, OpenNet uses a Python buying library.
Thus, Mininet in OpenNet is responsible for emulating OpenFlow switches, providing CLI and virtualization. As for the ns-3, it emulates those models that are not in Mininet. Guidance on the work can be found
on GitHub. They also have
additional links to related materials.
/ Pxhere / pd
This is the Mininet fork for working with application containers. Docker containers act as hosts in emulated networks. The solution was created to allow developers to experiment with cloud, peripheral, hazy computing and NFV. The system has already been used by the authors of SONATA NFV to create a system of orchestration in virtualized 5G networks. Containernet
was the core of the NFV emulation platform.
You can install Containernet using the
guide on GitHub .
Lightweight library that helps you quickly create prototypes of SDN networks.
The 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 its analogues. Tinynet can also be integrated with Docker containers.
The tool is not suitable for emulation of large-scale networks due to limited functionality. But useful when working on small personal projects or rapid prototyping.
Examples of implementations and commands for installing Tinynet are available in the
GitHub repository .
This tool makes it possible to use Mininet on several physical machines and work with large-scale SDN networks. Each of the machines,
Workers , runs Mininet and emulates its part of the total 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. Also, MaxiNet has monitoring functions, built-in CLI and the ability to integrate with Docker. However, the tool does not know how to emulate the work of one switch for several machines.
The source code of the project is
on GitHub . An installation guide and quick start guide can be found on the official
project page .
Reading on the topic in our corporate blog: