PIM Source-Specific Multicast Configuration
Overview
PIM Source-Specific Multicast (SSM) is a multicast routing protocol that enhances the efficiency and security of multicast communication by enabling hosts to receive multicast traffic directly from specific sources. Here’s a detailed overview of how PIM SSM operates using a subset of PIM sparse mode and IGMPv3/MLDv2:
SSM utilizes PIM sparse mode (PIM-SM) to create a Shortest Path Tree (SPT) directly between multicast sources and receivers. Hosts signal their interest using IGMPv3 (IPv4) or MLDv2 (IPv6), specifying the source IP address to join multicast groups without requiring a Rendezvous Point (RP). This direct communication approach optimizes multicast efficiency by bypassing the RP and establishing efficient data paths tailored to specific source-receiver relationships, enhancing network performance and security in multicast environments.
PIM Source-Specific Multicast (SSM) thus enhances multicast communication by streamlining the process of delivering multicast traffic directly from sources to receivers, leveraging existing multicast protocols and minimizing network complexity.
Feature Characteristics
PIM SSM enables hosts to specify source IP addresses when joining multicast groups, facilitating direct communication paths and eliminating the need for a Rendezvous Point (RP). It leverages PIM sparse mode to establish efficient Shortest Path Trees (SPTs) between sources and receivers, ensuring optimized multicast traffic delivery. Hosts use IGMPv3 (IPv4) and MLDv2 (IPv6) for precise membership management, enhancing network security and efficiency by reducing unnecessary traffic and simplifying configuration. SSM supports scalable deployment alongside existing multicast infrastructure, promoting interoperability and streamlined network administration while optimizing resource utilization and improving overall network reliability.
Benefits
The benefits of PIM SSM:
• Efficient Multicast Traffic Handling
• Optimized Resource Utilization
• Enhanced Security
• Simplified Configuration and Management
• Scalability and Compatibility
• Improved Network Performance
• Support for Diverse Applications.
PIM-SSM Configuration
The required steps to configure PIM-SSM are the following:
• Enable IP multicast on each PIM router (see Enabling IP Multicast Routing)
• Enable PIM-SM on the desired interfaces (see Enable PIM-SM on an Interface)
• Configure PIM-SSM on router.
All multicast group states are dynamically maintained as the result of IGMP Report/Leave and PIM Join/Prune messages.
Topology
The following figure displays the network topology used in these examples.
PIM-SSM Configuration Topology
Configuration
Enable IP Multicast Routing on all Routers
Enable IP multicast routing on all of the PIM-SSM routers inside the PIM domain:
RouterA#configure terminal
RouterA(config)#ip multicast-routing
RouterA(config)#ipv6 multicast-routing
(config)#commit
Enable PIM SSM Default on all Routers
Enable PIM-SSM on all routers (Router_A, Router_B, and Router_C) inside the PIM domain on which you want to run PIM.
RouterA(config)# ip pim ssm default
RouterA(config)# ipv6 pim ssm default
RouterA(config)#commit
Enable PIM-SSM configuration on Router A
In the following sample configuration, both eth1 and eth2 are enabled for PIM-SSM on the router.
Enable PIM-SSM on all participating interfaces within router (Router_A) inside the PIM domain on which you want to run PIM. In the following sample configuration, both eth1 and eth2 are enabled for PIM-SSM on the router (Router_A).
RouterA(config)#interface eth1
RouterA(config-if)#ip address 10.1.1.1/24
RouterA(config-if)#ipv6 address 001::1/64
RouterA(config-if)#ip pim sparse-mode
RouterA(config-if)#ipv6 pim sparse-mode
RouterA(config-if)#ip igmp version 3
RouterA(config-if)#ipv6 mld version 2
RouterA(config-if)#commit
RouterA(config)#interface eth2
RouterA(config-if)#ip address 100.1.1.1/24
RouterA(config-if)#ipv6 address 2001::1/24
RouterA(config-if)#ip pim sparse-mode
RouterA(config-if)#ipv6 pim sparse-mode
RouterA(config-if)#ip igmp version 3
RouterA(config-if)#ipv6 mld version 2
RouterA(config-if)#commit
Enable PIM-SSM configuration on Router B
In the following sample configuration, both eth1 and eth2 are enabled for PIM-SSM on the router.
Enable PIM-SSM configuration on router B, configure Interface eth2 and eth1.
RouterB(config)#interface eth2
RouterB(config-if)#ip address 10.1.1.2/24
RouterB(config-if)#ipv6 address 3001::2/64
RouterB(config-if)#ip pim sparse-mode
RouterB(config-if)#ipv6 pim sparse-mode
RouterB(config-if)#ip igmp version 3
RouterB(config-if)#ipv6 mld version 2
RouterB(config-if)#commit
RouterB(config)#interface eth1
RouterB(config-if)#ip address 11.1.1.1/24
RouterB(config-if)#ipv6 address 4001::1/24
RouterB(config-if)#ip pim sparse-mode
RouterB(config-if)#ipv6 pim sparse-mode
RouterB(config-if)#ip igmp version 3
RouterB(config-if)#ipv6 mld version 2
RouterB(config-if)#commit
Enable PIM-SSM configuration on Router C
In the following sample configuration, both eth1 and eth2 are enabled for PIM-SSM on the router.
Enable PIM-SSM configuration on router C, configure Interface eth2 and eth1.
RouterC(config)#interface eth2
RouterC(config-if)#ip address 11.1.1.2/24
RouterC(config-if)#ipv6 address 4001::2/64
RouterC(config-if)#ip pim sparse-mode
RouterC(config-if)#ipv6 pim sparse-mode
RouterC(config-if)#ip igmp version 3
RouterC(config-if)#ipv6 mld version 2
RouterC(config-if)#exit
RouterC(config)#interface eth1
RouterC(config-if)#ip address 101.1.1.1/24
RouterC(config-if)#ipv6 address 5001::1/24
RouterC(config-if)#ip pim sparse-mode
RouterC(config-if)#ipv6 pim sparse-mode
RouterC(config-if)#ip igmp version 3
RouterC(config-if)#ipv6 mld version 2
RouterC(config-if)#commit
RouterC(config-if)#exit
Validation
Enter the commands listed in this section to confirm the previous configurations.
Interface Details
The show ip pim interface command displays the interface details for Router_C, and shows that Router_C is the Designated Router on Subnet 1.
Router_C#show ip pim interface
Address Interface VIFindex Ver/ Nbr DR DR
Mode Count Prior
192.168.1.10 eth1 0 v2/S 1 1 192.168.1.10
172.16.1.10 eth2 2 v2/S 1 1 172.16.1.10
ROUTER C#show ipv6 pim interface
Total number of PIM interfaces:2
Interface VIFindex Ver/ Nbr DR
Mode Count Prior
eth2 0 v2/D 1 1
Address : fe80::eac5:7aff:fea8:7cb9
Global Address: 3001::1
eth1 1 v2/D 0 1
Address : fe80::eac5:7aff:fea8:7cc3
Global Address: 2001::1
ROUTER C#sh ipv6 pim neighbor
Total number of PIM neighbors:2
Neighbor Address Interface Uptime/Expires DR
Pri/Mode
fe80::eac5:7aff:fea8:7cb9 eth1 01:29:52/00:01:18 1 /
fe80::eac5:7aff:feb1:6b13 eth2 01:29:49/00:01:28 1 /
Validation on IP Multicast Routing Table
Note: The multicast routing table displays for an S,G entries.
The show ip pim mroute command displays the IP multicast routing table. In this table, the following fields are defined:
LHR#show ip pim mroute
IP Multicast Routing Table
(*,*,RP) Entries: 0
G/prefix Entries: 0
(*,G) Entries: 0
(S,G) Entries: 1
(S,G,rpt) Entries: 1
FCR Entries: 0
(101.1.1.2, 239.1.1.1)
RPF nbr: 10.1.1.2
RPF idx: xe14
SPT bit: 1
Upstream State: JOINED
Local ..i.............................
Joined ................................
Asserted ................................
Outgoing ..o.............................
(101.1.1.2, 239.1.1.1, rpt)
RP: 0.0.0.0
RPF nbr: 0.0.0.0
RPF idx: None
Upstream State: RPT NOT JOINED
Local ................................
Pruned ................................
Outgoing ................................
LHR#sh ipv6 pim mroute
IPv6 Multicast Routing Table
(*,*,RP) Entries: 0
G/prefix Entries: 0
(*,G) Entries: 0
(S,G) Entries: 1
(S,G,rpt) Entries: 1
FCR Entries: 0
(5001::2, ff06::2)
RPF nbr: fe80::36ef:b6ff:fe94:3ddd
RPF idx: xe14
SPT bit: 0
Upstream State: JOINED
Local ..i.............................
Joined ................................
Asserted ................................
Outgoing ..o.............................
(5001::2, ff06::2, rpt)
RP: ::
RPF nbr: ::
RPF idx: None
Upstream State: RPT NOT JOINED
Local ................................
Pruned ................................
Outgoing ................................
The ip igmp group detail and ipv6 mld group detail shows the source included (SSM)
LHR#show ip igmp groups
IGMP Instance wide G-Recs Count is: 1
IGMP Connected Group Membership
Group Address Interface Uptime Expires State Last Reporte
r
239.1.1.1 xe26 00:00:26 stopped Active 100.1.1.2
LHR#show ip igmp groups detail
IGMP Instance wide G-Recs Count is: 1
IGMP Connected Group Membership Details
Flags: (M - SSM Mapping, R - Remote, L - Local,
SG - Static Group, SS - Static Source)
Interface: xe26
Group: 239.1.1.1
Flags: R
Uptime: 00:00:28
Group mode: Include ()
State: Active
Last reporter: 100.1.1.2
Group source list: (R - Remote, M - SSM Mapping, S - Static, L - Local)
Include Source List :
Source Address Uptime v3 Exp Fwd Flags
101.1.1.2 00:00:28 00:03:56 Yes R
LHR#show ipv6 mld groups
MLD Connected Group Membership
Group Address Interface Uptime Expires S
tate Last Reporter
ff06::2 xe26 00:00:31 stopped A
ctive fe80::1
LHR#show ipv6 mld groups detail
MLD Connected Group Membership Details
Flags: (M - SSM Mapping, R - Remote,
SG - Static Group, SS - Static Source)
Interface: xe26
Group: ff06::2
Flags: R
Uptime: 00:00:32
Group mode: Include ()
State: Active
Last reporter: fe80::1
Group source list: (R - Remote, M - SSM Mapping, S - Static )
Include Source List :
Source Address Uptime v2 Exp Fwd Flags
5001::2 00:00:32 00:03:49 Yes R