[Xorp-hackers] PIM and IGMP
Pavlin Radoslavov
pavlin@icir.org
Thu, 07 Jul 2005 10:50:29 -0700
> How hard would it be to hack the code so that I could get certain multicast
> addresses from being advertised across 2 different interfaces. Say I have 2
> NIC cards and one is on an external network and one on the internal.
> 239.x.x.x multicast is external and needs to be seen by hosts internally and
> 238.x.x.x multicast is internal and should never be known externally. Would
> there be a particular file that I could put a filter in?
There is some initial support for multicast scoping, but it is
incomplete, and it doesn't cover what you need.
Basically, what we have is:
* A generic class PimScopeZoneTable that contains information about
configured multicast filters per interfaces.
* XRL interface to configure those filters:
"add_config_scope_zone_by_*" and "delete_config_scope_zone_by_*"
inside xrl/interfaces/pim.xif
* Support in the PIM Bootstrap implementation to use the above
scoping information.
What we don't have is:
* Hooks in the rtrmgr templates (etc/templates/pimsm4.tp and
etc/templates/pimsm6.tp) to configure the multicast filters.
Adding those hooks should be trivial.
* Support in the handling of the PIM Join/Prune and Assert messages
to consider the PimScopeZoneTable when accepting or transmitting
those control messages.
Adding support for this shouldn't be very difficult, but requires
some careful considerations where exactly to put the mods.
E.g., in case of PIM Join/Prune messages we need to filter out
only some of the entries inside the message rather than the whole
message.
In any case, the existing code for the Bootstrap scoping per
interface (search for pim_scope_zone_table) can help to
understand the code.
* Documentation to describe the configuration once it is
implemented :)
Hope that helps,
Pavlin