IP Multicast Optimization: Optimizing PIM Sparse Mode in a Large IP Multicast Deployment
Prerequisites for Optimizing PIM Sparse Mode in a Large IP Multicast Deployment
You must have PIM sparse mode running in your network.
If you plan to use a group list to control to which groups the shortest-path tree (SPT) threshold applies, you must have
configured your access list before performing the task.
Information About Optimizing PIM Sparse Mode in a Large IP Multicast Deployment
PIM Registering Process
IP multicast sources do not use a signaling mechanism to announce their presence. Sources just send their data into the attached
network, as opposed to receivers that use Internet Group Management Protocol (IGMP) to announce their presence. If a source
sends traffic to a multicast group configured in PIM sparse mode (PIM-SM), the Designated Router (DR) leading toward the source
must inform the rendezvous point (RP) about the presence of this source. If the RP has downstream receivers that want to receive
the multicast traffic (natively) from this source and has not joined the shortest path leading toward the source, then the
DR must send the traffic from the source to the RP. The PIM registering process, which is individually run for each (S, G)
entry, accomplishes these tasks between the DR and RP.
The registering process begins when a DR creates a new (S, G) state. The DR encapsulates all the data packets that match the
(S, G) state into PIM register messages and unicasts those register messages to the RP.
If an RP has downstream receivers that want to receive register messages from a new source, the RP can either continue to
receive the register messages through the DR or join the shortest path leading toward the source. By default, the RP will
join the shortest path, because delivery of native multicast traffic provides the highest throughput. Upon receipt of the
first packet that arrives natively through the shortest path, the RP will send a register-stop message back to the DR. When
the DR receives this register-stop message, it will stop sending register messages to the RP.
If an RP has no downstream receivers that want to receive register messages from a new source, the RP will not join the shortest
path. Instead, the RP will immediately send a register-stop message back to the DR. When the DR receives this register-stop
message, it will stop sending register messages to the RP.
Once a routing entry is established for a source, a periodic reregistering takes place between the DR and RP. One minute before
the multicast routing table state times out, the DR will send one dataless register message to the RP each second that the
source is active until the DR receives a register-stop message from the RP. This action restarts the timeout time of the multicast
routing table entry, typically resulting in one reregistering exchange every 2 minutes. Reregistering is necessary to maintain
state, to recover from lost state, and to keep track of sources on the RP. It will take place independently of the RP joining
the shortest path.
PIM Version 1 Compatibility
If an RP is running PIM Version 1, it will not understand dataless register messages. In this case, the DR will not send dataless
register messages to the RP. Instead, approximately every 3 minutes after receipt of a register-stop message from the RP,
the DR encapsulates the incoming data packets from the source into register messages and sends them to the RP. The DR continues
to send register messages until it receives another register-stop message from the RP. The same behavior occurs if the DR
is running PIM Version 1.
When a DR running PIM Version 1 encapsulates data packets into register messages for a specific (S, G) entry, the entry is
process-switched, not fast-switched or hardware-switched. On platforms that support these faster paths, the PIM registering
process for an RP or DR running PIM Version 1 may lead to periodic out-of-order packet delivery. For this reason, we recommend
upgrading your network from PIM Version 1 to PIM Version 2.
PIM Designated Router
Devices configured for IP multicast send PIM hello messages to determine which device will be the designated router (DR)
for each LAN segment (subnet). The hello messages contain the device’s IP address, and the device with the highest IP address
becomes the DR.
The DR sends Internet Group Management Protocol (IGMP) host query messages to all hosts on the directly connected LAN. When
operating in sparse mode, the DR sends source registration messages to the rendezvous point (RP).
By default, multicast devices send PIM router query messages every 30 seconds. By enabling a device to send PIM hello messages
more often, the device can discover unresponsive neighbors more quickly. As a result, the device can implement failover or
recovery procedures more efficiently. It is appropriate to make this change only on redundant devices on the edge of the network.
PIM Sparse-Mode Register Messages
Dataless register messages are sent at a rate of one message per second. Continuous high rates of register messages might
occur if a DR is registering bursty sources (sources with high data rates) and if the RP is not running PIM Version 2.
By default, PIM sparse-mode register messages are sent without limiting their rate. Limiting the rate of register messages
will limit the load on the DR and RP, at the expense of dropping those register messages that exceed the set limit. Receivers
may experience data packet loss within the first second in which packets are sent from bursty sources.
Preventing Use of Shortest-Path Tree to Reduce Memory Requirement
Understanding PIM shared tree and source tree will help you understand how preventing the use of the shortest-path tree can
reduce memory requirements.
PIM Shared Tree and Source Tree
By default, members of a
group receive data from senders to the group across a single data-distribution
tree rooted at the RP.
If the data rate warrants,
leaf routers (routers without any downstream connections) on the shared tree
can use the data distribution tree rooted at the source. This type of
distribution tree is called a shortest-path tree or source tree. By default,
devices to a source tree upon receiving the
first data packet from a source.
This process describes the
move from a shared tree to a source tree:
A receiver joins a group;
leaf Router C sends a join message toward the RP.
The RP puts a link to Router
C in its outgoing interface list.
A source sends data; Router A
encapsulates the data in a register message and sends it to the RP.
The RP forwards the data down
the shared tree to Router C and sends a join message toward the source. At this
point, data might arrive twice at Router C, once encapsulated and once
When data arrives natively
(unencapsulated) at the RP, it sends a register-stop message to Router A.
By default, reception of the
first data packet prompts Router C to send a join message toward the source.
When Router C receives data
on (S, G), it sends a prune message for the source up the shared tree.
The RP deletes the link to
Router C from the outgoing interface of (S, G). The RP triggers a prune message
toward the source.
Join and prune messages are
sent for sources and RPs. They are sent hop-by-hop and are processed by each
PIM device along the path to the source or RP. Register and register-stop
messages are not sent hop-by-hop. They are sent by the designated router that
is directly connected to a source and are received by the RP for the group.
Multiple sources sending to
groups use the shared tree. You can configure the PIM device to stay on the
The change from shared to source tree happens when the first data packet
arrives at the last-hop router. This change depends upon the threshold that is
configured by using the
spt-threshold global configuration command.
The shortest-path tree requires more memory than the shared tree but
reduces delay. You may want to postpone its use. Instead of allowing the leaf
router to immediately move to the shortest-path tree, you can specify that the
traffic must first reach a threshold.
You can configure when a PIM leaf router should join the shortest-path
tree for a specified group. If a source sends at a rate greater than or equal
to the specified kbps rate, the multilayer switch triggers a PIM join message
toward the source to construct a source tree (shortest-path tree). If the
traffic rate from the source drops below the threshold value, the leaf router
switches back to the shared tree and sends a prune message toward the source.
You can specify to which groups the shortest-path tree threshold applies
by using a group list (a standard access list). If a value of 0 is specified or
if the group list is not used, the threshold applies to all groups.
Benefit of Preventing or Delaying the Use of the Shortest-Path Tree
The switch from shared to source tree happens upon the arrival of the first data packet at the last hop device (Router C
in PIM Shared Tree and Source Tree). This switch occurs because the ippimspt-threshold command controls that timing, and its default setting is 0 kbps.
The shortest-path tree requires more memory than the shared tree, but reduces delay. You might want to prevent or delay its
use to reduce memory requirements. Instead of allowing the leaf device to move to the shortest-path tree immediately, you
can prevent use of the SPT or specify that the traffic must first reach a threshold.
You can configure when a PIM leaf device should join the shortest-path tree for a specified group. If a source sends at a
rate greater than or equal to the specified kbps rate, the device triggers a PIM Join message toward the source to construct a source tree (shortest-path tree). If the infinity keyword is specified, all sources for the specified group use the shared tree, never switching to the source tree.
How to Optimize PIM Sparse Mode in a Large IP Multicast Deployment
Optimizing PIM Sparse Mode in a Large Deployment
Consider performing this task if your deployment of IP multicast is large.
Steps 3, 5, and 6 in this task are independent of each other and are therefore considered optional. Any one of these steps
will help optimize PIM sparse mode. If you are going to perform Step 5 or 6, you must perform Step 4. Step 6 applies only
to a designated router; changing the PIM query interval is only appropriate on redundant routers on the edge of the PIM domain.
Command or Action
Enables privileged EXEC mode.
Enter your password if prompted.
Router# configure terminal
Enters global configuration mode.
Router(config)# ip pim register-rate-limit 10
(Optional) Sets a limit on the maximum number of PIM sparse mode register messages sent per second for each (S, G) routing
Use this command to limit the number of register messages that the designated router (DR) will allow for each (S, G) entry.
By default, there is no maximum rate set.
Configuring this command will limit the load on the DR and RP at the expense of dropping those register messages that exceed
the set limit.
Receivers may experience data packet loss within the first second in which register messages are sent from bursty sources.
Router(config)# ip pim spt-threshold infinity group-list 5
(Optional) Specifies the threshold that must be reached before moving to the shortest-path tree.
The default value is 0, which causes the router to join the SPT immediately upon the first data packet it receives.
Specifying the infinity keyword causes the router never to move to the shortest-path tree; it remains on the shared tree. This keyword applies to
a multicast environment of “many-to-many” communication.
The group list is a standard access list that controls which groups the SPT threshold applies to. If a value of 0 is specified
or the group list is not used, the threshold applies to all groups.
In the example, group-list 5 is already configured to permit the multicast groups 188.8.131.52 and 184.108.40.206:
access-list 5 permit 220.127.116.11 0.0.0.255
access-list 5 permit 18.104.22.168 0.0.0.255
Router(config)# interface ethernet 0
Configures an interface.
If you do not want to change the default values of the PIM SPT threshold or the PIM query interval, do not perform this step;
you are done with this task.
Router(config-if)# ip pim query-interval 1
(Optional) Configures the frequency at which multicast routers send PIM router query messages.
Perform this step only on redundant routers on the edge of a PIM domain.
The default query interval is 30 seconds.
The period argument is in seconds unless the msec keyword is specified.
Set the query interval to a smaller number of seconds for faster convergence, but keep in mind the trade-off between faster
convergence and higher CPU and bandwidth usage.
Configuration Examples for Optimizing PIM Sparse Mode in a Large Multicast Deployment
Optimizing PIM Sparse Mode in a Large IP Multicast Deployment Example
The following example shows how to:
Set the query interval to 1 second for faster convergence.
Configure the router to never move to the SPT but to remain on the shared tree.
Set a limit of 10 PIM sparse mode register messages sent per second for each (S, G) routing entry.
interface ethernet 0
ip pim query-interval 1
ip pim spt-threshold infinity
ip pim register-rate-limit 10
The Cisco Support and Documentation website provides online resources to download documentation, software, and tools. Use
these resources to install and configure the software and to troubleshoot and resolve technical issues with Cisco products
and technologies. Access to most tools on the Cisco Support and Documentation website requires a Cisco.com user ID and password.