Subject: Re: [magma] IGMP/MLD-Proxying: broken upstream forwarding rule? (RFC 4605 section 4.2)

From: Brian Haberman <[email-masked]>
Date: Mon, 01 Oct 2007 09:58:19 -0400

Mark,

Mark Doll wrote:
> Hi Brian!
> 
> Thanks for your prompt answer.
> 
> Brian Haberman wrote:
>> Mark Doll wrote:
>>> This seems to suggest an unconditional forwarding in the upstream
>>> direction, which will lead to forwarding loops in any non loop-free
>>> physical topology (any topology other than a tree).
>> RFC 4605 only supports loop-free topologies.  The following text is in
>> the Introduction:
>>
>>    This document applies spanning tree multicast routing [MCAST] to an
>>    Internet Group Management Protocol (IGMP) or Multicast Listener
>>    Discovery (MLD)-only environment.  The topology is limited to a tree,
>>    since we specify no protocol to build a spanning tree over a more
>>    complex topology.  The root of the tree is assumed to be connected to
>>    a wider multicast infrastructure.
> 
> I can live with that, but then I wonder what's the forwarder selection (for
> downstream forwarding) is good for. If there's always only a single router
> towards the root (as it is the case in a tree topology), there is no need for
> selecting a designated forwarder.
> 
> Furthermore, the example in RFC 4605, section 3, is misleading, as it
> suggests, that the displayed topology is possible with IGMP/MLD-Proxying:
> 
>            LAN 1  --------------------------------------
>                   Upstream |              | Upstream
>                            A              B
>                 Downstream |              | Downstream
>            LAN 2  --------------------------------------

The last part of section 3, specifically discusses this issue:

            LAN 1  --------------------------------------
                   Upstream |              | Upstream
                            A              B
                 Downstream |              | Downstream
            LAN 2  --------------------------------------

    LAN 2 can have two proxy devices, A and B.  In such a configuration,
    one proxy device must be elected to forward the packets.  This
    document requires that the forwarder must be the IGMP/MLD querier.
    So proxy device A will forward packets to LAN 2 only if A is the
    querier.  In the above figure, if A is the only proxy device, A can
    be configured to forward packets even though B is the querier.

    Note that this does not protect against an "upstream loop".  For
    example, see the figure below:

            LAN 1  --------------------------------------
                   Upstream |              | Downstream
                            A              B
                 Downstream |              | Upstream
            LAN 2  --------------------------------------

    B will unconditionally forward packets from LAN 1 to LAN 2, and A
    will unconditionally forward packets from LAN 2 to LAN 1.  This will
    cause an upstream loop.  A multicast routing protocol that employs a
    tree building algorithm is required to resolve loops like this.

The input I recall when this spec was being developed was that some 
people would not allow sourcing of multicast from within the proxy 
environment and hence they could utilize the first diagram above for 
downstream redundancy.  When you allow sourcing of multicast from within 
the proxy environment that redundancy is identified as a potential loop.

Regards,
Brian

_______________________________________________
magma mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/magma