Sonos across subnets on Juniper EX2200

Since I have a Juniper EX2200 performing my layer 3 routing for internal traffic and I have Sonos on a separate subnet than some Sonos clients, I needed to allow multicast across subnets. By creating a loopback interface and using it as my PIM rendezvous point, I was able to get my Windows desktop on 10.1.20.0/24 (Wired) find my Sonos speaker on 10.1.50.0/24 (WiFi).

This is pretty much taken directly from the guide here.

First, I leave the default igmp-snooping configuration alone. If yours doesn't look like this, then you have modified the default configuration:

will@ex2200>  show configuration protocols igmp-snooping
vlan all;

Then I created a loopback interface to use for multicast:

will@ex2200>  show configuration interfaces lo0
unit 0 {
    description "Used for SSDP Multicast for Sonos";
    family inet {
        address 10.0.0.200/32;
    }
}

Next, I added the new loopback interface as passive in my OSPF configuration. The export and the other interfaces were already there for something unrelated to this multicast configuration:

will@ex2200>  show configuration protocols ospf
export exportdirect;
area 0.0.0.0 {
    interface vlan.100;
    interface vlan.2;
    interface lo0.0 {
        passive;
    }
}

Now I define the IP address of that loopback interface as the rendezvous point and add the necessary VLAN interfaces in sparse mode:

will@ex2200>  show configuration protocols pim
rp {
    local {
        address 10.0.0.200;
    }
}
interface lo0.0 {
    mode sparse;
}
interface vlan.20 {
    mode sparse;
}
interface vlan.40 {
    mode sparse;
}
interface vlan.50 {
    mode sparse;
}

I have subnet 10.1.20.0/24 on vlan.20 for trusted wired, 10.1.40.0/24 on vlan.40 for guest wifi, and 10.1.50.0/24 on vlan.50 for trusted wifi. Since Sonos is on vlan.50, I want all three VLANs to share multicast. You can block multicast from guest wifi to trusted wired via a firewall filter.

Note that because I did not specify a multicast range, the entire 224.0.0.0/4 range is allowed. Sonos only uses SSDP, or 239.255.255.250, so if you want to block all other multicasts, you can limit the range with the following:

set protocols rp local group-ranges 239.255.255.250/32

I hope this helps!