• Any Source Multicast (ASM)
    • Traditional PIM Sparse Mode with an RP.
    • Receiver does not yet know who the sender is.
    • Sender and Receiver are connected through the RP.
    • Both (S,G) and (*,G)
    • Source begins to send traffic.
      • PIM DR hears app feed (S,G)
      • Unicast PIM Register is sent from DR to RP.
      • RP acks DR with Register Stop.
      • RP now knows about (S,G)
    • Receiver signals group membership
      • App sends IGMPv1/2 Report for (*,G)
      • IGMP Querier translates to (*,G) PIM Join towards RP
      • PIM Join forwarded up RPF path to RP
      • RP now knows about receiver.
    • RP joins (S,G)
      • RP sends (S,G) PIM Join up RPF path to source.
      • App now flows from source to RP.
    • RP forwards to receiver via (*,G)
      • Receiver now gets app flow.
    • SPT Switchover
      • Last hop sends PIM join (S,G)
      • Last hop sends PIM Prune (*,G)
      • Receiver is now joined to the (S,G)
    • Issues with ASM Design
      • Receivers don’t know about senders in advance.
        • RP is used to find senders.
      • RP is a bottleneck in the control plane.
        • RP failure means that new trees can’t be built.
        • RP is at least temporarily in the data plane.
      • Solution
        • Have receiver pre-learn the source out of band.

  • Source Specific Multicast (SSM)
    • Group address range
  • Receiver knows app source before it signals membership.
    • Receiver uses IGMPv3 Report to signal (S,G) join.
  • RP is not needed to build the shared tree.
    • App already knows source.
    • RP not needed to build control plane.
  • Result is only (S,G) trees
    • Last hp router sends (S,G) PIM Join up RPF towards source
    • Each tree is SPT for (S,G)


  • Enable multicast routing
    • ‘ip multicast-routing’
  • Define global SSM Group range
    • ‘ip pim ssm <default|range>
  • Enable PIM Sparse at interface level
    • ‘ip pim sparse-mode’
  • Enable IGMPv3 on links to receivers
    • ‘ip igmp version 3’

In the below topology we’re going to setup SSM. R9 we’re going to start with sending a ping to, which should fail right away because there is zero configuration for that group.

On the other side of the topology we’re going to run a source specific join from R8. First step is enabling IGMPv3 on the link towards the source, which is also towards R10.

That is completed on both R10 and R8 because the first hop router will be sending the Join message.

In addition, SSM default needs to be turned on for every single router in the path.

Now, on R8 we’re going to continue joining the group. The command is similar to IGMPv2 but now specifies the source, which is

After entering the join, the extended ping from our source R9 begins to receive responses.

Now when doing a ‘show ip mroute’ on R4, a router in the source to destination path, we only see the (S,G) and no (*,G).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s