IPv6 Multicast: PIM Source-Specific Multicast

IPv6 Multicast: PIM Source-Specific Multicast

Last Updated: July 17, 2012
The PIM source-specific multicast (SSM) routing protocol supports SSM implementation and is derived from PIM-SM. However, unlike PIM-SM data from all multicast sources are sent when there is a PIM join, the SSM feature forwards datagram traffic to receivers from only those multicast sources that the receivers have explicitly joined, thus optimizing bandwidth utilization and denying unwanted Internet broadcast traffic.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the feature information table at the end of this module.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Prerequisites for IPv6 Multicast: PIM Source-Specific Multicast

  • Multicast Listener Discovery (MLD) version 2 is required for source-specific multicast (SSM) to operate.
  • Before SSM will run with MLD, SSM must be supported by the Cisco IPv6 device, the host where the application is running, and the application itself.

Information About IPv6 Multicast: PIM Source-Specific Multicast

IPv6 Multicast Routing Implementation

Cisco software supports the following protocols to implement IPv6 multicast routing:

  • MLD is used by IPv6 devices to discover multicast listeners (nodes that want to receive multicast packets destined for specific multicast addresses) on directly attached links. There are two versions of MLD:
    • MLD version 1 is based on version 2 of the Internet Group Management Protocol (IGMP) for IPv4.
    • MLD version 2 is based on version 3 of the IGMP for IPv4.
  • IPv6 multicast for Cisco software uses both MLD version 2 and MLD version 1. MLD version 2 is fully backward-compatible with MLD version 1 (described in RFC 2710). Hosts that support only MLD version 1 will interoperate with a device running MLD version 2. Mixed LANs with both MLD version 1 and MLD version 2 hosts are likewise supported.
  • PIM-SM is used between devices so that they can track which multicast packets to forward to each other and to their directly connected LANs.
  • PIM in Source Specific Multicast (PIM-SSM) is similar to PIM-SM with the additional ability to report interest in receiving packets from specific source addresses (or from all but the specific source addresses) to an IP multicast address.

The figure below shows where MLD and PIM-SM operate within the IPv6 multicast environment.

Figure 1IPv6 Multicast Routing Protocols Supported for IPv6


Protocol Independent Multicast

Protocol Independent Multicast (PIM) is used between devices so that they can track which multicast packets to forward to each other and to their directly connected LANs. PIM works independently of the unicast routing protocol to perform send or receive multicast route updates like other protocols. Regardless of which unicast routing protocols are being used in the LAN to populate the unicast routing table, Cisco IOS PIM uses the existing unicast table content to perform the Reverse Path Forwarding (RPF) check instead of building and maintaining its own separate routing table.

You can configure IPv6 multicast to use either a PIM- Sparse Mode (SM) or PIM-Source Specific Multicast (SSM) operation, or you can use both PIM-SM and PIM-SSM together in your network.

PIM-Source Specific Multicast

PIM-SSM is the routing protocol that supports the implementation of SSM and is derived from PIM-SM. However, unlike PIM-SM where data from all multicast sources are sent when there is a PIM join, the SSM feature forwards datagram traffic to receivers from only those multicast sources that the receivers have explicitly joined, thus optimizing bandwidth utilization and denying unwanted Internet broadcast traffic. Further, instead of the use of RP and shared trees, SSM uses information found on source addresses for a multicast group. This information is provided by receivers through the source addresses relayed to the last-hop devices by MLD membership reports, resulting in shortest-path trees directly to the sources.

In SSM, delivery of datagrams is based on (S, G) channels. Traffic for one (S, G) channel consists of datagrams with an IPv6 unicast source address S and the multicast group address G as the IPv6 destination address. Systems will receive this traffic by becoming members of the (S, G) channel. Signaling is not required, but receivers must subscribe or unsubscribe to (S, G) channels to receive or not receive traffic from specific sources.

MLD version 2 is required for SSM to operate. MLD allows the host to provide source information. Before SSM will run with MLD, SSM must be supported in the Cisco IPv6 device, the host where the application is running, and the application itself.

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

  1. Receiver joins a group; leaf Device C sends a join message toward the RP.
  2. RP puts the link to Device C in its outgoing interface list.
  3. Source sends the data; Device A encapsulates the data in the register and sends it to the RP.
  4. 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.
  5. When data arrives natively (unencapsulated) at the RP, the RP sends a register-stop message to Device A.
  6. By default, receipt of the first data packet prompts Device C to send a join message toward the source.
  7. When Device C receives data on (S, G), it sends a prune message for the source up the shared tree.
  8. RP deletes the link to Device C from the outgoing interface of (S, G).
  9. 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.

Reverse Path Forwarding

Reverse-path forwarding is used for forwarding multicast datagrams. It functions as follows:

  • If a device receives a datagram on an interface it uses to send unicast packets to the source, the packet has arrived on the RPF interface.
  • If the packet arrives on the RPF interface, a device forwards the packet out the interfaces present in the outgoing interface list of a multicast routing table entry.
  • If the packet does not arrive on the RPF interface, the packet is silently discarded to prevent loops.

PIM uses both source trees and RP-rooted shared trees to forward datagrams; the RPF check is performed differently for each, as follows:

  • If a PIM device has source-tree state (that is, an (S, G) entry is present in the multicast routing table), the device performs the RPF check against the IPv6 address of the source of the multicast packet.
  • If a PIM device has shared-tree state (and no explicit source-tree state), it performs the RPF check on the RP's address (which is known when members join the group).

Sparse-mode PIM uses the RPF lookup function to determine where it needs to send joins and prunes. (S, G) joins (which are source-tree states) are sent toward the source. (*, G) joins (which are shared-tree states) are sent toward the RP.

How to Configure IPv6 Multicast: PIM Source-Specific Multicast

Configuring PIM Options

SUMMARY STEPS

1.    enable

2.    configure terminal

3.    ipv6 pim [vrf vrf-name] spt-threshold infinity [group-list access-list-name]

4.    ipv6 pim [vrf vrf-name] accept-register {list access-list | route-map map-name}

5.    interface type number

6.    ipv6 pim dr-priority value

7.    ipv6 pim hello-interval seconds

8.    ipv6 pim join-prune-interval seconds

9.    exit

10.    show ipv6 pim [vrf vrf-name] join-prune statistic [interface-type]


DETAILED STEPS
 Command or ActionPurpose
Step 1
enable


Example:

Device> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
configure terminal


Example:

Device# configure terminal

 

Enters global configuration mode.

 
Step 3
ipv6 pim [vrf vrf-name] spt-threshold infinity [group-list access-list-name]


Example:

Device(config)# ipv6 pim spt-threshold infinity group-list acc-grp-1

 

Configures when a PIM leaf device joins the SPT for the specified groups.

 
Step 4
ipv6 pim [vrf vrf-name] accept-register {list access-list | route-map map-name}


Example:

Device(config)# ipv6 pim accept-register route-map reg-filter

 

Accepts or rejects registers at the RP.

 
Step 5
interface type number


Example:

Device(config)# interface FastEthernet 1/0

 

Specifies an interface type and number, and places the device in interface configuration mode.

 
Step 6
ipv6 pim dr-priority value


Example:

Device(config-if)# ipv6 pim dr-priority 3

 

Configures the DR priority on a PIM device.

 
Step 7
ipv6 pim hello-interval seconds


Example:

Device(config-if)# ipv6 pim hello-interval 45

 

Configures the frequency of PIM hello messages on an interface.

 
Step 8
ipv6 pim join-prune-interval seconds


Example:

Device(config-if)# ipv6 pim join-prune-interval 75

 

Configures periodic join and prune announcement intervals for a specified interface.

 
Step 9
exit


Example:

Device(config-if)# exit

 

Enter this command twice to exit interface configuration mode and enter privileged EXEC mode.

 
Step 10
show ipv6 pim [vrf vrf-name] join-prune statistic [interface-type]


Example:

Device# show ipv6 pim join-prune statistic

 

Displays the average join-prune aggregation for the most recently aggregated packets for each interface.

 

Resetting the PIM Traffic Counters

If PIM malfunctions, or in order to verify that the expected number of PIM packets are received and sent, clear PIM traffic counters. Once the traffic counters are cleared, you can verify that PIM is functioning correctly and that PIM packets are being received and sent correctly.

SUMMARY STEPS

1.    enable

2.    clear ipv6 pim [vrf vrf-name] traffic

3.    show ipv6 pim [vrf vrf-name] traffic


DETAILED STEPS
 Command or ActionPurpose
Step 1
enable


Example:

Device> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
clear ipv6 pim [vrf vrf-name] traffic


Example:

Device# clear ipv6 pim traffic

 

Resets the PIM traffic counters.

 
Step 3
show ipv6 pim [vrf vrf-name] traffic


Example:

Device# show ipv6 pim traffic

 

Displays the PIM traffic counters.

 

Clearing the PIM Topology Table to Reset the MRIB Connection

No configuration is necessary to use the MRIB. However, users may in certain situations want to clear the PIM topology table in order to reset the MRIB connection and verify MRIB information.

SUMMARY STEPS

1.    enable

2.    clear ipv6 pim [vrf vrf-name] topology [group-name | group-address]

3.    show ipv6 mrib [vrf vrf-name] client [filter] [name {client-name | client-name : client-id}]

4.    show ipv6 mrib [vrf vrf-name] route [link-local| summary | [sourceaddress-or-name | *] [groupname-or-address [prefix-length]]]

5.    show ipv6 pim [vrf vrf-name] topology [groupname-or-address [sourcename-or-address] | link-local | route-count [detail]]

6.    debug ipv6 mrib [vrf vrf-name] client

7.    debug ipv6 mrib [vrf vrf-name] io

8.    debug ipv6 mrib proxy

9.    debug ipv6 mrib [vrf vrf-name] route [group-name | group-address]

10.    debug ipv6 mrib [vrf vrf-name] table


DETAILED STEPS
 Command or ActionPurpose
Step 1
enable


Example:

Device> enable

 

Enables privileged EXEC mode.

  • Enter your password if prompted.
 
Step 2
clear ipv6 pim [vrf vrf-name] topology [group-name | group-address]


Example:

Device# clear ipv6 pim topology FF04::10

 

Clears the PIM topology table.

 
Step 3
show ipv6 mrib [vrf vrf-name] client [filter] [name {client-name | client-name : client-id}]


Example:

Device# show ipv6 mrib client

 

Displays multicast-related information about an interface.

 
Step 4
show ipv6 mrib [vrf vrf-name] route [link-local| summary | [sourceaddress-or-name | *] [groupname-or-address [prefix-length]]]


Example:

Device# show ipv6 mrib route

 

Displays the MRIB route information.

 
Step 5
show ipv6 pim [vrf vrf-name] topology [groupname-or-address [sourcename-or-address] | link-local | route-count [detail]]


Example:

Device# show ipv6 pim topology

 

Displays PIM topology table information for a specific group or all groups.

 
Step 6
debug ipv6 mrib [vrf vrf-name] client


Example:

Device# debug ipv6 mrib client

 

Enables debugging on MRIB client management activity.

 
Step 7
debug ipv6 mrib [vrf vrf-name] io


Example:

Device# debug ipv6 mrib io

 

Enables debugging on MRIB I/O events.

 
Step 8
debug ipv6 mrib proxy


Example:

Device# debug ipv6 mrib proxy

 

Enables debugging on MRIB proxy activity between the route processor and line cards on distributed router platforms.

 
Step 9
debug ipv6 mrib [vrf vrf-name] route [group-name | group-address]


Example:

Device# debug ipv6 mrib route

 

Displays information about MRIB routing entry-related activity.

 
Step 10
debug ipv6 mrib [vrf vrf-name] table


Example:

Device# debug ipv6 mrib table

 

Enables debugging on MRIB table management activity.

 

Configuration Examples for IPv6 Multicast: PIM Source-Specific Multicast

Example: Displaying IPv6 PIM Topology Information

Device# show ipv6 pim topology

IP PIM Multicast Topology Table
Entry state:(*/S,G)[RPT/SPT] Protocol Uptime Info
Entry flags:KAT - Keep Alive Timer, AA - Assume Alive, PA - Probe Alive,
    RA - Really Alive, LH - Last Hop, DSS - Don't Signal Sources,
    RR - Register Received, SR - Sending Registers, E - MSDP External,
    DCC - Don't Check Connected
Interface state:Name, Uptime, Fwd, Info
Interface flags:LI - Local Interest, LD - Local Dissinterest,
II - Internal Interest, ID - Internal Dissinterest,
LH - Last Hop, AS - Assert, AB - Admin Boundary

(*,FF05::1)
SM UP:02:26:56 JP:Join(now) Flags:LH 
RP:2001:DB8:1:1:2
RPF:Ethernet1/1,FE81::1 
  Ethernet0/1          02:26:56  fwd LI LH 

(2001:DB8:1:1:200,FF05::1)
SM UP:00:00:07 JP:Null(never) Flags:
RPF:Ethernet1/1,FE80::30:1:4 
  Ethernet1/1          00:00:07  off LI 

Example: Configuring Join/Prune Aggregation

The following example shows how to provide the join/prune aggregation on Ethernet interface 0/0:

Device# show ipv6 pim join-prune statistic Ethernet0/0

PIM Average Join/Prune Aggregation for last (1K/10K/50K) packets
Interface             Transmitted             Received
Ethernet0/0      0    / 0             1    / 0    

Example: Displaying Information About PIM Traffic

Device# show ipv6 pim traffic 

PIM Traffic Counters
Elapsed time since counters cleared:00:05:29

                              Received     Sent
Valid PIM Packets               22          22        
Hello                           22          22        
Join-Prune                      0           0         
Register                        0           0         
Register Stop                   0           0         
Assert                          0           0         
Bidir DF Election               0           0         

Errors:
Malformed Packets                           0         
Bad Checksums                               0         
Send Errors                                 0         
Packet Sent on Loopback Errors              0         
Packets Received on PIM-disabled Interface  0         
Packets Received with Unknown PIM Version   0 

Additional References

Related Documents

Related Topic Document Title

IPv6 addressing and connectivity

IPv6 Configuration Guide

Cisco IOS commands

Cisco IOS Master Commands List, All Releases

IP multicast commands

Cisco IOS IP Multicast Command Reference

IPv6 commands

Cisco IOS IPv6 Command Reference

Cisco IOS IPv6 features

Cisco IOS IPv6 Feature Mapping

Standards and RFCs

Standard/RFC Title

RFCs for IPv6

IPv6 RFCs

MIBs

MIB

MIBs Link

To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs

Technical Assistance

Description Link

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.

http://www.cisco.com/cisco/web/support/index.html

Feature Information for IPv6 Multicast: PIM Source-Specific Multicast

The following table provides release information about the feature or features described in this module. This table lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Table 1Feature Information for IPv6 Multicast: PIM Source-Specific Multicast
Feature Name Releases Feature Information

IPv6 Multicast: PIM Source-Specific Multicast

12.0(26)S

12.2(18)S

12.2(25)SG

12.2(33)SRA

12.3(2)T

12.4

12.4(2)T

Cisco IOS XE Release 2.1

15.0(1)S

PIM-SSM supports the implementation of SSM and is derived from PIM-SM. The SSM feature forwards datagram traffic to receivers from only those multicast sources that the receivers have explicitly joined, optimizing bandwidth utilization and denying unwanted Internet broadcast traffic.

The following commands were introduced or modified: clear ipv6 pim topology, debug ipv6 pim, debug ipv6 pim neighbor, ipv6 pim, ipv6 pim dr-priority, ipv6 pim hello-interval, ipv6 pim rp-address , ipv6 pim spt-threshold infinity, show ipv6 mroute, show ipv6 pim group-map, show ipv6 pim interface, show ipv6 pim neighbor, show ipv6 pim range-list, show ipv6 pim topology, show ipv6 pim tunnel.

Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates in the U.S. and other countries. To view a list of Cisco trademarks, go to this URL: www.cisco.com/go/trademarks. Third-party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1110R)

Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental.

© 2012 Cisco Systems, Inc. All rights reserved.