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.

three-routers-3

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…

dCore Linux is a minimal Linux system based on the Tiny Core Linux system. Like Tiny Core Linux, dCore loads its file system entirely into RAM, which should provide good performance in large network emulation scenarios running on a single host computer.

dCore Linux allows users to install additional software from the Debian or Ubuntu repositories, instead of using the pre-built (and often out-of-date) TCE extensions provided for Tiny Core Linux. This should simplify the process of building network appliances for use in a network emulator, as you will not need to compile and build your own extensions, or use out-of-date pre-built extensions.

dCore Linux is designed to run as a “live” Linux system from removable media such as a CD or a USB drive but, for my use, I need to install it on a hard drive. Currently available instructions for installing dCore Linux onto a hard drive are incomplete and hard to follow. This post lists a detailed procedure to install dCore Linux on a virtual disk image connected to a virtual machine. I use VirtualBox in this example, but any other virtual machine manager would also be suitable.

Continue Reading…

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.

mn-wifi-graph-200

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…

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.

openstack-logo-2

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.

odl-0100-b

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…

The Cloonix network simulator has been updated to version 29, which adds the ability to save network simulation topologies and node configurations to a directory.

Users may save a network topology and all node configurations to a directory of their choice. They may also load saved topologies into Cloonix so they can restore a network scenario they previously created. The save function of Cloonix v29 supports copy-on-write filesystems and also allows users to save the full filesystems of nodes, if they wish.

This post will work through a detailed tutorial showing how to save, load, and re-save topologies and node configurations using the Cloonix GUI or command-line interface.

Continue Reading…

I recently purchased a used Lenovo Thinkpad T420 laptop to replace the Lenovo Thinkpad T400 I was previously using as my main platform for researching open-source network simulators and emulators. The T420 is a five-year old product but it offers all the ports and performance I need. Because it is well past its depreciation curve, anyone can purchase a used T420 for a very low price.

lenovo-thinkpad-t420-small

I wanted a computer that supports high-resolution external monitors so it required a DisplayPort output. I also wanted to expand the number of VMs I can run concurrently with adequate performance so I needed a processor that supports HyperThreading. I wanted to switch to the Ubuntu Linux distribution and the Ubuntu Unity desktop environment needs just a bit more processing power to run smoothly. The Lenovo Thinkpad T420 meets all these requirements.

Continue reading to learn more about the Lenovo Thinkpad T420, another excellent and inexpensive Linux platform.

Continue Reading…

When writing a blog post about a technical topic, I often capture a lot of screen shots that I need to edit before adding them to my blog article. Usually I want to add a border around each image and I sometimes want to reduce the size of images that are too large. I want to do this quickly and easily so I use ImageMagick, an open-source command line image editor.

logo_liquid-60

ImageMagick is a powerful image manipulation tool with an intimidatingly large set of options and subcommands. However, most bloggers will use only a few simple options. In this post, I will show how to install and use ImageMagick to perform the simple image conversions bloggers typically need. I will show how this can be done on each of the major operating systems: Linux, Windows, and Mac OS X.

Continue Reading…

The Cloonix development team recently released a major update to the Cloonix network simulator.

Cloonix version 28 makes major changes to the infrastructure of Cloonix. It changes the installation procedure, the location of Cloonix files on your computer, and the names of the commands used to start and administer Cloonix.

cloonix28-110

Cloonix version 28 also makes changes to the features available to users. It adds support for multiple Cloonix servers running on the same machine, and standardizes and documents the new interface types used to connect virtual machines to each other.

Read the rest of this post for more details about what’s new in Cloonix v28.

Continue Reading…

When using open-source network simulators that use KVM as a virtualization tool, each node in the network simulation is actually a KVM virtual machine so the maximum supported number of nodes in a network simulation is the same as the maximum number of KVM virtual machines that can run on the host computer.

Unfortunately, there seems to be no single authoritative statement about the maximum number of KVM virtual machines that can run on a host computer. Most information I could find about KVM limits does not publish absolute limits but, instead, recommends best practices.

In this post, I will synthesize the information available from many different sources into a single recommendation for the maximum number of KVM-based nodes that can run in an open-source network simulator running on a single host computer.

Continue Reading…

In this post, I will show how to set up data capture in the GNS3 network simulator when using network devices that are emulated by VirtualBox or QEMU virtual machines.

The GNS3 network simulator makes it easy for users to capture and view data passing across the interfaces of devices running in a GNS3 network simulation. The GNS3 documentation covers how to capture data from devices running on Dynamips in GNS3 but the procedures for capturing data from devices running in other hypervisors, such as VirtualBox or QEMU/KVM, are not well documented.

cap-cover-shot-2b

While GNS3 users may start and stop data capture on Dynamips VM interfaces any time they wish, they must plan ahead when they intend to capture data on open-source routers and hosts running on VirtualBox or QEMU virtual machines.

Continue Reading…