DLNA across VLAN subnets with IGMP Proxy not working



  • Hi guys,

    Based on the following setup I'm trying to get DLNA across VLAN subnets with IGMP Proxy working but without success:

    VLAN A = Wifi network > 192.168.30.0/24

    This network contains the DLNA clients, e.g. smartphones, smart tv, etc.

    VLAN B = Home network > 192.168.36.0/24

    This network contains the DLNA Server, e.g. minidlna.

    First of all, I replaced the igmpproxy with version 0.2.1_1,1 as suggested here:
    https://redmine.pfsense.org/issues/8935

    IGMP Proxy is configured as shown below:

    Upstream:
    Interface = VLAN B
    Networks = 192.168.36.0/24, 224.0.0.0/4

    Downstream = VLAN A
    Networks = 192.168.30.0/24

    The following firewall rules are currently in place:

    VLAN A:

    Proto = IPv4 UDP, Source = VLAN A net (Source port = any), Dest = 255.255.255.255, Dest port = 1900
    Proto = IPv4 UDP, Source = VLAN A net (Source port = any), Dest = 239.255.255.250, Dest port = any (with "Allow IP options" checked)
    Proto = IPv4 IGMP, Source = VLAN A net (Source port = any), Dest = 239.255.255.250, Dest port = any (with "Allow IP options" checked)
    Proto = IPv4 IGMP, Source = VLAN A net (Source port = any), Dest = 224.0.0.0/4, Dest port = any (with "Allow IP options" checked)
    Proto = IPv4 TCP, Source = VLAN A net (Source port = any), Dest = DLNA Server on VLAN B, Dest port = 8200

    VLAN B:

    Proto = IPv4 UDP, Source = VLAN B net (Source port = any), Dest = 255.255.255.255, Dest port = 1900
    Proto = IPv4 UDP, Source = VLAN B net (Source port = any), Dest = 239.255.255.250, Dest port = any (with "Allow IP options" checked)
    Proto = IPv4 IGMP, Source = VLAN B net (Source port = any), Dest = 239.255.255.250, Dest port = any (with "Allow IP options" checked)
    Proto = IPv4 IGMP, Source = VLAN B net (Source port = any), Dest = 224.0.0.0/4, Dest port = any (with "Allow IP options" checked)

    Maybe too much rules, but it's for testing now.

    Unfortunately, every client on VLAN A is unable to find the DLNA Server on VLAN B.
    Is there anything wrong with my setup?

    Please note that, if I'm using a separate machine (raspberry pi with vlan trunking enabled) with PIMD installed, it's working fine and the DLNA clients are able to find the DLNA Server without any problems.

    Thanks,
    Philipp



  • Try rules

    On int VLAN A:
    Source VLAN B subnet Dest Any Allow with IP options

    On int VLAN B:
    Source VLAN A subnet Dest Any Allow with IP options

    If that's working you can narrow down your rules



  • @rai80

    Unfortunately no difference.
    I already placed a rule on both interfaces to allow all IP4 traffic from any to any with no luck.
    Seems to be there is anything wrong with the IGMP Proxy.



  • Hmm, your configuration seems right. Online I see more people having trouble getting DLNA to work between Vlans's with Igmpproxy. See https://forum.netgate.com/topic/114743/dlna-over-subnets-igmp-proxy-multicast-routing/8





  • @rai80

    Thanks dude, with pimd it's working fine.
    Perfect solution ☺



  • @snow Nice!

    Can u post your pimd.conf? I tried earlier about the same without succes. Maybe I give it another try :)



  • @rai80

    Currently I'm using an unmodified pimd.conf with one exception concerning the interface section:

    phyint re0 disable
    phyint em0.30 enable
    phyint em0.31 enable
    phyint em0.32 disable
    phyint em0.33 disable
    phyint em0.34 disable
    phyint em0.35 disable
    phyint em0.36 enable
    phyint pppoe0 disable
    phyint ovpns1 disable

    As shown above it's only enabled on Vlan interface em0.30, em0.31 and em0.36.
    Because all non-loopback multicast capable interfaces are enabled by default, you also need to disable the interfaces which are not required for multicast explicitly.

    The only thing I noticed, it takes currently 20 - 30 seconds until the DLNA server will be found on the clients.
    For an example:

    Android with BubbleUPnP: 20 sec
    IPad with VLC: 30 sec

    I think this behaviour can be optimized in pimd.conf.



  • Thx.

    I think it has something to do with the default timers.