Re: IGMP/MLD-Proxying: broken upstream forwarding rule? (RFC 4605 section 4.2)
Brian Haberman <[email protected]> Mon, 01 Oct 2007 09:58:19 -0400
| Newsgroups | gmane.ietf.magma |
|---|---|
| Message-ID | <[email protected]> |
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