Contents

Introduction

Topology

Control-Plane

Source Registration (Steps 1-3)

Receiver Joins Group (Steps 4 - 11)

R4 PIM RP Prunes off (S,G) Step 12

Summary

Related Information

Introduction

This document describes the operation of Protocol Independent Multicast (PIM) and Multicast Source Discovery Protocol (MSDP) with the use of a simple multicast topology. This is useful in order to understand the control-plane operation and sequence of events from when a source is registered to when the receiver starts to receive multicast packets.

Note: Devices used in this document run Cisco IOS® version 15.3M in a lab environment.

Topology

Autonomous System AS65000 on the left contains the multicast source. R1 acts as First Hop Router (FHR) and will register the source (10.1.1.1) with the PIM Rendezvous Point (PIM RP) R3. R7 and R3 are iBGP neighbors, and R3-R4 and R7-R6 are eBGP neighbors. R7 and R6 are configured to be the preferred path between the two autonomous systems. In AS64999, R5 has a locally attached receiver. R5 is configured to use R4 as PIM RP.

Control-Plane

The video demonstrates what messages are sent and when. View this video and the read on for detailed descriptions at each step.

Source Registration (Steps 1-3)

The source starts sending multicast data to 239.1.1.1. Upon receiving this data, R1 (who is the PIM Designated Router (DR) for the segment) will take the multicast packet, and build a PIM register message.

The register message is a unicast PIM Packet that is sent from R1 to R3 in order to inform the PIM RP of the source.

R1#

*May 21 14:54:08.461: PIM(0): Check RP 10.10.10.10 into the (*, 239.1.1.1) entry

*May 21 14:54:08.461: PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune message

for 239.1.1.1

*May 21 14:54:08.461: PIM(0): Adding register encap tunnel (Tunnel0) as forwarding

interface of (10.1.1.1, 239.1.1.1).

Now, the PIM RP, R3 receives the register message and responds with register-stop. R3 also sends an MSDP SA message to R4 via MSDP.  The "A" Flag on the mroute means it’s a candidate for MSDP Advertisement. The "P" flag indicate that its pruned because you have no receiver or outgoing interface for the group.

R3#

*May 21 14:54:08.459: PIM(0): Received v2 Register on Ethernet1/0 from 10.0.12.1

*May 21 14:54:08.459:      for 10.1.1.1, group 239.1.1.1

*May 21 14:54:08.459: PIM(0): Check RP 10.10.10.10 into the (*, 239.1.1.1) entry

*May 21 14:54:08.459: PIM(0): Adding register decap tunnel (Tunnel1) as accepting

interface of (*, 239.1.1.1).

*May 21 14:54:08.459: PIM(0): Adding register decap tunnel (Tunnel1) as accepting

interface of (10.1.1.1, 239.1.1.1).

*May 21 14:54:08.459: PIM(0): Send v2 Register-Stop to 10.0.12.1 for 10.1.1.1,

group 239.1.1.1

R3#show ip mroute 239.1.1.1

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,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector

Outgoing interface flags: H - Hardware switched, A - Assert winner

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:00:33/stopped, RP 10.10.10.10, flags: SP

Incoming interface: Null, RPF nbr 0.0.0.0

Outgoing interface list: Null

(10.1.1.1, 239.1.1.1), 00:00:33/00:02:26, flags: PA

Incoming interface: Ethernet1/0, RPF nbr 10.0.37.7

Outgoing interface list: Null

R3#show ip msdp sa-cache

MSDP Source-Active Cache - 0 entries

R3#

*May 21 14:54:58.511: MSDP(0): (10.1.1.1/32, 239.1.1.1)

Here, R1 receives the register-stop from R3.

*May 21 14:54:08.461: PIM(0): Received v2 Register-Stop on Ethernet0/0 from 10.10.10.10

*May 21 14:54:08.461: PIM(0):   for source 10.1.1.1, group 239.1.1.1

*May 21 14:54:08.461: PIM(0): Removing register encap tunnel (Tunnel0) as forwarding

interface of (10.1.1.1, 239.1.1.1).

*May 21 14:54:08.461: PIM(0): Clear Registering flag to 10.10.10.10 for

(10.1.1.1/32, 239.1.1.1)

On R4, you can see there is no mroute state, but you do have an MSDP SA.

R4#show ip mroute

*May 21 14:54:58.591: MSDP(0): (10.1.1.1/32, 239.1.1.1), accepted

R4#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,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector

Outgoing interface flags: H - Hardware switched, A - Assert winner

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.0.1.40), 00:35:32/00:02:31, RP 10.20.20.20, flags: SJCL

Incoming interface: Null, RPF nbr 0.0.0.0

Outgoing interface list:

Ethernet1/0, Forward/Sparse, 00:23:16/00:02:36

Loopback0, Forward/Sparse, 00:35:31/00:02:31

R4#show ip msdp sa-cache

MSDP Source-Active Cache - 1 entries

(10.1.1.1, 239.1.1.1), RP 10.10.10.10, BGP/AS 65000, 00:01:00/00:05:49, Peer 10.33.33.33

Receiver Joins Group (Steps 4 - 11)

R5 receives an IGMP join on its interface and builds a PIM join packet (*,G join). The join is sent to R6.

R5#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R5(config)#int e0/1

R5(config-if)#ip igmp join-group 239.1.1.1

R5(config-if)#

*May 21 14:56:43.234: PIM(0): Check RP 10.20.20.20 into the (*, 239.1.1.1) entry

*May 21 14:56:43.234: PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune message

for 239.1.1.1

*May 21 14:56:43.234: PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune message

for 239.1.1.1

*May 21 14:56:43.234: PIM(0): Insert (*,239.1.1.1) join in nbr 10.0.56.6's queue

*May 21 14:56:43.246: PIM(0): Building Join/Prune packet for nbr 10.0.56.6

*May 21 14:56:43.246: PIM(0):  Adding v2 (10.20.20.20/32, 239.1.1.1), WC-bit, RPT-bit,

S-bit Join

*May 21 14:56:43.246: PIM(0): Send v2 join/prune to 10.0.56.6 (Ethernet0/0)

R6 receives the (*,G) PIM join from R5, and sends (*,G) join to R4 PIM RP.

R6#

*May 21 14:56:43.248: PIM(0): Received v2 Join/Prune on Ethernet2/0 from 10.0.56.5,

to us

*May 21 14:56:43.248: PIM(0): Join-list: (*, 239.1.1.1), RPT-bit set, WC-bit set,

S-bit set

*May 21 14:56:43.248: PIM(0): Check RP 10.20.20.20 into the (*, 239.1.1.1) entry

*May 21 14:56:43.248: PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune

message for 239.1.1.1

*May 21 14:56:43.248: PIM(0): Add Ethernet2/0/10.0.56.5 to (*, 239.1.1.1), Forward

state, by PIM *G Join

*May 21 14:56:43.248: PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune

message for 239.1.1.1

*May 21 14:56:43.248: PIM(0): Insert (*,239.1.1.1) join in nbr 10.0.46.4's queue

*May 21 14:56:43.248: PIM(0): Building Join/Prune packet for nbr 10.0.46.4

*May 21 14:56:43.248: PIM(0):  Adding v2 (10.20.20.20/32, 239.1.1.1), WC-bit,

RPT-bit, S-bit Join

*May 21 14:56:43.248: PIM(0): Send v2 join/prune to 10.0.46.4 (Ethernet1/0)

R4 PIM RP receives the (*,G) join from R6. It then sends a (S,G) join toward the source 10.1.1.1, which goes back to R6.

R4#

*May 21 14:56:43.331: PIM(0): Received v2 Join/Prune on Ethernet1/0 from 10.0.46.6,

to us

*May 21 14:56:43.331: PIM(0): Join-list: (*, 239.1.1.1), RPT-bit set, WC-bit set,

S-bit set

*May 21 14:56:43.331: PIM(0): Check RP 10.20.20.20 into the (*, 239.1.1.1) entry

*May 21 14:56:43.331: PIM(0): Adding register decap tunnel (Tunnel1) as accepting

interface of (*, 239.1.1.1).

*May 21 14:56:43.331: PIM(0): Add Ethernet1/0/10.0.46.6 to (*, 239.1.1.1), Forward

state, by PIM *G Join

*May 21 14:56:43.331: PIM(0): Adding register decap tunnel (Tunnel1) as accepting

interface of (10.1.1.1, 239.1.1.1).

*May 21 14:56:43.331: PIM(0): Insert (10.1.1.1,239.1.1.1) join in nbr 10.0.46.6's queue

R4#

*May 21 14:56:43.331: PIM(0): Building Join/Prune packet for nbr 10.0.46.6

*May 21 14:56:43.331: PIM(0):  Adding v2 (10.1.1.1/32, 239.1.1.1), S-bit Join

*May 21 14:56:43.331: PIM(0): Send v2 join/prune to 10.0.46.6 (Ethernet1/0)

R6 receives the (S,G) join from R4, and then sends an (S,G) join toward R7 in AS65000.  When the (S,G) join is received from R4, R6 sends an (SGR) prune to R4 (STEP 9). This is done to avoid duplicate packets at R4.

*May 21 14:56:43.248: PIM(0): Received v2 Join/Prune on Ethernet1/0 from 10.0.46.4,

to us

*May 21 14:56:43.248: PIM(0): Join-list: (10.1.1.1/32, 239.1.1.1), S-bit set

*May 21 14:56:43.248: PIM(0): Add Ethernet1/0/10.0.46.4 to (10.1.1.1, 239.1.1.1),

Forward state, by PIM SG Join

*May 21 14:56:43.248: PIM(0): Insert (10.1.1.1,239.1.1.1) join in nbr 10.0.67.7's queue

R6#

*May 21 14:56:43.248: PIM(0): Building Join/Prune packet for nbr 10.0.67.7

*May 21 14:56:43.248: PIM(0):  Adding v2 (10.1.1.1/32, 239.1.1.1), S-bit Join

*May 21 14:56:43.248: PIM(0): Send v2 join/prune to 10.0.67.7 (Ethernet0/0)

R6#

*May 21 14:56:44.476: PIM(0): Insert (10.1.1.1,239.1.1.1) sgr prune in nbr 10.0.46.4's

queue

*May 21 14:56:44.476: PIM(0): Building Join/Prune packet for nbr 10.0.46.4

*May 21 14:56:44.476: PIM(0):  Adding v2 (10.1.1.1/32, 239.1.1.1), RPT-bit, S-bit Prune

*May 21 14:56:44.476: PIM(0): Send v2 join/prune to 10.0.46.4 (Ethernet1/0)

R7 receives the (S,G) join from R6, and then sends (S,G) join to R2 following the route to the source.

R7#

*May 21 14:56:43.241: PIM(0): Received v2 Join/Prune on Ethernet0/0 from 10.0.67.6,

to us

*May 21 14:56:43.241: PIM(0): Join-list: (10.1.1.1/32, 239.1.1.1), S-bit set

*May 21 14:56:43.241: PIM(0): Check RP 10.10.10.10 into the (*, 239.1.1.1) entry

*May 21 14:56:43.241: PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune message

for 239.1.1.1

*May 21 14:56:43.241: PIM(0): Add Ethernet0/0/10.0.67.6 to (10.1.1.1, 239.1.1.1),

Forward state, by PIM SG Join

*May 21 14:56:43.241: PIM(0): Insert (10.1.1.1,239.1.1.1) join in nbr 10.0.27.2's queue

*May 21 14:56:43.241: PIM(0): Building Join/Prune packet for nbr 10.0.27.2

R7#

*May 21 14:56:43.241: PIM(0):  Adding v2 (10.1.1.1/32, 239.1.1.1), S-bit Join

*May 21 14:56:43.241: PIM(0): Send v2 join/prune to 10.0.27.2 (Ethernet2/0)

R7#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,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector

Outgoing interface flags: H - Hardware switched, A - Assert winner

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:03:33/stopped, RP 10.10.10.10, flags: SP

Incoming interface: Ethernet1/0, RPF nbr 10.0.37.3

Outgoing interface list: Null

(10.1.1.1, 239.1.1.1), 00:03:33/00:02:56, flags: T

Incoming interface: Ethernet2/0, RPF nbr 10.0.27.2

Outgoing interface list:

Ethernet0/0, Forward/Sparse, 00:03:33/00:02:53

R2 Receives the (S,G) join from R7, and then sends (S,G) join to R1 following the route to the source

R2#

*May 21 14:56:43.253: PIM(0): Received v2 Join/Prune on Ethernet1/0 from 10.0.27.7,

to us

*May 21 14:56:43.253: PIM(0): Join-list: (10.1.1.1/32, 239.1.1.1), S-bit set

*May 21 14:56:43.253: PIM(0): Check RP 10.10.10.10 into the (*, 239.1.1.1) entry

*May 21 14:56:43.253: PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune

message for 239.1.1.1

*May 21 14:56:43.253: PIM(0): Add Ethernet1/0/10.0.27.7 to (10.1.1.1, 239.1.1.1),

Forward state, by PIM SG Join

*May 21 14:56:43.253: PIM(0): Insert (10.1.1.1,239.1.1.1) join in nbr 10.0.12.1's queue

*May 21 14:56:43.253: PIM(0): Building Join/Prune packet for nbr 10.0.12.1

R2#

*May 21 14:56:43.253: PIM(0):  Adding v2 (10.1.1.1/32, 239.1.1.1), S-bit Join

*May 21 14:56:43.253: PIM(0): Send v2 join/prune to 10.0.12.1 (Ethernet0/0)

R2#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,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector

Outgoing interface flags: H - Hardware switched, A - Assert winner

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:01:27/stopped, RP 10.10.10.10, flags: SP

Incoming interface: Ethernet1/0, RPF nbr 10.0.27.7

Outgoing interface list: Null

(10.1.1.1, 239.1.1.1), 00:01:27/00:01:32, flags: T

Incoming interface: Ethernet0/0, RPF nbr 10.0.12.1

Outgoing interface list:

Ethernet1/0, Forward/Sparse, 00:01:27/00:03:01

R1 receives the (S,G) join from R2 and adds the interface to the outgoing interface list

*May 21 14:56:43.261: PIM(0): Received v2 Join/Prune on Ethernet0/0 from 10.0.12.2,

to us

*May 21 14:56:43.261: PIM(0): Join-list: (10.1.1.1/32, 239.1.1.1), S-bit set

*May 21 14:56:43.261: PIM(0): Add Ethernet0/0/10.0.12.2 to (10.1.1.1, 239.1.1.1),

Forward state, by PIM SG Join

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,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector

Outgoing interface flags: H - Hardware switched, A - Assert winner

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:03:25/stopped, RP 10.10.10.10, flags: SPF

Incoming interface: Ethernet0/0, RPF nbr 10.0.12.2

Outgoing interface list: Null

(10.1.1.1, 239.1.1.1), 00:03:25/00:03:24, flags: FT

Incoming interface: Ethernet0/1, RPF nbr 0.0.0.0

Outgoing interface list:

Ethernet0/0, Forward/Sparse, 00:00:50/00:02:39

At this point, Data flows from the source all the way to the receiver. Upon receiving a data packet, R5 will switch from the (*,G) tree to the (S,G) tree.

R5#

*May 21 14:56:44.494: PIM(0): Insert (10.1.1.1,239.1.1.1) join in nbr 10.0.56.6's queue

*May 21 14:56:44.498: PIM(0): Building Join/Prune packet for nbr 10.0.56.6

*May 21 14:56:44.498: PIM(0):  Adding v2 (10.1.1.1/32, 239.1.1.1), S-bit Join

*May 21 14:56:44.498: PIM(0): Send v2 join/prune to 10.0.56.6 (Ethernet0/0)

R5#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,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector

Outgoing interface flags: H - Hardware switched, A - Assert winner

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:02:47/stopped, RP 10.20.20.20, flags: SJCL

Incoming interface: Ethernet0/0, RPF nbr 10.0.56.6

Outgoing interface list:

Ethernet0/1, Forward/Sparse, 00:02:47/00:02:14

(10.1.1.1, 239.1.1.1), 00:02:45/00:00:14, flags: LJT

Incoming interface: Ethernet0/0, RPF nbr 10.0.56.6

Outgoing interface list:

Ethernet0/1, Forward/Sparse, 00:02:45/00:02:14

R6 receives the (S,G) Join from R5, and forward the data packets out of E2/0 to R5.

R6#

*May 21 14:56:44.496: PIM(0): Received v2 Join/Prune on Ethernet2/0 from 10.0.56.5,

to us

*May 21 14:56:44.496: PIM(0): Join-list: (10.1.1.1/32, 239.1.1.1), S-bit set

*May 21 14:56:44.496: PIM(0): Update Ethernet2/0/10.0.56.5 to (10.1.1.1, 239.1.1.1),

Forward state, by PIM SG Join

*May 21 14:56:49.056: PIM(0): Received v2 Join/Prune on Ethernet1/0 from 10.0.46.4,

to us

*May 21 14:56:49.056: PIM(0): Prune-list: (10.1.1.1/32, 239.1.1.1)

*May 21 14:56:49.056: PIM(0): Prune Ethernet1/0/239.1.1.1 from (10.1.1.1/32, 239.1.1.1)

- deleted

R6#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,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector

Outgoing interface flags: H - Hardware switched, A - Assert winner

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:03:43/00:02:42, RP 10.20.20.20, flags: S

Incoming interface: Ethernet1/0, RPF nbr 10.0.46.4

Outgoing interface list:

Ethernet2/0, Forward/Sparse, 00:03:43/00:02:42

(10.1.1.1, 239.1.1.1), 00:03:43/00:02:46, flags: T

Incoming interface: Ethernet0/0, RPF nbr 10.0.67.7

Outgoing interface list:

Ethernet2/0, Forward/Sparse, 00:03:43/00:02:44

R4 PIM RP Prunes off (S,G) Step 12

Finally, R4 PIM RP sends a (S,G) prune to R6.  Notice the "M" Flag is present on the mroute (MSDP Created entry).

R4#

*May 21 14:56:44.559: PIM(0): Received v2 Join/Prune on Ethernet1/0 from 10.0.46.6,

to us

*May 21 14:56:44.559: PIM(0): Prune-list: (10.1.1.1/32, 239.1.1.1) RPT-bit set

*May 21 14:56:44.579: PIM(0): Removing register decap tunnel (Tunnel1) as accepting

interface of (10.1.1.1, 239.1.1.1).

*May 21 14:56:44.579: PIM(0): Installing Ethernet1/0 as accepting interface for

(10.1.1.1, 239.1.1.1).

*May 21 14:56:46.107: MSDP(0): (10.1.1.1/32, 239.1.1.1), accepted

*May 21 14:56:49.139: PIM(0): Insert (10.1.1.1,239.1.1.1) prune in nbr 10.0.46.6's queue

*May 21 14:56:49.139: PIM(0): Building Join/Prune packet for nbr 10.0.46.6

*May 21 14:56:49.139: PIM(0):  Adding v2 (10.1.1.1/32, 239.1.1.1), S-bit Prune

*May 21 14:56:49.139: PIM(0): Send v2 join/prune to 10.0.46.6 (Ethernet1/0)

R4#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,

Q - Received BGP S-A Route, q - Sent BGP S-A Route,

V - RD & Vector, v - Vector

Outgoing interface flags: H - Hardware switched, A - Assert winner

Timers: Uptime/Expires

Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 239.1.1.1), 00:02:15/00:03:12, RP 10.20.20.20, flags: S

Incoming interface: Null, RPF nbr 0.0.0.0

Outgoing interface list:

Ethernet1/0, Forward/Sparse, 00:02:15/00:03:12

(10.1.1.1, 239.1.1.1), 00:02:15/00:02:46, flags: PMT

Incoming interface: Ethernet1/0, RPF nbr 10.0.46.6

Outgoing interface list: Null

Here, the Outgoing Interface (OIF) E1/0 to R4 is removed from R6.

R6#

*May 21 14:56:49.056: PIM(0): Received v2 Join/Prune on Ethernet1/0 from 10.0.46.4,to us

*May 21 14:56:49.056: PIM(0): Prune-list: (10.1.1.1/32, 239.1.1.1)

*May 21 14:56:49.056: PIM(0): Prune Ethernet1/0/239.1.1.1 from (10.1.1.1/32, 239.1.1.1)

- deleted

R6#

Summary

MSDP provides a method for interconnecting different PIM Domains which each use their own RP.  It is also commonly used to implement "Anycast RP" which was not covered in this document. MSDP and PIM work together to allow a receiver in one domain to receive traffic from a source in another domain. MSDP SA messages allow the other RP's to learn about sources in another PIM domain, while PIM is used to build the multicast tree.

For more detail on the protocol operations, refer to the RFC's mentioned in the related information.

Related Information

- PIM RFC

https://tools.ietf.org/html/rfc4601

- MSDP RFC

https://tools.ietf.org/html/rfc3618