[Xorp-users] Multicast Forwarding

Pavlin Radoslavov pavlin at icir.org
Thu Jan 24 16:31:56 PST 2008


> - All multicast packets received on any ethernet port need to be
> - forwarded to only one of the Infiniband ports (ib0). The second
> - Infiniband port is inactive in this application. 

This requirement means that you cannot use L3 multicast routing (at
least by using standard L3 multicast routing protocols).
One of the reasons is that typically an explicit join (per group) is
needed to forward the traffic.
The other reason is that for each multicast forwarding entry there
should be a single incoming interface (typically the Reverse Path
Forwarding interface toward the source or the RP in case of PIM-SM).

It looks like you need a transparent hub that will forward all
multicast packets from the Ethernet port to the Infiniband port.
Unfortunately I am not aware of any open-source solutions that will
do that to you (they might exist, I am just not aware of them).

There is one hackish solution you could use with XORP, but it is a
bit complicated:

1. Configure the XORP box to be a static RP for the whole multicast
   address range 224.0.0.0/4.

2. Use the protocols/pimsm4/interface/vif/alternative-subnet
   configuration statements on each Ethernet interface to add
   entries to make all remote sources appear as directly connected
   to one of the Ethernet interfaces.
   You might have to be a little bit careful about the exact
   configuration, because (a) you need to cover the address space
   for all possible remote senders, and (b) if the multicast packets
   from sender S1 appear on interface eth1, then eth1 must have
   "alternative-subnet" configuration statement to cover the S1
   address.

3. The tricky part: Use PIM-SM (*,*,RP) Join on the Infiniband port.
   As per the PIM-SM spec, the purpose of the (*,*,RP) Join is to
   pull-down all multicast traffic that is routed in that RP.
   Given that your XORP box will be the RP for all multicast groups,
   as a result of that all traffic that reached any of the Ethernet
   ports will be forwarded on the Infiniband port.

   The tricky part is how to get (*,*,RP) Join on the Infiniband
   port. Those joins are suppose to be periodic and are suppose to
   come from a PIM-SM neighbor. One option is to have a second
   instance of XORP running on the TCA, but this is probably too
   heavy for your requirements.

   If you have everything under your control, the more pragmatic
   option is to modify the XORP source code to make it think that it
   has received (*,*,RP) on the ib0 interface.

Let me know if you are willing to try this solution and we can take
it offline with the technical details.

Regards,
Pavlin



More information about the Xorp-users mailing list