Multicast PIM Designated Router

When we configure PIM on our routers we will establish PIM neighbor adjacencies and the PIM hello messages are also used to elect a designated router for each multi-access network. The DR is the router that will forward the PIM join message from the receiver to the RP (rendezvous point).

Since the DR is used to forward PIM join messages to the RP, it doesn’t do much good for multicast dense mode where we don’t have a RP. The only exception is when you use IGMPv1…in that case the PIM DR will work as the IGMP query router because IGMPv1 doesn’t have a query router election.

Don’t mix up the PIM DR with the PIM forwarder! To decide which router will forward multicast traffic we have the PIM Assert mechanism.

Let’s take a look at the following topology to see  how the DR works:

multicast pim dr

Above we see a small network with 4 routers. R1 is our RP and R4 is a receiver. As you can see R2,R3 and R4 are connected to the same multi-access network (switch). When R4 sends a PIM join message both R2 and R3 would receive it and forward it to R1. This would mean that we have 2 multicast streams which results in duplicate packets and wasted bandwidth.

To avoid this problem we will elect the DR. R2 or R3 will become the designated router and only one of them will forward the PIM join message to our RP.

Let’s configure this small network and take a close look how the DR works:

R1(config)#ip multicast-routing
R1(config)#ip pim rp-address

R1(config)#interface loopback 0
R1(config-if)#ip pim sparse-mode

R1(config)#interface fastEthernet 0/0
R1(config-if)#ip pim sparse-mode

R1(config)#interface fastEthernet 0/1
R1(config-if)#ip pim sparse-mode

We will use the loopback interface on R1 to advertise as the RP.

R2(config)#ip multicast-routing
R2(config)#ip pim rp-address 

R2(config)#interface fastEthernet 0/0
R2(config-if)#ip pim sparse-mode 

R2(config)#interface fastEthernet 0/1
R2(config-if)#ip pim sparse-mode
R3(config)#ip multicast-routing 
R3(config)#ip pim rp-address

R3(config)#interface fastEthernet 0/0
R3(config-if)#ip pim sparse-mode 

R3(config)#interface fastEthernet 0/1
R3(config-if)#ip pim sparse-mode
R4(config)#ip multicast-routing 

R2,R3 are configured for sparse mode and a static RP, R4 is only a receiver so we don’t need PIM.

R2#show ip pim neighbor 
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode      FastEthernet0/0          01:24:25/00:01:28 v2    1 / S     FastEthernet0/1          01:24:29/00:01:26 v2    1 / DR S

R3 has been elected as the Designated router on this segment. Why? because by default the highest IP address will determine who becomes the PIM DR. Now let’s enable a debug to see what the designated router really does for us:

R2#debug ip pim
PIM debugging is on
R3#debug ip pim
PIM debugging is on

We will use debug ip pim on R2 and R3. Now we will join a multicast group on R4:

R4(config)#interface fastEthernet 0/0
R4(config-if)#ip igmp join-group

R4 will join multicast group Now let’s see what R2 and R3 think of this:

Check RP into the (*, entry

Above you see that R2 doesn’t do much with it, it does add as the RP for multicast group You can see it here:

R2#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
       L - Local, P - Pruned, R - RP-bit set, F - Register flag,
       T - SPT-bit set, J - Join SPT, M - MSDP created entry,
       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
       U - URD, I - Received Source Specific Host Report,
       Z - Multicast Tunnel, z - MDT-data group sender,
       Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode

(*,, 00:11:38/00:02:19, RP, flags: SP
  Incoming interface: FastEthernet0/0, RPF nbr
  Outgoing interface list: Null

Above you see that it created an entry for the group address with as the RP. Now let’s take a look at R3:

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now! Here is why:

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You’ve Ever Spent on Your Cisco Career!
  • Full Access to our 736 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)

514 Sign Ups in the last 30 days

100% Satisfaction Guaranteed!
You may cancel your monthly membership at any time.
No Questions Asked!


Forum Replies

  1. Hello Hussien

    Which router will be chosen depends on what is called the PIM Assert mechanism. You can find detailed information about this at the following lesson:

    ... Continue reading in our forum

  2. 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 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:

    ... Continue reading in our forum

  3. Its seems relatively straightforward when explained. However, may become less so when starting to apply in real world :slight_smile: . One real world example - client is facing redundant pair of routers with HSRP. Will both routers still participate in DR election? How its going to work then if router with lower IP is the active router? Looks like the joins may not be sent as DR (being passive) will not receive client request and active router will receive it but will not send join to RP, since its not a DR. If thats the case does it mean in HSRP case (which is very often)

    ... Continue reading in our forum

  4. Hi Lag,
    Many thanks for the reply. I made the priority of SW1 to 15 so when subscribing for the multicast it was going to through SW1 but when exchange disconnected the link between SW1-MASTER & ESW1 the failover did not occur.
    I think we need to configure the tracking on the SW1-MASTER so that one primary link to ESW1 goes down the traffic automatically goes to SW2 AND PIM dr will automatically be SW2.

35 more replies! Ask a question or join the discussion by visiting our Community Forum