Archives For SDN

software-defined networking

Mininet-WiFi is a fork of the Mininet SDN network emulator. The Mininet-WiFi developers extended 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. They also added classes to support the addition of these wireless devices in a Mininet network scenario and to emulate the attributes of a mobile station such as position and movement relative to the access points.


The Mininet-WiFi extended the base Mininet code 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 emulator.

In this post, I describe the unique functions available in the Mininet-WiFi network emulator and work through a few tutorials exploring its features.

Continue Reading…

OpenDaylight (ODL) is a popular open-source SDN controller framework. To learn more about OpenDaylight, it is helpful to use it to manage an emulated network of virtual switches and virtual hosts. Most people use the Mininet network emulator to create a virtual SDN network for OpenDaylight to control.


In this post, I will show how to set up OpenDaylight to control an emulated Mininet network using OpenFlow 1.3. Because I am using virtual machines, the procedure I use will work the same in all commonly used host systems: Linux, Windows, and Mac OS X.

Continue Reading…

When network engineers are learning the concepts of software defined networking and SDN controllers, they may want to experiment with SDN network scenarios before learning to write programs to be used by the SDN controllers.

POX is a simple-to-use SDN controller that is bundled with the Mininet SDN network emulator and is used in education and research as a learning and prototyping tool. POX components are Python programs that implement networking functions and can be invoked when POX is started. POX comes with a few stock components ready to use.


In this tutorial, we will use stock POX components to implement basic switching functionality with loop prevention in a software defined network, without writing any code. Then, we will explore how the SDN controller programs the OpenFlow-enabled switched in a network created using the Mininet network emulator.

Continue Reading…

When testing SDN functions in the Mininet network emulator and viewing captured OpenFlow messages in a packet analyzer such as Wireshark, it is difficult to identify which SDN switch is the source or destination of each captured message.

The only reliable way to identify which SDN switch sent or received an OpenFlow message is to look at the source or destination TCP port of the OpenFlow packets. This is because most OpenFlow messages exchanged between switches and the controller do not contain any other information that helps identify the sending or receiving switch. Neither Mininet nor the Open vSwitch database provides information that might be used to identify the TCP ports used by each switches to communicate with the OpenFlow controller in the network.

This post describes a procedure to map which TCP ports are used on each switch to communicate with the SDN controller in the Mininet network simulation. This procedure will enable researchers or students to study the interactions between SDN controller and switches in a more detailed and accurate way.

Continue Reading…

When a researcher uses the Mininet network simulator to create a network of hosts and switches connected to an SDN controller, he or she may wish to be able to see what the simulated network topology looks like.


The POX SDN controller includes a component that will send network topology data to the Gephi data visualization platform, which can the show a graph of nodes and links representing the network topology. In this post, I will show how to set up POX and Gephi so we can see the network topologies created using the topology options in the Mininet command.

While we work through this tutorial we will also see how the POX SDN controller, which does not offer a native Northbound API, can use POX components to provide northbound interfaces.

Continue Reading…

This post describes how to install the Gephi graph visualization utility on the Mininet 2.2 virtual machine.

I want to investigate the node and link discovery function of OpenFlow and, to do that, I plan to experiment with some components of the POX SDN controller that interface with the Gephi graph visualization utility. Previously, I set up the Mininet network simulator, which includes the POX SDN controller. The final step is to install Gephi on the Mininet virtual machine.

Unfortunately, I found that the install instructions on the Gephi web site do not work. So, I used another procedure to solve the Java issue I encountered and complete the installation.

Continue Reading…

In this tutorial, we demonstrate basic software-defined networking (SDN) concepts using the POX SDN controller, POX components, and the Mininet network simulator.


We will show how to use the POX SDN controller to update flow tables on the SDN switches in a simulated network so every host on the network can forward packets to another host. We will use the Mininet network simulator to create the network of emulated SDN switches and hosts that are controlled by the POX SDN controller.

Continue Reading…

The Mininet network simulator includes MiniEdit, a simple GUI editor for Mininet. MiniEdit is an experimental tool created to demonstrate how Mininet can be extended.


To show how to use MiniEdit to create and run network simulations, we will work through a tutorial that demonstrates how to use MiniEdit to build a network, configure network elements, save the topology, and run the simulation.

Continue Reading…

To install the Mininet SDN network simulator on a remote server running on Amazon’s EC2 cloud, follow the procedure shown below. After installing it, I did some basic tests and it seems that Mininet works well on the Amazon EC2 server.

Continue Reading…

After installing the Mininet software-defined network simulator on a virtual machine, you may want to build the documentation. Documentation is available on the Mininet web site but, if you installed a beta version of a new development release or installed an old version, you may want to use the documentation specific for the version you are using.

Mininet documentation is built into the source code and can be generated using the doxypy program. This post details the simple steps required to install doxypy and other required software, and to build and view the documentation.

Continue Reading…

Most people who use the Mininet network simulator will download and set up the Mininet virtual machine image. However, there are times when we may want to use a different version of Mininet than the one already installed in the Mininet VM.

For example, we may want to use the newest features of Mininet currently being developed. The Mininet project releases beta-quality source code that user can download and install themselves.

This post will show how to install Mininet 2.2 Beta on a virtual machine image running Ubuntu Server. The steps described below should work for any version of Mininet that the user wants to install.

Continue Reading…

The Mininet open-source network simulator is designed to support research and education in the field of Software Defined Networking systems. Mininet creates a simulated network that runs real software on the components of the network so it can be used to interactively test networking software.

Mininet open source network simulator

Software Defined Networking (SDN) is a relatively new technology, but it is already being deployed in some networks: most famously, in Google’s internal network. Many companies are developing products to deploy and support networks using SDN technologies. In the following test drive, we will use Mininet to simulate and test some SDN scenarios and evaluate Mininet as network simulator.

Continue Reading…