PIM Source-Specific Multicast Configuration
PIM source-specific multicast (SSM) uses a subset of PIM sparse mode and IGMP version 3 (IGMPv3) for ipv4 and MLDv2 for ipv6 to allow a client to receive multicast traffic directly from the source. PIM SSM uses the PIM sparse-mode functionality to create an SPT between the receiver and the source, but builds the SPT without the help of an RP.
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.
This section provides the steps to configure the PIM-SSM feature. Configuration steps and examples are used for two relevant scenarios.
Topology
The following figure displays the network topology used in these examples.
PIM-SSM Configuration Topology
Enable IP Multicast Routing on all Routers
#configure terminal | Enter configure mode. |
(config)#ip multicast-routing | Enable IP multicast routing. |
(config)#ipv6 multicast-routing | Enable IPv6 multicast routing. |
(config)#commit | Commit the transaction. |
Enable PIM SSM Default on all Routers
(#configure terminal | Enter configure mode. |
(config)# ip pim ssm default | Enable IP pim ssm. |
(config)# ipv6 pim ssm default | Enable IPv6 pim ssm. |
(config)#commit | Commit the transaction. |
Enable PIM-SSM configuration on Router A
In the following sample configuration, both eth1 and eth2 are enabled for PIM-SSM on the router.
#configure terminal | Enter configure mode. |
(config)#interface eth1 | Specify the interface (eth1) to be configured and Enter interface mode. |
(config-if)#ip address 10.1.1.1/24 | Configure the IP address for eth1. |
(config-if)#ipv6 address 001::1/64 | Configure the IPv6 address for eth1. |
(config-if)#ip pim sparse-mode | Enable PIM sparse mode on the interface. |
(config-if)#ipv6 pim sparse-mode | Enable ipv6 PIM sparse mode on the interface. |
(config-if)#ip igmp version 3 | Enable igmp version3 |
(config-if)#ipv6 mld version 2 | Enable mld version2 |
(config-if)#exit | Exit interface mode. |
(config)#interface eth2 | Specify the interface (eth2) to be configured and Enter interface mode. |
(config-if)#ip address 100.1.1.1/24 | Configure the IP address for eth2. |
(config-if)#ipv6 address 2001::1/24 | Configure the IPv6 address for eth2. |
(config-if)#ip pim sparse-mode | Enable PIM sparse mode on the interface. |
(config-if)#ipv6 pim sparse-mode | Enable ipv6 PIM sparse mode on the interface. |
(config-if)#ip igmp version 3 | Enable igmp version3. |
(config-if)#ipv6 mld version 2 | Enable mld version2. |
(config-if)#commit | Commit the transaction. |
Enable PIM-SSM configuration on Router B
In the following sample configuration, both eth1 and eth2 are enabled for PIM-SSM on the router.
#configure terminal | Enter configure mode. |
(config)#interface eth2 | Specify the interface (eth2) to be configured and enter interface mode. |
(config-if)#ip address 10.1.1.2/24 | Configure the IP address for eth2. |
(config-if)#ipv6 address 3001::2/64 | Configure the IPv6 address for eth2. |
(config-if)#ip pim sparse-mode | Enable PIM sparse mode on the interface. |
(config-if)#ipv6 pim sparse-mode | Enable ipv6 PIM sparse mode on the interface. |
(config-if)#ip igmp version 3 | Enable igmp version3 |
(config-if)#ipv6 mld version 2 | Enable mld version2 |
(config-if)#exit | Exit interface mode. |
(config)#interface eth1 | Specify the interface (eth1) to be configured and enter interface mode. |
(config-if)#ip address 11.1.1.1/24 | Configure the IP address for eth1. |
(config-if)#ipv6 address 4001::1/24 | Configure the IPv6 address for eth1. |
(config-if)#ip pim sparse-mode | Enable PIM sparse mode on the interface. |
(config-if)#ipv6 pim sparse-mode | Enable ipv6 PIM sparse mode on the interface. |
(config-if)#ip igmp version 3 | Enable igmp version3. |
(config-if)#ipv6 mld version 2 | Enable mld version2. |
(config-if)#commit | Commit the transaction. |
Enable PIM-SSM configuration on Router C
In the following sample configuration, both eth1 and eth2 are enabled for PIM-SSM on the router.
#configure terminal | Enter configure mode. |
(config)#interface eth2 | Specify the interface (eth2) to be configured and enter interface mode. |
(config-if)#ip address 11.1.1.2/24 | Configure the IP address for eth2. |
(config-if)#ipv6 address 4001::2/64 | Configure the IPv6 address for eth2. |
(config-if)#ip pim sparse-mode | Enable PIM sparse mode on the interface. |
(config-if)#ipv6 pim sparse-mode | Enable ipv6 PIM sparse mode on the interface. |
(config-if)#ip igmp version 3 | Enable igmp version3 |
(config-if)#ipv6 mld version 2 | Enable mld version2 |
(config-if)#exit | Exit interface mode. |
(config)#interface eth1 | Specify the interface (eth1) to be configured and enter interface mode. |
(config-if)#ip address 101.1.1.1/24 | Configure the IP address for eth1. |
(config-if)#ipv6 address 5001::1/24 | Configure the IPv6 address for eth1. |
(config-if)#ip pim sparse-mode | Enable PIM sparse mode on the interface. |
(config-if)#ipv6 pim sparse-mode | Enable ipv6 PIM sparse mode on the interface. |
(config-if)#ip igmp version 3 | Enable igmp version3. |
(config-if)#ipv6 mld version 2 | Enable mld version2. |
(config-if)#commit | Commit the transaction. |
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#sh 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#sh 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#sh 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#sh 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#sh 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