IPv6 Multicast: PIM Source-Specific Multicast

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 1. IPv6 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 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:

  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.


Note


To do a RPF check, use the show ipv6 rpf hostname or show ipv6 rpf vrf vrf_name hostname command.

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 1 Feature 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.