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 appliance, that is optimized for the use within GNS3. For Ostinato v0.9 and older, it's based on VMs. Starting with Ostinato v1.0 Docker is used. The Ostinato program itself has not been changed, all the documentation for Ostinato is still valid.

Ostinato Docker Appliance

The Docker appliance is pusblished as ehlers/ostinato. To import it into GNS3 open the preferences, go to Docker / Docker Containers and click on New. The “New Docker VM template” wizard will start and asks a couple of questions:

You have the option to edit the just created template, for example change the symbol. When you’re done, leave the preferences with “OK”.

On the first time the Ostinato appliance is added into a project, it will be downloaded from the internet, about 150 MB. So depending on your internet access, it may take a while.

Ostinato VMs

They is based on Tiny Core Linux, therefore they are relative small, about 100 MB. Ostinato v0.9 has Wireshark added to the VM, therefore it's a bit larger than earlier versions.

Download Ostinato VM

ostinato-0.9-1.ova v0.9 created 2017-12-14 Ostinato application for VirtualBox and VMware
ostinato-0.9-1.qcow2 v0.9 created 2017-12-14 Ostinato image for QEMU
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 download the Ostinato appliance ostinato.gns3a and import it (File / Import Appliance) into GNS3.

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

Building your own VM

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

Use the Ostinato GUI within the Appliance

The easiest way is to use the GUI within the appliance. The major advantage is, that you don't have to install Ostination on your local computer.

In the VM version the network interfaces eth1, eth2, ... are used as traffic interfaces. Interface eth0 is not used, just ignore this interface.

The Docker appliance has lifted this restriction, you can use any interface, including eth0.

A simple project could look like this:

Project with VM-GUI

The IP and MAC addresses of the Ostinato traffic interfaces are configured within the Ostinato GUI, so there's no need to configure IP addresses within the Linux OS of the appliance.

In the VM version Ostinato is started by clicking on the Ostinato logo (the rightmost one). The Docker appliance automatically starts Ostinato, it's also available in the applications menue.

David Bombal has created some great videos, see his Ostinato playlist on YouTube.

Control the Ostinato Appliance 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 appliance.

For that you need an IP connection from your machine to the Ostinato appliance. That's done with a cloud interface connected to the appliance. The VM version uses eth0 for this connection, the Docker appliance can use any of it's interfaces.

Project with remote GUI

Now we have to configure the IP address and route for this interface.

In the VM version start the editor (the pen symbol) within the VM 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!!!).

For the Docker appliance edit the network configuration by stopping the appliance, right-click on it's symbol and select "Edit config", then start it.

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