Source Specific Multicast (SSM) Configuration
R1 Configuration:
interface GigabitEthernet0/0
ip address 172.16.2.1 255.255.255.252
ip pim sparse-mode
ip ospf 10 area 0
!
interface GigabitEthernet0/1
ip address 172.16.4.1 255.255.255.252
ip pim sparse-mode
ip ospf 10 area 0
interface GigabitEthernet0/2
ip address 192.168.50.1 255.255.255.0
ip pim sparse-mode
ip igmp join-group 232.3.3.3 source 10.10.2.2
ip igmp version 3
router ospf 10
network 192.168.50.0 0.0.0.255 area 0
!
ip multicast-routing
ip pim ssm default
Code language: JavaScript (javascript)
R2:
interface GigabitEthernet0/0
ip address 172.16.2.2 255.255.255.252
ip pim sparse-mode
ip ospf 10 area 0
!
interface GigabitEthernet0/1
ip address 172.16.3.1 255.255.255.252
ip pim sparse-mode
ip ospf 10 area 0
!
router ospf 10
!
ip multicast-routing
ip pim ssm default
Code language: JavaScript (javascript)
R3:
interface GigabitEthernet0/0
ip address 172.16.4.2 255.255.255.252
ip pim sparse-mode
ip ospf 10 area 0
!
interface GigabitEthernet0/1
ip address 172.16.5.1 255.255.255.252
ip pim sparse-mode
ip ospf 10 area 0
router ospf 10
ip pim ssm default
ip multicast-routing
Code language: JavaScript (javascript)
R4:
ip multicast-routing
ip pim ssm default
interface GigabitEthernet0/0
ip address 172.16.3.2 255.255.255.252
ip pim sparse-mode
ip ospf 10 area 0
!
interface GigabitEthernet0/1
ip address 172.16.5.2 255.255.255.252
ip pim sparse-mode
ip ospf 10 area 0
!
interface GigabitEthernet0/2
ip address 10.10.2.1 255.255.255.0
ip pim sparse-mode
router ospf 10
network 10.10.2.0 0.0.0.255 area 0
Code language: PHP (php)
From unicast perspective, R1 have ECMP to the source (via R2 and R3):
R1#show ip route 10.10.2.2
Routing entry for 10.10.2.0/24
Known via "ospf 10", distance 110, metric 3, type intra area
Last update from 172.16.2.2 on GigabitEthernet0/0, 08:04:16 ago
Routing Descriptor Blocks:
* 172.16.4.2, from 172.16.3.2, 08:04:16 ago, via GigabitEthernet0/1
Route metric is 3, traffic share count is 1
172.16.2.2, from 172.16.3.2, 08:04:16 ago, via GigabitEthernet0/0
Route metric is 3, traffic share count is 1
Code language: PHP (php)
When checking the mroute state on the routers, we can see the (S,G) installed (10.10.2.2, 232.3.3.3):
R1#show ip igmp groups
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter Group Accounted
232.3.3.3 GigabitEthernet0/2 06:30:09 stopped 192.168.50.1
R1#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group,
G - Received BGP C-Mroute, g - Sent BGP C-Mroute,
N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector, p - PIM Joins on route,
x - VxLAN group
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(10.10.2.2, 232.3.3.3), 06:29:07/00:02:52, flags: sLTI
Incoming interface: GigabitEthernet0/1, RPF nbr 172.16.4.2
Outgoing interface list:
GigabitEthernet0/2, Forward/Sparse, 06:29:07/00:02:52
But, we (S,G) not installed in R2:
R2#show ip mroute 232.3.3.3
Group 232.3.3.3 not found
Code language: CSS (css)
This is expected after checking the packet capture which was running on the p2p links, because (S,G) PIM Join was simply sent to R3 instead (but not received on R2):
Following capture on link between R1-R3:
As a result, the mroute status (10.10.2.2, 232.3.3.3) installed on R3:
R3#show ip mroute 232.3.3.3
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group,
G - Received BGP C-Mroute, g - Sent BGP C-Mroute,
N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector, p - PIM Joins on route,
x - VxLAN group
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(10.10.2.2, 232.3.3.3), 06:36:01/00:03:13, flags: sT
Incoming interface: GigabitEthernet0/1, RPF nbr 172.16.5.2
Outgoing interface list:
GigabitEthernet0/0, Forward/Sparse, 06:36:01/00:03:13
and finally PIM Join received by FHMR R4:
R4#show ip mroute 232.3.3.3
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry, E - Extranet,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group,
G - Received BGP C-Mroute, g - Sent BGP C-Mroute,
N - Received BGP Shared-Tree Prune, n - BGP C-Mroute suppressed,
Q - Received BGP S-A Route, q - Sent BGP S-A Route,
V - RD & Vector, v - Vector, p - PIM Joins on route,
x - VxLAN group
Outgoing interface flags: H - Hardware switched, A - Assert winner, p - PIM Join
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(10.10.2.2, 232.3.3.3), 06:37:25/00:02:41, flags: sT
Incoming interface: GigabitEthernet0/2, RPF nbr 0.0.0.0
Outgoing interface list:
GigabitEthernet0/1, Forward/Sparse, 06:37:25/00:02:41
Then, we started the multicast traffic from source and was received by “receiver”:
Source# ping 232.3.3.3 repeat 4
Type escape sequence to abort.
Sending 4, 100-byte ICMP Echos to 232.3.3.3, timeout is 2 seconds:
Reply to request 0 from 192.168.50.1, 4 ms
Reply to request 1 from 192.168.50.1, 2 ms
Reply to request 2 from 192.168.50.1, 4 ms
Reply to request 3 from 192.168.50.1, 3 ms
Code language: CSS (css)