Prune override

From: Bit Gossip (bit.gossip@chello.nl)
Date: Thu Mar 22 2007 - 16:01:21 ART


Hi group,
this time I want to break something that is working.....

I start from a full FR mesh between r1, r2, r3 on the physical serial
interface; PIM-SM with R2 static RP. There is a multicast source 228.28.28.28
above R2, and receivers behind r1 and r3. it is working like a charm!

At this point I remove the PVC between r1 and r2 and I want to verify that
PIM-SM is broken if I don't use 'ip pim nbma-mode' on R2.

r1 ---pvc--- R2 ---pvc--- r3

What I was expecting is that if r3 prune itself off the group, prune sent to
224.0.0.2, r1 can NOT hear the prune and so can NOT override it with a join,
loosing the mcast feed from R2.
Instead when r3 prunes itself, r1 HEARS the prune and overrides it !!!

How can r1 hear this multicast prune from r3 if there is no direct PVC between
them?
Even stranger, r3 also hears its own prune ?!?!

Attached is the debug trace.

r3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Rack1R3#show frame-relay map
Serial4/0 (up): ip 132.1.0.2 dlci 302(0x12E,0x48E0), dynamic,
              broadcast,, status defined, active
Serial4/0 (up): ip 132.1.0.4 dlci 304(0x130,0x4C00), dynamic,
              broadcast,, status defined, active

Rack1R3(config-if)#no ip igmp join-group 228.28.28.28
Rack1R3(config-if)#

Mar 22 11:12:57.795: PIM(0): Insert (150.1.2.2,228.28.28.28) prune in nbr
132.1.0.2's queue
Mar 22 11:12:57.795: PIM(0): Building Join/Prune packet for nbr 132.1.0.2
Mar 22 11:12:57.795: PIM(0): Adding v2 (150.1.2.2/32, 228.28.28.28), WC-bit,
RPT-bit, S-bit Prune
Mar 22 11:12:57.795: PIM(0): Send v2 join/prune to 132.1.0.2 (Serial4/0)
Mar 22 11:12:57.891: PIM(0): Received v2 Join/Prune on Serial4/0 from
132.1.0.3, not to us

r2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Rack1R2#
Mar 22 11:12:57.867: PIM(0): Received v2 Join/Prune on Serial4/0 from
132.1.0.3, to us
Mar 22 11:12:57.867: PIM(0): Prune-list: (*, 228.28.28.28) RP 150.1.2.2
Mar 22 11:12:57.867: PIM(0): Schedule to prune Serial4/0 for (150.1.2.2/32,
228.28.28.28)
Mar 22 11:12:57.867: PIM(0): Schedule to prune Serial4/0 for (132.1.6.6/32,
228.28.28.28)
Mar 22 11:12:57.867: PIM(0): Schedule to prune Serial4/0 for (132.1.26.6/32,
228.28.28.28)
Rack1R2#
Mar 22 11:12:59.955: PIM(0): Received v2 Join/Prune on Serial4/0 from
132.1.0.1, to us
Mar 22 11:12:59.955: PIM(0): Join-list: (*, 228.28.28.28), RPT-bit set, WC-bit
set, S-bit set
Mar 22 11:12:59.955: PIM(0): Update Serial4/0/132.1.0.1 to (*, 228.28.28.28),
Forward state, by PIM *G Join
Mar 22 11:12:59.955: PIM(0): Update Serial4/0/132.1.0.1 to (132.1.6.6,
228.28.28.28), Forward state, by PIM *G Join
Mar 22 11:12:59.955: PIM(0): Update Serial4/0/132.1.0.1 to (132.1.26.6,
228.28.28.28), Forward state, by PIM *G Join

r1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Rack1R1#
Mar 22 11:46:11.483: PIM(0): Received v2 Join/Prune on Serial0/0 from
132.1.0.3, not to us
Mar 22 11:46:11.483: PIM(0): Prune-list: (*, 228.28.28.28) RP 150.1.2.2
Mar 22 11:46:11.483: PIM(0): Set join delay timer to 3000 msec for
(150.1.2.2/32, 228.28.28.28) on Serial0/0
Rack1R1#
Mar 22 11:46:13.392: PIM(0): Received RP-Reachable on Serial0/0 from
150.1.2.2
Mar 22 11:46:13.392: PIM(0): Received RP-Reachable on Serial0/0 from
150.1.2.2
Mar 22 11:46:13.392: for group 224.0.1.40
Mar 22 11:46:13.392: PIM(0): Forward RP-reachability for 224.0.1.40 on
FastEthernet0/0
Rack1R1#
Mar 22 11:46:14.436: PIM(0): Building Periodic (*,G) Join / (S,G,RP-bit) Prune
message for 228.28.28.28
Mar 22 11:46:14.436: PIM(0): Insert (*,228.28.28.28) join in nbr 132.1.0.2's
queue
Mar 22 11:46:14.436: PIM(0): Building Join/Prune packet for nbr 132.1.0.2
Mar 22 11:46:14.436: PIM(0): Adding v2 (150.1.2.2/32, 228.28.28.28), WC-bit,
RPT-bit, S-bit Join
Mar 22 11:46:14.436: PIM(0): Send v2 join/prune to 132.1.0.2 (Serial0/0)
Rack1R1#



This archive was generated by hypermail 2.1.4 : Sun Apr 01 2007 - 06:35:52 ART