Fixing multicast RPF failure with BGP

In this post i would like to explain how you can fix a multicast RPF failure using BGP.

If you take a look at the topology in figure 1, we have a network running EIGRP as the IGP

and where R1 advertises its loopback 0 (1.1.1.1/32). R4 also has a loopback 0 with the 4.4.4.4/32 address.

EIGRP adjacencies are running between R1 and R2, R1 and R3, R2 and R3 and finally R3 and R4.

Basically on all links in the topology.

Everything is working fine and we can verify that we have reachability through the network using icmp echo between R1 and R4:

To create the multicast network, we enable multicast routing on all the routers and enable

pim sparse-mode on all links except the R1 to R3 link! (remember to include the loopbacks).

To simulate traffic, R1 will be the source and R4’s loopback will be the receiver, so on R4, lets join

239.1.1.1:

What we end up with is a PIM topology as in figure 2.

Now what we want to do is make R1 our RP using BSR. What will happen is that R3 will receive a BSR

message on its f2/0 interface and determine that its not the RPF interface it should be getting this message on.

That would instead be f1/0 as per the IGP.

Using “debug ip pim bsr” a message will appear on the console:

This basically renders our multicast network incomplete as R3 and R4 wont have any RP.

So lets fix it!

On R2 and R3 we enable BGP with the multicast address family:

R2:

R3:

So what did we do here. Well for one thing, we are creating an iBGP peering between R2 and R3.

On this peering we are enable the multiprotocol extension for multicast.

Then on R2, we are advertising the 1.1.1.1/32 network as learned through EIGRP.

A similar configuration is used on R3 except we are not advertising anything and importantly we are using the

distance command to set the administrative distance for iBGP routes to 70. This last step would not be nessecary

if we had an eBGP peering instead, since the AD would then already be lower than the IGP learned route.

On R3, we should now see the following:

and using “show ip rpf 1.1.1.1”:

As can be seen, R3 now use the BGP learned route through f2/0 to get “back” to 1.1.1.1/32.

And finally, the RP should be installed on both R3 and R4:

So thats how we would fix a multicast RPF failure using BGP.