Multicast Problems on the Juniper EX Series

Juniper EX3200I’m lucky enough to run a Juniper EX3200 as my home’s “core switch” (sounds good, right?). I love the Junos OS, and apart from the fans being tremendously noisy (in fact the hostname for this device is ‘noisy‘), it’s my pride and joy.

However, it is intended to be used in an enterprise environment not a home environment, so not every default setting is ideal for the kind of things a typical home user might want.

Multicast is one of those areas, it turns out.

The Multicast Problem

Like many home users I have a variety of networked media devices, including an Apple AirPort Express, a PS3 and a NAS that’s configured as a DLNA-compliant media server. I don’t stream music very much, and the AirPort had been a bit flaky in terms of whether it would actually show up on my iPhone, but it wasn’t too bad.

A few nights ago I tried to stream some music on the PS3, but the PS3 refused to discover the NAS for some reason. After troubleshooting for a while and assuming it was a software issue, I finally fired up Wireshark and took a look at what I could see on the network. After all, DLNA relies on multicast (SSDP) to find services, so I should be able to see multicast requests and advertisements on my laptop, right? Unfortunately not:

WireShark - No Multicast

All I was seeing in the capture was Spanning Tree and LLDP traffic.

As a side note, in the WireShark GUI to apply a multicast filter, you can’t just use the keyword “multicast”. Instead, try this:

(eth.dst[0]&1) && !eth.dst==ff:ff:ff:ff:ff:ff

That filter allows broadcast/multicast, then denies the broadcast traffic.

Root Cause

After digging around a little I found that there’s a default configuration on the EX that causes the problem – IGMP Snooping is enabled by default on all vlans.

protocols {
    igmp-snooping {
        vlan all;
    }
}

That would be a problem, since there’s no IGMP happening for the SSDP multicast traffic, since it’s assumed that it’s all on the local subnet – which it is, in this case. However, since IGMP snooping is enabled and there are no IGMP join requests, the EX doesn’t bother forwarding the multicast to any ports because it believes nobody wants to receive it. Not so, Juniper!

Fixing Multicast

The easiest way to fix this in a home network is to simply disable igmp snooping. In my case I don’t want it running anywhere, so the command is easy:

delete protocols igmp-snooping

Commit the configuration and the job is done – we now see multicast being flooded out on all switchports, which is what we need for SSDP to work:

Multicast

And, as if by magic, the PS3 can now see the NAS and stream content from it.

But What About AirPlay?

I mentioned earlier that AirPlay (iPhone streaming music to the AirPort Express) was working intermittently. How did that work if multicast was broken?

The answer is all in the architecture. Due to the way my house is wired up, the AirPort Express is connected to a switchport on one of the wireless APs. If my iPhone associated with that particular AP, traffic between the phone and AirPort wasn’t transiting the Juniper EX, so it could see multicast through the AP’s built-in switch. However if my iPhone had associated with one of the other APs, it would not see the SSDP and thus could not see the AirPort. Ta-dah!

Multicast on my home network had been broken for quite a while now (since I installed the Juniper EX in fact), but since things seemed to work some of the time I had dismissed the problems I saw as just one of those things that happens, and mentally blamed flaky protocols without looking any deeper into it. It was only when something very specific was breaking that annoyed me sufficiently, that I spent time to diagnose the problem. There’s probably a lesson in that somewhere!

Over To You

Do you have a better way to fix it? Another solution? Please let me know! Obviously I could have just disabled snooping on the one VLAN impacted, but how could I support igmp snooping but also allow SSDP to work correctly?

17 Comments on Multicast Problems on the Juniper EX Series

  1. Not sure you can. I do not believe SSDP/UPnP supports IGMP. IGMP snooping relies on the IGMP conversation to work properly. SSDP is designed for “home networks” which is generally single subnet without IGMP Snooping enabled.

  2. Thanks for that. The multicast-router-interface documentation seems to suggest that I’d configure that on an interface facing a multicast router. And since I can enable IGMP-snooping per-interface, it may be possible then to mix and match. The documentation on this isn’t great from what I’m seeing.

  3. The command can be applied to any port as I read it. Also check out this section:

    An unregistered multicast packet—that is, a packet for a group that has no current members—is forwarded to all multicast-router interfaces in the VLAN.

    • I saw that, but can’t yet make it work the way it says (though I may just be doing the wrong thing).

      I’ve tried various combinations of igmp and igmp-snooping using the multicast-router-interface command under the igmp-snooping configuration to specifically call out both source and destination interfaces and I don’t see the mcast traffic.

      I’ll keep digging.

  4. The reason is that for IGMP snooping to work an IGMP querier is required. This is configurable on EX switches for standalone subnets where there is no router interface to act as the querier.

    • Makes sense, though it doesn’t really explain why igmp snooping would be enabled by default (at least, to my way of thinking it doesn’t), especially if it requires additional configuration to be usable. :-/

  5. Well , you can not enable it on EX2200 because it is working with L2 . you have to enable IGMP on L3 Router like SSG .

    For example on SSG the configuration will look like this :

    set interface ethernet0/6.3 protocol igmp router

    set interface ethernet0/6.3 protocol igmp enable

    • Hi Abed AL-Rahman/ John,
      Actually EX2200 is a Layer-3 switch, and can support layer-3 protocols; Static routing, RIP, OSPF, and IGMP (snooping and Querier mode), i have the compact version of EX2200 “EX2200-C” which has the same feature as EX2200, but for OSPF and IGMP “querier” mode you need to purchase a license on EX2200 to activate them, but for EX3200 IGMP querier mode, OSPF can be configured without a license.
      Actually Juniper EX3200 and EX4200 is a high-end enterprise/ Service provider level switches (carrier grade), and they can also support advanced protocols like BGP and MPLS using a special license (Advanced Feature License “AFL”). so, John, you are very lucky to have EX3200 to study JUNOS and try all the advanced protocols,

    • There’s a reason why the hostname for my EX3200 is “noisy”. However, since it sits in a closet rather than in my living room, it’s a bit less of a problem than it may be for many others.

  6. I went through the exact same process w/ an Airport Extreme + Netgear GS116Ev2 managed switch. Like your Juniper box, my Netgear had IGMP snooping on my default. I never bothered to admin to the thing, because in my mind it was just another Netgear (unmanaged) switch, and as such could _never_ be the cause of trouble. It had some nifty stuff I’d like to dig into on a rainy day, but surely it would not be the culprit.

    The awesome thing is this went on for almost a year, as I unconsciously moved devices from their intended spot (cabled to the switch), to the back of the Airport, which had a few open ports.

    First, the Synology. Keeps disappearing from the network. Hmm, seems to work when plugged directly into the Airport. Whatever, live to fight another day.

    Next, the Laserjet 1320n. Why can’t it maintain its network presence? Well, the Airport has a USB port, I’ll just plug right in. Again, whatevs.

    FINALLY: the Yamaha Aventage RX 850. Great box, too bad it didn’t implement mDNS properly, right? Well, what would happen if I connect via wireless, just for giggles. Oh shit.

  7. I agree having snooping enabled and not having query is probably not a good default. You could have also done a “set protocols igmp all”, to enable IGMP query. If you did that you could multicast across different subnets.

  8. This is a great article. I’ve run into similar issues with multicasting on ex 4800 series. During an A/V installation using Dante Enable IP microphones by audio technica,
    Microphones were dropping off the network constantly and/or they will be operational for several minutes then stop working. One fix for this was to disable IGMP and IGMP Snooping as well. This resolved 95%of the problems. Periodically a mic or two will still drop for no reason whatsoever.

Leave a Reply

Your email address will not be published.


*


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