Archives For Open Source Networking

Descriptions of open source networking software for Linux or BSD systems: configuration, operation, maintenance

I attended the Netdev 2.1 Conference in Montreal from April 6 to 8. Netdev is a community-driven conference mainly for Linux networking developers and developers whose applications rely on code in the Linux kernel networking subsystem. It focuses very tightly on Linux kernel networking and on how packets are handled through the Linux kernel as they pass between network interfaces and applications running in user space.

In this post, I write about the three-day conference and I offer some commentary on the talks and workshops I attended. I grouped my comments in categories based on my interpretation of each talk’s primary topic. The actual order in which these topics were presented is available in the Netdev 2.1 schedule. The slides from the talks, workshops, and keynotes are posted under each session on the Netdev web site. Videos of the talks are available on the netdevconf Youtube channel.

Continue Reading…

The Domain Name System (DNS) is a fundamental Internet technology. Network emulators like Cloonix offer a way for researchers and students to experiment with the DNS protocol and with the various open-source implementations of DNS, such as BIND.

In this post, I will install Cloonix from the Github source code repository. I will run the Cloonix DNS demo script to create a simple DNS scenario and then run some experiments with DNS. Along the way, I will demonstrate some of the new Cloonix version 33 features.

Continue Reading…

VirtualBox is an open-source virtual machine manager and hypervisor that may also be used as a network emulator. In addition to creating and managing individual virtual machines, VirtualBox can connect virtual machines together to emulate a network of computers and network appliances such as routers or servers. VirtualBox works on the major computing platforms: Windows, MacOS, and Linux.

In this post, I offer a step-by-step tutorial showing how to use the VirtualBox graphical user interface to set up a network of six devices: three routers and three PCs. This tutorial will utilize some of the advanced functions supported by VirtualBox and provide you with the skills to set up a network of virtual machines on your own personal computer.

Continue Reading…

This post lists the commands required on each node to build a network of three Ubuntu Linux routers. Each router is connected to the other two routers and is running quagga. Each router is also connected to a PC running Ubuntu Linux.


I use this network configuration to evaluate network emulators and open-source networking software in a simple scenario. Readers may find these commands useful in building their own configuration scripts.

I provide “copy and paste” commands so the network can be configured quickly.

Continue Reading…

To learn more about OpenStack cloud management software, a student or researcher may install OpenStack on a single machine, such as a laptop computer or a virtual machine, and emulate a small datacenter using virtual machines or containers.


Researchers and students may choose from multiple projects that will set up OpenStack on a single machine. Some projects are community-based open-source projects and others are vendor supported projects (while still nominally open-source).

This post is an overview of links and resources to installing OpenStack on one machine.

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…

In 2014, the GNS3 development team launched a successful Kickstarter crowdfunding campaign to support development of a major new release, version 1.0, which was released in October that same year. I was happy to support the Kickstarter campaign and now I am finally getting around to taking a look at the new version of GNS3.


The last time I used the GNS3 network simulator, it was at version 0.8.7. After producing version GNS3 1.0, the GNS3 development team has been updating it frequently. GNS3 is now at version 1.3.7.

In this post, I will look at the new version 1.3.7 of GNS3 and evaluate how it works with emulated routers and hosts running open-source software.

Continue Reading…

GNS3coverNo Starch Press recently sent me a preview copy of a new book about the GNS3 network simulator, titled The Book of GNS3 written by Jason Neumann. This book covers the new version of GNS3, GNS3 1.x. Here is my review of The Book of GNS3.

The Book of GNS3 effectively serves as a user manual for GNS3. It offers detailed installation and configuration information for GNS3 1.x in one easy-to-access volume. Experienced users will find some new information in this book, especially about the new features available in GNS3 1.x. However, I think the main beneficiaries will be new or inexperienced users of GNS3.

Most users of GNS3 use it to emulate networks of commercial routers from vendors such as Cisco and Juniper. Understandably, Mr. Neumann spends most of the book discussing how to set up GNS3 to run commercial routers and, as much as is possible, switches.

How does this book help those who want to use open-source routers in GNS3? Read the rest of my review to find out.

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…