IGMP not working



  • My router has two LAN side interfaces (with different subnets of course). When the streamer box is on the same subnet as the client the client has no problem finding the streamer. However, if I move the streamer to the other LAN side interface the client can no longer find the streamer. I suspect it's because UPNP announces and queries (that rely on IGMP) are not routed between LAN side interfaces.

    What is need to make this work?



  • Enable the IGMP proxy under "Services –> IGMP proxy".
    It shouldn't matter which interface is set as up/down stream as long as the subnets are set correctly.



  • Enable the IGMP proxy under "Services –> IGMP proxy".

    Already tried that… doesn't work!

    I don't want to connect to an upstream server on the wan side. My server is on a second LAN side interface, the client is on the first LAN side interface. Like I've said before, if I put the server and the client on the same LAN side interface (same subnet) everything works fine, and that's to be expected since the router isn't involved. It's only when I put the server and client on different LAN side interfaces that things break down. It seems that router is not forwarding multicast packets to multiple LAN side interfaces.



  • What you are probably running into is that IGMP Proxy will get the multicast packet to your other network, but the clients do not have a way to respond.

    Here is what I have used before for Serviio:
    For reference, my segments are LAN and GUEST.
    Setup IGMP Proxy with LAN as upstream and Guest as downstream with relevant subnets.
    Add rule for Guest to LAN with protocol IGMP and set 'This allows packets with IP options to pass.' under advanced features, advanced options.
    Add rules for UDP 1900 and TCP/UDP 8895 from the Guest network to the Serviio host with the same advanced option set.
    Port 8895 is the port Serviio serves on, just change to your streamer port.

    These are the rules and settings that worked. I don't know if they were all actually necessary.



  • The igmp proxy is not necessarily for traffic going to the WAN.
    Its for multicast communication between all interfaces it is enabled on.



  • Does igmpproxy require that an upstream interface be defined?



  • Yes.
    After all you always require two interfaces to proxy traffic between (upstream and downstream).



  • So… I have two LAN side interfaces, and each can connect UPNP servers or clients. Does it matter which is defined as upstream?



  • I think IGMP proxy was designed for one-way use only, i.e. enabling clients in private IP ranges behind NAT to issue IGMP membership requests to servers in the public internet. So you'd have to choose one LAN when you put your multicast server in.
    If you do not use NAT between your LAN nets you could always go for real multicast routing without proxies. But you'd need something like the mrouted daemon for that if I'm correct. Don't know if that is possible on pfSense.



  • @jcyr:

    So… I have two LAN side interfaces, and each can connect UPNP servers or clients. Does it matter which is defined as upstream?

    No it doesn't really matter which one is upstream.
    The IGMP proxy propagates the required information in both direction.

    @athurdent: You're thinking of multicast routing, not IGMP.
    Yes IGMP is used to manage multicast routing, but a lot of the upnp/dlna services just use IGMP to actually find the server, but then use unicast traffic to communicate with it.



  • Yes, I understand that IGMP is only used for the UPNP discovery/advertisement (I authored a UPNP support library for embedded systems). I'll give your suggestions a try, though I fail to understand why an upstream interface designation is required at all if the igmpproxy implementation is symmetrical for all interfaces as you say.