18 Aug

Generate multicast​ traffic in VIRL using Ostinato

Ostinato is a traffic generator. You can use it to craft packets and send flow into your network. You can even send multiple streams if required. It is a tool that network admins and developers should use for testing the system or application against various scenarios. Ostinato is by default available on Cisco VIRL so we can use it as a packet generator in our simulations.

Ostinato consists of two components – the LXC image run in a simulation that generates the traffic and GUI frontend. In this article, I will show you how to use it to generate a multicast stream in VIRL simulation.

Setting up the Ostinato in VIRL

You add Ostinato node like every other device in your simulation. The only trick is that you need GUI frontend to manage it and it is not part of  VIRL installation. You have now two options:

  1. Download it and run on VIRL host
  2. Download it and run on another device from where you have access to simulation management network

You can download the GUI client from the Ostinato homepage. For the most versions you need to pay $2, but older are available for free. I do not get this policy but ok. I have not tested the first option, but Linux binaries are available in the form of .rpm and .deb. It is also available via repository used by yum on VIRL host, but it requires an installation of many additional packages. VIRL host operating system is quite sensitive to changes, so I try not to make it without good reason.

Because I am Mac user, I obtained my GUI client from MacPorts repository. You also need to have your Shared Flat Management network somehow connected to your LAN – check How to manage simulation in VIRL from local network article how I configured it in my network. I also suggest assigning static Management IP to Ostinato node.


Configuring multicast flow

First, you need to connect GUI to the traffic generator node. This connection is called a Port Group. You add new from the context menu in the port group area.

Adding new Port Group in Ostinato

Adding new Port Group in Ostinato

When you expand the Port Group entry, you will see the list of available interfaces on traffic generator node. The eth0 is used as management port while eth1 is connected to the simulation. We will use eth1 as a source of our traffic. The ports are also visible on Statistics – our eth1 port from Group 1 is visible as Port 1-1.

When you select the desired interface, you can create and assign the streams. From the context menu select New Stream and then double-click on the created entry to configure its properties.

Create new stream in Ostinato

Create new stream in Ostinato

The parameters we need to set up are in multiple tabs. Below you will find the options for multicast traffic group

  • Protocol Selection tab
    • L1: MAC
    • VLAN: Untagged
    • L2: Ethernet II
    • L3: IPv4
    • L4: UDP (multicast traffic is always UDP)
Ostinato flow protocol selection

Ostinato flow protocol selection

  • Protocol Data – Media Access Protocol tab
    • Destination: 01:00:5e:00:00:09 (use this calculator to translate IP address of your multicast group to proper MAC address)
    • Source: MAC address of eth1 interface
Ostinato flow MAC address selection

Ostinato flow MAC address selection

  •  Protocol Data – Internet Protocol ver 4 tab
    • Destination address: (or any other multicast address you desire to use)
    • Source address: IP assigned to node eth1 interface
Ostinato flow IP address selection

Ostinato flow IP address selection

  • Protocol Data – User Datagram Protocol tab
    • Override Source Port: define static source port
    • Override Destination Port: set static destination port
Ostinato flow ports selection

Ostinato flow ports selection

  • Stream Control
    • Number of Packets: set how many packets you want to send
    • Packets/sec: define ration of the packets
Ostinato flow ratio selection

Ostinato flow ratio selection


Starting the flow

We set the flow parameters. Now we just need to click Apply button to transfer the configuration to Ostinato VIRL node. To start the flow, you need to in Statistics section highlight the column that represents interface you create flow on and press the start button. If everything goes fine, you should see Frames Sent counter increasing. To stop the flow, we must click the Stop button.

Starting the Ostinato flow

Starting the Ostinato flow


One thought on “Generate multicast​ traffic in VIRL using Ostinato

  1. Hi, Have you used this tool to send IGMP, instread of UDP on L4 ? I am blocked here, as it seems to me this option does not working. On my switch side, I got nothing. Thanks, Jack

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.