Multicast PIM Designated Router

Hi Hussein,

In my example, R4 was only a receiver so it didn’t participate in PIM, which makes R2 or R3 the designated router. When you enable PIM on R4 and it is a DR, it will have two equal unicast routes to 1.1.1.1 so it has to make a choice.

RPF does not use both routes but uses the PIM neighbor with the highest IP address to go upstream.

Let’s look at an example. I’ll turn R4 into a PIM router by enabling it on the FastEthernet0/0 interface. I’ll also create a loopback that will have IGMP join on it so that R4 is the DR for the loopback segment:

R4(config)#interface FastEthernet 0/1
R4(config-if)#no ip igmp join-group 239.1.1.1
R4(config-if)#ip pim sparse-mode 

R4(config)#router ospf 1
R4(config-router)#network 4.4.4.4 0.0.0.0 area 0

R4(config)#interface loopback 0
R4(config-if)#ip address 4.4.4.4 255.255.255.255
R4(config-if)#ip pim sparse-mode 
R4(config-if)#ip igmp join-group 239.1.1.1

Here’s how R4 reaches the RP:

R4#show ip route 1.1.1.1 | include via
  Known via "ospf 1", distance 110, metric 3, type intra area
    192.168.234.3, from 1.1.1.1, 00:04:57 ago, via FastEthernet0/0
  * 192.168.234.2, from 1.1.1.1, 00:04:57 ago, via FastEthernet0/0

There are two routes but RPF only chooses one:

 R4#show ip rpf 1.1.1.1                
RPF information for ? (1.1.1.1)
  RPF interface: FastEthernet0/0
  RPF neighbor: ? (192.168.234.3)
  RPF route/mask: 1.1.1.1/32
  RPF type: unicast (ospf 1)
  Doing distance-preferred lookups across tables
  RPF topology: ipv4 multicast base, originated from ipv4 unicast base

It selects R3 since that’s the highest PIM neighbor IP address. If you want to influence this, you have a couple of options:

* Don’t enable PIM on R2’s connection to R3/R4
* Change the IP address on R2 so that it’s higher than R3’s IP address.
* Create a static mroute

The static mroute is a decent option but you’ll lose redundancy since you have to manually change it.

Hope this helps!

Rene

3 Likes