Multicast testing tool
Updated: Feb 5
I recently had the opportunity to work on different Cisco ACI projects that required support for routed multicast for sources and receivers in and outside the ACI fabric.
This post is not about the configuration of routed multicast inside an ACI fabric. However, it is good to mention that contracts do NOT filter multicast traffic within an ACI fabric and that multicast traffic is not being redirected when Policy Based Redirect is deployed. Rather, only unicast traffic is being redirected. *
When deploying a solution such as ACI Multi-Pod or VXLAN BGP EVPN with NX-OS, it is great to have endpoints connected to the fabric to verify certain features that have been configured. It is not always straightforward to have either physical machines or VM's made available by the customer. Also, you sometimes require specific tools to be installed to verify your configuration.
To overcome this, I have a couple of Raspberry Pi's to be used as endpoints running an Ubuntu Server image (of course, you could run whatever your favorite Linux distribution). However, as I have been a Debian user since 2001, I chose a Debian-based distribution, possibly the largest software repository and driver support. (although, this is not a Linux distribution discussion which is for the best ;) )
Now coming back to the original topic: having a tool that can provide me with a simple interface for testing multicast streams. I found an excellent tool that is easy to run and does provide me with the features I need to confirm that multicast traffic is working as expected.
adeca@QuAd:~/Applications$ git clone https://github.com/troglobit/mcjoin.git adeca@QuAd:~/Applications$ cd mcjoin/ adeca@QuAd:~/Applications$./autogen.sh adeca@QuAd:~/Applications$./configure && make adeca@QuAd:~/Applications$sudo make install-strip
Once installed, you can verify the syntax and the options you can set. I like that you can select the interface that should be used for sending or receiving multicast (specifically, if you have multiple NICs on your system).
Important to note is that for routed multicast, do not forget to change the TTL because by default, this one is set to 1, or you might go crazy to figure out why your flows are not working ;)
In the following example, we send multicast traffic to group address 220.127.116.11 on port 3333 with a TTL set to 20.
Once you launch the tool, you will see (S, G) entry on the device where the source is connected. In my case, an ACI leaf and the leaf where the receiver resides will also see the (*, G) entry (IGMP join).
On the receiver host, we tell the connected device we are interested in the multicast stream and send an IGMP join for this specific group.
If the network is configured correctly, you will see the number of packets increasing. This is a great and simple-to-use tool that will help you simulate multicast streams and confirm that your network is correctly supporting multicast streams.
Although I was aware of the policy-based redirect statement and should have put one and one together, I recently learned that contracts are not filtering multicast. This proves that there are always new things to learn and to discover!