IPv6 multicast provides support for intradomain multicast routing using PIM-SM. PIM-SM uses unicast routing to provide reverse-path information for multicast tree building, but it is not dependent on any particular unicast routing protocol.
PIM-SM is used in a multicast network when relatively few devices are involved in each multicast and these devices do not forward multicast packets for a group, unless there is an explicit request for the traffic. PIM-SM distributes information about active sources by forwarding data packets on the shared tree. PIM-SM initially uses shared trees, which requires the use of an RP.
Requests are accomplished via PIM joins, which are sent hop by hop toward the root node of the tree. The root node of a tree in PIM-SM is the RP in the case of a shared tree or the first-hop device that is directly connected to the multicast source in the case of a shortest path tree (SPT). The RP keeps track of multicast groups and the hosts that send multicast packets are registered with the RP by that host’s first-hop device.
As a PIM join travels up the tree, devices along the path set up multicast forwarding state so that the requested multicast traffic will be forwarded back down the tree. When multicast traffic is no longer needed, a device sends a PIM prune up the tree toward the root node to prune (or remove) the unnecessary traffic. As this PIM prune travels hop by hop up the tree, each device updates its forwarding state appropriately. Ultimately, the forwarding state associated with a multicast group or source is removed.
A multicast data sender sends data destined for a multicast group. The designated router (DR) of the sender takes those data packets, unicast-encapsulates them, and sends them directly to the RP. The RP receives these encapsulated data packets, de-encapsulates them, and forwards them onto the shared tree. The packets then follow the (*, G) multicast tree state in the devices on the RP tree, being replicated wherever the RP tree branches, and eventually reaching all the receivers for that multicast group. The process of encapsulating data packets to the RP is called registering, and the encapsulation packets are called PIM register packets.
Cisco devices use
PIM-SM to forward multicast traffic and follow an election process to select a
designated device when there is more than one device on a LAN segment.
The designated router
(DR) is responsible for sending PIM register and PIM join and prune messages
toward the RP to inform it about active sources and host group membership.
If there are multiple
PIM-SM devices on a LAN, a DR must be elected to avoid duplicating multicast
traffic for connected hosts. The PIM device with the highest IPv6 address
becomes the DR for the LAN unless you choose to force the DR election by use of
dr-priority command. This command allows you to
specify the DR priority of each device on the LAN segment (default priority =
1) so that the device with the highest priority will be elected as the DR. If
all devices on the LAN segment have the same priority, then the highest IPv6
address is again used as the tiebreaker.
The figure below
illustrates what happens on a multiaccess segment. Device A and Device B are
connected to a common multiaccess Ethernet segment with Host A as an active
receiver for Group A. Only Device A, operating as the DR, sends joins to the RP
to construct the shared tree for Group A. If Device B was also permitted to
send (*, G) joins to the RP, parallel paths would be created and Host A would
receive duplicate multicast traffic. Once Host A begins to source multicast
traffic to the group, the DR’s responsibility is to send register messages to
the RP. If both devices were assigned the responsibility, the RP would receive
duplicate multicast packets and result in wastage of bandwidth.
Figure 1. Designated Router Election on
a Multiaccess Segment
If the DR should
fail, the PIM-SM provides a way to detect the failure of Device A and elect a
failover DR. If the DR (Device A) became inoperable, Device B would detect this
situation when its neighbor adjacency with Device A timed out. Because Device B
has been hearing MLD membership reports from Host A, it already has MLD state
for Group A on this interface and would immediately send a join to the RP when
it became the new DR. This step reestablishes traffic flow down a new branch of
the shared tree via Device B. Additionally, if Host A were sourcing traffic,
Device B would initiate a new register process immediately after receiving the
next multicast packet from Host A. This action would trigger the RP to join the
SPT to Host A via a new branch through Device B.
Two PIM devices are
neighbors if there is a direct connection between them. To display your PIM
neighbors, use the
neighbor command in privileged EXEC mode.
The DR election
process is required only on multiaccess LANs.
IPv6 PIM provides
embedded RP support. Embedded RP support allows the device to learn RP
information using the multicast group destination address instead of the
statically configured RP. For devices that are the RP, the device must be
statically configured as the RP.
The device searches
for embedded RP group addresses in MLD reports or PIM messages and data
packets. On finding such an address, the device learns the RP for the group
from the address itself. It then uses this learned RP for all protocol activity
for the group. For devices that are the RP, the device is advertised as an
embedded RP must be configured as the RP.
To select a static RP
over an embedded RP, the specific embedded RP group range or mask must be
configured in the access list of the static RP. When PIM is configured in
sparse mode, you must also choose one or more devices to operate as an RP. An
RP is a single common root placed at a chosen point of a shared distribution
tree and is configured statically in each box.
PIM DRs forward data
from directly connected multicast sources to the RP for distribution down the
shared tree. Data is forwarded to the RP in one of two ways:
encapsulated in register packets and unicast directly to the RP by the
first-hop device operating as the DR.
If the RP has
itself joined the source tree, it is multicast-forwarded per the RPF forwarding
algorithm described in the PIM-Sparse Mode section.
The RP address is
used by first-hop devices to send PIM register messages on behalf of a host
sending a packet to the group. The RP address is also used by last-hop devices
to send PIM join and prune messages to the RP to inform it about group
membership. You must configure the RP address on all devices (including the RP
A PIM device can be
an RP for more than one group. Only one RP address can be used at a time within
a PIM domain for a certain group. The conditions specified by the access list
determine for which groups the device is an RP.
supports the PIM accept register feature, which is the ability to perform
PIM-SM register message filtering at the RP. The user can match an access list
or compare the AS path for the registered source with the AS path specified in
a route map.
PIM Shared Tree and Source Tree (Shortest-Path Tree)
By default, members of a group receive data from senders to the group across a single data distribution tree rooted at the RP. This type of distribution tree is called shared tree or rendezvous point tree (RPT), as illustrated in the figure below. Data from senders is delivered to the RP for distribution to group members joined to the shared tree.
Figure 2. Shared Tree and Source Tree (Shortest Path Tree)
If the data threshold warrants, leaf devices on the shared tree may initiate a switch to the data distribution tree rooted at the source. This type of distribution tree is called a shortest path tree or source tree. By default, the software switches to a source tree upon receiving the first data packet from a source.
The following process details the move from shared tree to source tree:
Receiver joins a group; leaf Device C sends a join message toward the RP.
RP puts the link to Device C in its outgoing interface list.
Source sends the data; Device A encapsulates the data in the register and sends it to the RP.
RP forwards the data down the shared tree to Device C and sends a join message toward the source. At this point, data may arrive twice at Device C, once encapsulated and once natively.
When data arrives natively (unencapsulated) at the RP, the RP sends a register-stop message to Device A.
By default, receipt of the first data packet prompts Device C to send a join message toward the source.
When Device C receives data on (S, G), it sends a prune message for the source up the shared tree.
RP deletes the link to Device C from the outgoing interface of (S, G).
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 (DR) that is directly connected to a source and are received by the RP for the group.