[Xorp-hackers] PIM auto-RP sparse-dense-mode?

Pavlin Radoslavov pavlin at icir.org
Tue Oct 9 00:42:50 PDT 2007


> I find my self in a situation where I need to convince a Jupiter router
> on the other end of a long-distance layer 2 connection running 802.1q
> trunking that I have a router, but in fact all I have is a linux box.
> 
> XORP is helping me out in this matter, but one thing I lack is a PIM
> sparse-dense-mode implementation to keep the router happy. Without PIM
> sparse-dense-mode, I'll have to resort to having static joins configured
> on the router, which I dread ;-).
> 
> Per chance, has anyone whipped up a PIM sparse-dense-mode implementation
> for XORP? Specifically, I need to be able to support auto-RP and placing 
> my xorp PIM protocol into discovery-only mode (I only have to handle 
> sources and RPs upstream, so I really only need to listen to 
> 224.0.1.40). A cursory scan of the archives and bugzilla didn't turn up 
> anything on this topic.
> 
> Any implementations or other hints or guidance would be appreciated!

The auto-RP mechanism for dynamic distribution of the group-to-RP
mapping is a legacy protocol that was developed for PIM-SMv1.
It comes from Cisco and there is no public document/specification
that describes it (i.e., no RFC or even an Internet Draft).
My guess is that Juniper implemented it only because they wanted to
interoperate as much as possible with Cisco (and for that purpose
they had to implement legacy stuff like this as well).

When dynamic mapping is needed, the Bootstrap mechanism
should be used instead of auto-RP. The Bootstrap mechanism has been
developed along with PIM-SMv2 so it is quite mature.
It has been implemented by practically every vendor that implements
PIM-SMv2 (including Cisco, Juniper and XORP).

My recommendation is that you get rid of the legacy Auto-RP
deployment in your network and use the Bootstrap mechanism
instead. You might not be very excited by the thoughts of
reconfiguring your routers, but you will be rewarded in the
long-term.

Well, I understand that this switch might not be possible for
various reasons (e.g., out of your control, etc).
In that case, a possible work-around would be to use Static RP
configuration with XORP. I assume you know the group-to-RP mapping
information that is distributed by auto-RP (or you can learn it in
some way such as running tcpdump and decoding the auto-RP packets).
Then make sure that you configure XORP with _exactly_ same Cand-RP
information in the "static-rps" section, otherwise the result is
unpredictable (black holes, loops, etc, depending on your topology).
This work-around will let you use XORP in the auto-RP setup, but it
assumes that the Cand-RP set is very stable and doesn't change over
time. Otherwise, as I mentioned above, it might generate issues you
really don't want to deal with.

Another possible solution, which is really ad-hoc and requires some
level of programming is to provide glue between auto-RP and the
static-rps setup in XORP. For example, write a script that uses,
say, tcpdump to capture the auto-RP packets and then decode them to
obtain the Cand-RP set. Then the script can use "xorpsh" in
non-interactive mode to reconfigure XORP's static-rps setup
on-the-fly.
However, you should have in mind that in both cases you should use
XORP only as a leaf router for the simple reason that it doesn't
have PIM-DM (yet) so you cannot use it to forward the auto-RP
packets to the rest of the network.

I would be very much interested to know the solution you choose
(incl. the reasons for the particular choice), and how well it
worked (or didn't work).
Your experience will be very valuable for other folks that might be
in similar situation.

Thanks,
Pavlin



More information about the Xorp-hackers mailing list