[j-nsp] expected multicast forwarding behavior with igmp-snooping and local igmp querier

Andy Litzinger Andy.Litzinger at theplatform.com
Tue Sep 17 19:47:50 EDT 2013


maybe this will simply turn out to be a gap in my understanding about multicast addressing, but my EX4550/4200 VC is not pruning multicast how I would expect.

I have vlan defined with an RVI.  I have enabled igmp for that vlan interface.  I have two hosts that are members of the same vlan (server A and server B, vlan 123).  igmp-snooping is on for all vlans (factory default setting).

I am using iperf to send/receive test multicast streams from server A to server B.

With igmp-snooping and igmp running on the vlan, If I send a stream via iperf from server A, I do not expect that stream to show up on server B until I start the iperf server at the same multicast address.  I expect the switch to not flood the traffic to all ports in the vlan (including serverB ) but instead wait until a server explicitly joins the group.

This does not appear to always be true.  I obviously haven't tested every multicast address, but it seems that pretty much all multicast traffic directed to 224.0.0.0-239.0.0.255 will cause the switch to flood traffic to all ports in the vlan.

But addresses from 239.0.1.0 and up seem to work as I expect.  If server A sends to 239.0.1.1 and I listen for traffic to that address on server B, I don't see anything.  It seems the switch is pruning as I would expect.  As soon as I start the multicast iperf listener on server B for 239.0.1.1 then my tcpdump immediately lights up with the multicast traffic- again as I would expect.  In fact the opposite behavior seems to occur- with the 239.0.1.1 address, if I don't have igmp configured on the vlan at all (delete protocols igmp interface vlan.123) the switch does NOT flood multicast traffic for that address.  I see nothing arrive on server B.  this is also unexpected.

can anyone set me straight?

also- what I'm trying to do is relatively simple but maybe I'm going about it the wrong way.  I have groups of servers in the vlan that use multicast packets as a periodic "heartbeat" to keep track of each other.  I'd like to make sure the multicast heartbeat only goes to other servers that subscribe to the same multicast address- not send it to every server in the vlan.  does my config seem like a valid way to do this?  I don't need to route the multicast across subnets.

thanks!
-andy

here are the relevant config snippets and the iperf and tcpdump commands I'm using:

# show vlans 123
vlan-id 123;
l3-interface vlan.123;
# show interfaces vlan.123
family inet {
    address x.x.x.x/24;
}
# show protocols
igmp {
    interface vlan.123;
}
igmp-snooping {
    vlan all;
}

iperf client (sender): iperf -c 239.0.1.1 -u --ttl 2 -t 30 -i 5
iperf server (receiver):  iperf -s -u -B 239.10.1.1 -i 5
tcpdump example: tcpdump -nn host 239.0.1.1


More information about the juniper-nsp mailing list