PIM-SSM Static Mapping
Load multicast.init.cfg
#IOS-XE
config replace flash:multicast.init.cfg
#IOS-XR
configure
load bootflash:multicast.init.cfg
commit replace
y
Configure R2 and R4 to join (*, 239.1.1.1). These hosts are only IGMPv2-capable.
Use SSM mapping on the LHRs to translate these to (7.1.7.1, 239.1.1.1) Joins.
The multicast network is already fully setup using PIM-SSM. You must change the SSM range to use 239.1.1.1/32 for this task.
Answer
#R5-R10
ip pim ssm range SSM
ip access-list standard SSM
10 permit 239.1.1.1
!
ipv6 access-list SSM_V6
permit ipv6 host ff08::1 any
#XRv1-XRv4
ipv4 access-list SSM
10 permit ipv4 host 239.1.1.1 any
!
ipv6 access-list SSM_V6
10 permit ipv6 host ff08::1 any
!
router pim
address-family ipv4
ssm range SSM
address-family ipv6
ssm range SSM_V6
#R5
ip igmp ssm-map enable
!
ip access-l standard CH1
permit 239.1.1.1
!
ip igmp ssm-map static CH1 7.1.7.1
#XRv3
ipv4 access-list CH1
permit host 239.1.1.1
!
router igmp
ssm map static 7.1.7.1 CH1
#R2
! If you want the router to respond to ICMP for testing, we must enable PIM
ip multicast-routing distributed
ipv6 multicast-routing
!
! Additionally, an RP address must be configured so that the "host" has a valid RPF
! interface for the received multicast traffic.
ip pim rp-address 9.2.5.5
!
int gi2.525
ip pim sparse-mode
ip igmp join-group 239.1.1.1
#R4
! If you want the router to respond to ICMP for testing, we must enable PIM
ip multicast-routing distributed
ipv6 multicast-routing
!
! Additionally, an RP address must be configured so that the "host" has a valid RPF
! interface for the received multicast traffic.
ip pim rp-address 11.4.13.13
!
int GigabitEthernet2.543
ip pim sparse-mode
ip igmp join-group 239.1.1.1
Explanation
This lab consists of two tasks: changing the SSM range, and using static SSM mapping.
First, to change the SSM range, we must reference an ACL that consists of the group ranges we want to treat as SSM. This must be statically configured on all routers in the network. Note that if you want to include 232/8 as part of this, you must also specify it as an entry in the ACL. In our case, we only care about treating 239.1.1.1/32 as SSM.
#IOS-XE
ip pim ssm range SSM
!
ip access-list standard SSM
10 permit 239.1.1.1
#IOS-XR
ipv4 access-list SSM
10 permit ipv4 host 239.1.1.1 any
!
router pim
address-family ipv4
ssm range SSM
We can confirm the SSM range on IOS-XR using the following command:

Next, we configure SSM mapping. This is a feature that allows us to match a IGMPv2/MLDv1 (*, G) Join from a host and translate it into a (S, G) IGMPv3/MLDv2 Join. To do so, we enable IGMPv3/MLDv2 on the LHR interface as usual, but we also configure separate static mapping entries, mapping the (*, G) to the (S, G).
#R5
ip igmp ssm-map enable
!
ip access-l standard CH1
permit 239.1.1.1
!
ip igmp ssm-map static CH1 7.1.7.1
#XRv3
ipv4 access-list CH1
permit host 239.1.1.1
!
router igmp
ssm map static 7.1.7.1 CH1
We can confirm the SSM mapping configuration using the following command:


We can confirm that the LHRs have successfully translated these into IGMPv3 (S, G) Joins:


To “trick” R2 and R4 into replying to the ICMP Echo Request, we must make their (*, G) entry have a valid RPF interface. This can be done by manually specifying the RP address.
#R2
ip pim rp-address 9.2.5.5
#R4
ip pim rp-address 11.4.13.13
The (S, G) tree is built as we saw in the last lab. Both R2 and R4 respond to the multicast ping.

Mapping to multiple sources
You can map a (*, G) to multiple (S, G) entries by specifying multiple sources for a given ACL:
#R5
ip igmp ssm-map static CH1 7.1.7.1
ip igmp ssm-map static CH1 8.3.8.3

A note on IPv6 SSM Mapping
Both IOS-XE and IOS-XR support SSM mapping using the same commands, except prefaced with ipv6 mld on IOS-XE and under router mld on IOS-XR:
#IOS-XE
ipv6 mld ssm-map enable
ipv6 mld ssm-map static <IPv6-ACL> <source addr>
#IOS-XR
router mld
ssm map static <source addr> <IPv6-ACL>
However, to successfully test this, we would need the hosts to send a (*, G) MLD Report for a SSM-mapped prefix. IOS-XE does not let us change the IPv6 SSM mapping range, so there is no way to accomplish this.
R2(config)#int gi2.525
R2(config-subif)# ipv6 mld join-group FF38::1
%Exclude mode join on GigabitEthernet2.525 ignored for SSM group FF38::1
IOS-XR does allow us to change the SSM range:
#IOS-XR
router pim
add ipv6
ssm range <IPv6-ACL>
This allows us to use XRv3 as a client for testing.
#XRv3
ipv6 access-list SSM_V6
10 permit ipv6 host ff08::1 any
!
router pim
address-family ipv6
ssm range SSM_V6
We can confirm the SSM range has been changed on XRv3:

We’ll now send a (*, G) Join from XRv3 for a SSM-default range group:
#XRv3
router mld
interface GigabitEthernet0/0/0/0.593
join-group ff38::1
R9 ignores this because it is an ASM Join for a group in the SSM range.

We’ll now do SSM static mapping on R9:
#R9
ipv6 mld ssm-map enable
ipv6 mld ssm-map static SSM_V6_MAP 2007:7:1:7::1
ipv6 access-list SSM_V6_MAP
sequence 10 permit ipv6 any host FF38::1
!
! We also disable DNS query for SSM mapping
!
no ipv6 mld ssm-map query dns
R9 now has a static MLDv2 mapping:

R9 converts the (*, G) MLD report to a (S, G):


DNS Resolution for Mapping
Using static mapping is not a very scalable solution. Instead, it is preferred to use DNS for mapping. The router uses its locally defined DNS resolvers to resolve mcast-group.in-addr.arpa. The DNS server returns the source IP address as the DNS response. Optionally, you can configure a different domain using the following command. Note that DNS lookups for SSM mapping is on by default.
#IOS-XE
ip domain multicast ssm-map.mydomain.com
Last updated