Bernhard's Homepage

Ostinato for GNS3

Ostinato for GNS3

Ostinato is an open-source network packet/traffic generator with a friendly GUI. For more information have a look at the fine documentation on http://ostinato.org/.

I decided to build my own Ostinato VM, that is optimized for the use within GNS3. It is based on Tiny Core Linux, therefore it's quite small, about 54 MB. The program itself has not been changed, all the documentation for Ostinato is also valid for this version.

Download Ostinato VM

ostinato-0.8-1.ova v0.8 created 2016-06-30 Ostinato application for VirtualBox and VMware
ostinato-0.8-1.qcow2 v0.8 created 2016-06-30 Ostinato image for QEMU

Installation of Ostinato VM in GNS3

Appliance

The easiest way is to import the Ostinato appliance from https://raw.githubusercontent.com/GNS3/gns3-registry/master/appliances/ostinato.gns3a. For more details see the documentation about GNS3 Appliance Files (GNS3A).

But this is limited to GNS3 versions 1.4 or later. Furthermore you can add an appliance only to the GNS3 VM or a linux based GNS3 server.

VirtualBox

Import the .ova into VirtualBox, optionally adapt the name. The imported VM has no network interfaces, these will be later added by GNS3. If you want to use the Ostinato VM standalone (without GNS3), add at least two interfaces with adapter type “Intel PRO/1000 MT Desktop”.

As the Ostinato VM uses an virtual USB mouse, the VirtualBox extension pack must be installed. If you haven't already done that, get it from the VirtualBox Download area.

Add the Ostinato VM in GNS3, then edit it:

The preference for the Ostinato VM should look like this:

GNS3 VM General settings GNS3 VM Network

QEMU

Caution: As the GUI in Ostinato needs some CPU resources, it's strongly recommended to use it only with hardware acceleration. Currently only the Linux-QEMU supports this. On Windows and Mac OS X use VirtualBox.

In GNS3 use the QEMU VM wizard to add a new VM. Set the RAM size to 256 MB and choose the ostinato.qcow2 image.

Afterwards change the number of network adapters to four and the Advanced settings / Options to "-vga std -usbdevice tablet".

The preference for the Ostinato VM should look like this:

GNS3 VM General settings

Use the Ostinato GUI within the VM

The easiest way is to use the GUI within the VM. The network interfaces eth1, eth2, ... are used as traffic interfaces. Interface eth0 is not used, just ignore this interface.

A simple project could look like this:

Project with VM-GUI

The IP and MAC addresses of the Ostinato traffic interfaces (eth1, eth2, ...) are configured within the GUI, so no IP configuration of these interfaces within the Linux OS of the Ostinato VM. As we don't use eth0, we won't configure that as well.

To start the Ostinato GUI just start the VM, then click on the Ostinato logo (the rightmost one).

Control the Ostinato VM from a GUI on your local Machine

Ostinato uses a client/server architecture. The GUI is used to define the packets, the server (also named drone) sends them out of the traffic interfaces. You can use an Ostinato GUI on your local machine to control the server/drone in the VM.

For that you need an IP connection from your machine to the Ostinato VM. That's done with a cloud interface connected to eth0.

Project with remote GUI

Now we have to configure the IP address and route for eth0. On default eth0 is configured via DHCP, but we normally need to use a static address and route. For that we start the ostinato VM, start the editor (the pen symbol) and edit /opt/bootlocal.sh . Comment the DHCP configuration and uncomment and modify the static IP part. Then save the file, afterwards use the on/off switch to reboot (with backup).

Now check the connectivity with ping. If you setup the cloud connection correctly, you should be able to ping the eth0 IP address. Then start the Ostinato GUI on your system and create a new port group. Use the eth0 IP as it's IP address. Now you can control the Ostinato drone within the VM by the GUI running on your local machine.

Building your own Ostinato VM

The VM is automatically build using packer. A README and the packer files can be found here: Packer for TinyCore GNS3 appliance.