Multicast PIM Register Message
Multicast PIM sparse mode uses a unidirectional shared tree, and multicast traffic can only flow down the tree. Multicast sources somehow have to get their traffic to this shared tree so that it can flow down the tree toward the receivers. PIM sparse mode will let the RP join the SPT to the source so that it can receive the multicast traffic and let it flow down the multicast shared tree.
The trick is that the RP has to know that a source exists. We use PIM register and PIM register-stop messages to accomplish this.
PIM register messages are sent by the DR (Designated Router) on the segment where the source is. It does two things for us:
- Notify the rendezvous point that the source is sending traffic toward a multicast group address.
- Deliver the first multicast packet from the source to the RP so it can be delivered to the shared tree. This first packet is encapsulated in a PIM register message.
Whenever a multicast source starts to transmit, the DR will catch the multicast packet and create an (S,G) entry in its multicast routing table. It will encapsulate multicast packets in IP packets and send them using unicast to the RP. When the RP receives this packet, it will de-encapsulate the PIM register message. There are now two possibilities:
- When the RP has listeners (receivers) for the multicast group, it will join the SPT for the source so that it can receive the multicast traffic itself and forward it down the shared tree.
- When the RP has no listeners, it will discard the multicast packets, and it won’t send a join toward the source.
Once the RP has built the SPT towards the source, it will send a PIM register-stop message to the DR when it has built the SPT to the source OR when it has no active listeners. As a result, the DR will stop the PIM registration process, and it will stop encapsulating multicast traffic in PIM register packets.
Anyway, enough talk…let’s take a look at an actual topology so I can demonstrate how PIM register works!

In the example above, we have four routers configured for multicast:
- R1 is the source for our multicast traffic.
- R2 will be the designated router, receiving multicast traffic from R1.
- R3 is the rendezvous point.
- R4 is the receiver for our multicast traffic.
OSPF has been configured to have full reachability between the four routers. First, we will enable multicast routing and PIM sparse mode on all routers:
R1(config)#ip multicast-routing
R1(config)#ip pim rp-address 3.3.3.3
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip pim sparse-mode
R2(config)#ip multicast-routing
R2(config)#ip pim rp-address 3.3.3.3
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip pim sparse-mode
R2(config-if)#interface fastEthernet 0/1
R2(config-if)#ip pim sparse-mode
R3(config)#ip multicast-routing
R3(config)#ip pim rp-address 3.3.3.3
R3(config)#interface fastEthernet 0/0
R3(config-if)#ip pim sparse-mode
R3(config-if)#interface fastEthernet 0/1
R3(config-if)#ip pim sparse-mode
R3(config-if)#interface loopback0
R3(config-if)#ip pim sparse-mode
R4(config)#ip multicast-routing
All routers are configured to use PIM sparse mode and to use R3’s loopback0 interface as the RP. I don’t need to configure PIM on R4 since it’s only the receiver. Let’s configure R4 to join a multicast group address:
R4(config)#interface fastEthernet 0/0
R4(config-if)#ip igmp join-group 239.1.1.1
R3#show ip mroute 239.1.1.1
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
(*, 239.1.1.1), 00:00:22/00:02:37, RP 3.3.3.3, flags: SJC
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/1, Forward/Sparse, 00:00:22/00:02:37
You can see that R4 has joined the rendezvous point for the 239.1.1.1 multicast group address. Nobody is sending anything to this multicast group address; however, let’s enable a debug on the RP and launch some multicast packets:
R3#debug ip pim
PIM debugging is on
R1#ping 239.1.1.1 repeat 9999
Type escape sequence to abort.
Sending 9999, 100-byte ICMP Echos to 239.1.1.1, timeout is 2 seconds:
Reply to request 0 from 192.168.34.4, 12 ms
Reply to request 1 from 192.168.34.4, 8 ms
Reply to request 1 from 192.168.34.4, 12 ms
This is what you will see on the RP:
R3#
PIM(0): Received v2 Register on FastEthernet0/0 from 192.168.23.2
for 192.168.12.1, group 239.1.1.1
PIM(0): Insert (192.168.12.1,239.1.1.1) join in nbr 192.168.23.2's queue
PIM(0): Forward decapsulated data packet for 239.1.1.1 on FastEthernet0/1
It says it received a PIM register from 192.168.123.2 (R2) for this multicast group address. It decapsulates the packets from R1 and forwards them toward R4.
Let’s see what happens when we remove R4 as a receiver for 239.1.1.1:
R3#
PIM(0): Send v2 Register-Stop to 192.168.23.2 for 192.168.12.1, group 239.1.1.1
Since the RP has no more receivers interested in the 239.1.1.1 multicast group, it will send a PIM register-stop toward the DR (R2).
That’s all I wanted to show you for now, this is how a source registers itself at the RP using PIM Register messages and how the RP will tell the DR not to send anything anymore using PIM register-stop messages!
Table of Content
Unit 1. Introduction to Multicast
Unit 2: IGMP (Internet Group Management Protocol)
- Multicast IGMP Version 1
- Multicast IGMP Version 2
- Multicast IGMP Version 3
- Multicast IGMP Filter
- Multicast IGMP Proxy
Unit 3: Multicast L2
- Multicast IGMP Snooping
- IGMP Snooping without Router
- Multicast CGMP (Cisco Group Management Protocol)
Unit 4: Multicast L3
- Multicast Routing
- Multicast PIM Dense Mode
- Multicast PIM Sparse Mode
- Multicast PIM Sparse-Dense Mode
- Multicast PIM Auto RP
- Multicast PIM BSR (Bootstrap)
- RPF (Reverse Path Forwarding)
- Multicast Tunnel RPF Failure
- PIM Designated Router
- PIM Assert
- Multicast PIM Prune Override
- Multicast PIM Register Message
- Anycast RP
- Multicast MSDP SA Filtering
- Multicast Bidirectional PIM
- Multicast Stub Routing and IGMP Helper
- Source Specific Multicast
- Multicast PIM Accept RP
- Multicast PIM Accept Register
- Multicast Auto-RP Mapping agent behind Spoke
- PIM NBMA Mode
- Multicast Boundary Filtering
- Multicast PIM Snooping