• Alexander Deca

Multicast testing tool

Updated: Feb 6

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.


The tool is called mcjoin, created by Joachim Wiberg, which you can install on your Linux distro by building it through git.


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 ;)


Fig1.1 mcjoin help

In the following example, we send multicast traffic to group address 239.1.1.1 on port 3333 with a TTL set to 20.

Fig1.2 Sending multicast traffic with TTL > 1

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).


Fig1.3 mcjoin output from the sender

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.

Fig1.4 Receiving multicast traffic
Fig1.4 mcjoin receiver output

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.



* Note:


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!







69 views0 comments