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:
- Download it and run on VIRL host
- 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.
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.
The parameters we need to set up are in multiple tabs. Below you will find the options for multicast traffic group 18.104.22.168:
- Protocol Selection tab
- L1: MAC
- VLAN: Untagged
- L2: Ethernet II
- L3: IPv4
- L4: UDP (multicast traffic is always UDP)
- 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
- Protocol Data – Internet Protocol ver 4 tab
- Destination address: 22.214.171.124 (or any other multicast address you desire to use)
- Source address: IP assigned to node eth1 interface
- Protocol Data – User Datagram Protocol tab
- Override Source Port: define static source port
- Override Destination Port: set static destination port
- Stream Control
- Number of Packets: set how many packets you want to send
- Packets/sec: define ration of the packets
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.