Saturday, February 11, 2012

PIM SPARSE MODE

PIM SPARSE MODE



  • The big difference between sparse vs dense mode is that dense mode floods the traffic everywhere and the traffic is pruned if routers do not have any recivers requesting the traffic. This flooding occurs every 3 minutes. Recivers are able to build a tree towards senders as they are reciveing the multicast packets so they inadvertly know the source of the traffic.
  • Where as in the opposite sparse mode aim is to stop this flooding behaviour which is inefficent by only allowing the multicast traffic when it is requested i.e reciver sends an igmp request for the group. But in that there is a problem as how is the receiver meant to know the source in the first place if it is not reciveing the flooding of the traffic to know the source. The way it gets around is by introducing a meeting point where source can register and reciver can also register and they can be joined to form a multicast tree.
  • RP (redevous point) is where sources meet recievers.
  • All routers must be aware of the RP this can be manually configured or dynamically configured
  • So the process is that source begin sending the router that is on the source segements receives the traffic and sends a Register to the RP  this router will create (*,G) and (S,G) for the source and group
  • The RP replies with Register stop and creates a (*,G) and (S,G) for the souce and group. This prunes the group.
  • These routes will remain in table as long as the multicast traffic is being sent to them
  • If a interested host comes on line it sends a igmp join to the router on it lan segment on recieving this join the router will create pim join + send it to the RP.
  • If there is more than one router on a segement an electi occurs for the Pim designated rotuer or dr. This for both source and host segements.
  • The RP will then send a PIM Join to the source of the multicast traffic to unprune the traffic
  • Once multicast traffic is recieved on the pim router of the segement where the host that wants to recieve i.e that sent the igmp join. The router now knows the source and between them they will switch from the shared tree through the rp to the shortest path tree i.e the best igp route to each other
  • This will mean the rp may or may not be in the traffic path depending on the  best igp router.  
  • RP is used as a reference point for the root of the shared tree




ip sim spt-threshold {kbps|infinity} [group-list "access-list"]
so basically the rp does not have to be in the dataplane forwarding it is just in control
plane for building of trees then the last hop router can switchover to the shortest path tree
this saves flood and prune method of dense mode

sh ip pim neighbor
sh ip pim rp mapping
One of the gotchas in lab scenerio is that registration by the source is based on incoming
traffic only  not outgoing. So if your router interface is registered as DR and you are
generating testing packets with a source of that interface it will not generate a register
message this would never be an issue in a real production scenerio as you would not be
generating multicast traffic locally on the router only on
we can rig the DR election with
int fa0/0
ip pim dr-priority "decimal value" higher is better

RPF CHECK and Sparse Mode
--------------------------
RPF check is different in sparse vs dense
RP performs RPF on
   - control plane pim register from DR
   - Dataplane plane packets from source
Recivers perform check on
    -RP for (*,G) shared tree
    -source for (S,G) SPT
CHanging the RPF
-----------------
- RPF is based on unicast routing table
   -implies changing unicast routing affects multicast routing
RPF can be modified
   -manually with ip mroute
   -dynmacially with ip mroute
RPF controls how tree must be built not how it can be built
RPF can be verified with
     show ip rpf
     show ip mroute count
     show ip mpacket

clear ip mroute * - used to clear the mroute routing table

LAB
----
OK for the LAB sw3 will be the source
r1 will be the rp
and sw2 will originate the traffic




so i need to enable sparse mode on the interfaces this needs to be done on all ip interfaces
in the network
S3
---

s3(config)#ip multicast-routing dis
s3(config)#int vlan 79
s3(config-if)#ip pim sparse-mode
s3(config-if)#int vl
00:28:43: %PIM-5-DRCHG: DR change from neighbor 0.0.0.0 to 155.0.79.3 on interface Vlan79
(vrf default)an 9
s3(config-if)#ip pim sparse-mode
s3(config-if)#



OK so i have done this across we will have quick look at r1

r1#sh ip pim neig
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
155.0.146.4       FastEthernet0/0          00:03:25/00:01:16 v2    1 / S
155.0.146.6       FastEthernet0/0          00:04:41/00:01:17 v2    1 / DR S
155.0.13.3        Serial0/1                00:04:36/00:01:34 v2    1 / S
155.0.0.5         Serial0/0                00:02:38/00:01:34 v2    1 / DR S
155.0.0.4         Serial0/0                00:03:28/00:01:33 v2    1 / S
155.0.0.2         Serial0/0                00:04:02/00:01:33 v2    1 / S
155.0.0.3         Serial0/0                00:04:25/00:01:33 v2    1 / S
r1#

r1#sh ip pim rp
r1#

ok so now we need to configure the rp we will use r1 as the rp
so on r1
---------
r1(config)#ip pim rp-address 1.1.1.1

this now has to be done on all devices in the network

so on s4
s4
--
s4#sh ip pim rp
Group: 224.0.1.40, RP: 1.1.1.1, uptime 00:00:31, expires never
s4#


r5
---
r5#sh ip
*Feb 11 18:51:16.219: %SYS-5-CONFIG_I: Configured from console by console pim neig
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
155.0.45.4        Serial0/1/0              00:10:11/00:01:24 v2    1 / S
155.0.0.4         Serial0/0/0              00:10:33/00:01:32 v2    1 / S
155.0.0.2         Serial0/0/0              00:10:33/00:01:31 v2    1 / S
155.0.0.3         Serial0/0/0              00:10:33/00:01:30 v2    1 / S
155.0.0.1         Serial0/0/0              00:10:33/00:01:31 v2    1 / S
155.0.58.2        FastEthernet0/0          00:09:50/00:01:17 v2    1 / S
r5#

s2#sh ip pim neig
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
      S - State Refresh Capable
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
155.0.58.5        Vlan58                   00:09:56/00:01:38 v2    1 / DR S
155.0.108.4       Port-channel4            00:09:10/00:01:26 v2    1 / DR S
s2#

we can see by comparing s2 and r5 that the int vlan 58 has been elected dr for the segement
so this would be in charge of PIM-JOINs if it is the reciever or PIM Register if there was a
source on the segment

ok lets look at the register messages and the state of the mroute table when a source comes
online

so on r1
---------

r1#debug ip mpacket
IP multicast packets debugging is on
r1#debug ip pim
PIM debugging is on

we will put on debug
same on s3

0:49:45: %SYS-5-CONFIG_I: Configured from console by consoleg ip pim
PIM debugging is on
s3#debug ip mpack
IP multicast packets debugging is on
s3#

ok so we sent a ping 224.1.1.12
s3#ping
Protocol [ip]: ip
Target IP address: 22
00:50:19: PIM(0): Received RP-Reachable on Vlan79 from 1.1.1.1
00:50:19: PIM(0): Received RP-Reachable on Vlan79 from 1.1.1.1
00:50:19:      for group 224.0.1.224.1.1.12
Repeat count [1]: 10000
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Interface [All]:
Time to live [255]:
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:

ok so we are seeing we are creating a register message to send to r1 (1.1.11)

00:50:57: PIM(0): Check RP 1.1.1.1 into the (*, 224.1.1.12) entry
00:50:57: PIM(0): Send v2 Register to 1.1.1.1 for 155.0.9.3, group 224.1.1.12
00:50:57: IP(0): s=155.0.9.3 (Vlan9) d=224.1.1.12 id=0, ttl=254, prot=1, len=114(100), mroute
olist null
00:50:57: PIM(0): Send v2 Register to 1.1.1.1 for 155.0.79.3, group 224.1.1.12
00:50:57: IP(0): s=155.0.79.3 (Vlan79) d=224.1.1.12 id=0, ttl=254, prot=1, len=114(100),
mroute olist null

We then recive a register stop  back from 1.1.1.1
00:50:57: PIM(0): Received v2 Register-Stop on Vlan79 from 1.1.1.1
00:50:57: PIM(0):   for source 155.0.9.3, group 224.1.1.12
00:50:57: PIM(0): Clear Registering flag to 1.1.1.1 for (155.0.9.3/32, 224.1.1.12)
00:50:57: PIM(0): Received v2 Register-Stop on Vlan79 from 1.1.1.1
00:50:57: PIM(0):   for source 155.0.79.3, group 224.1.1.12
00:50:57: PIM(0): Clear Registering flag to 1.1.1.1 for (155.0.79.3/32,
224.1.1.12)...................


r1#sh 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.12), 00:03:11/stopped, RP 1.1.1.1, flags: SP
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list: Null
(155.0.9.3, 224.1.1.12), 00:00:08/00:02:51, flags: P
  Incoming interface: FastEthernet0/0, RPF nbr 155.0.146.6
  Outgoing interface list: Null
(155.0.79.3, 224.1.1.12), 00:00:08/00:02:51, flags: P
  Incoming interface: FastEthernet0/0, RPF nbr 155.0.146.6
  Outgoing interface list: Null
(*, 224.0.1.40), 00:22:55/00:03:20, RP 1.1.1.1, flags: SJCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:13:40/00:02:40
    Serial0/0, Forward/Sparse, 00:14:28/00:03:20

we notice we have created a mrote entry for 155.0.9.3 224.1.1.12 if you notice the flag is P
meaning pruned this as we have no recivers on line rpf interface is via r6


r6
---
r6#sh mroute
       ^
% Invalid input detected at '^' marker.
r6#sh 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,
       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
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:24:59/00:02:34, RP 1.1.1.1, flags: SJCL
  Incoming interface: FastEthernet0/0.146, RPF nbr 155.0.146.1
  Outgoing interface list:
    FastEthernet0/0.67, Forward/Sparse, 00:13:48/00:02:48

there is no mroute for this group anywhere else apart from the RP which is r1 and the DR
which is S3

s4
---
s4#sh 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,
       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
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:21:51/00:02:39, RP 1.1.1.1, flags: SJPCL
  Incoming interface: Port-channel2, RPF nbr 155.0.108.2
  Outgoing interface list: Null
s4#

ok lets create a join from s4 for this interface
s4(config)#int po2
s4(config-if)#ip igmp join-group 224.1.1.12
s4(config-if)#

We create a join for a nbr 155.0.108.2 this because it is DR this will then forward the PIM
join message to the RP
00:59:59: PIM(0): Check RP 1.1.1.1 into the (*, 224.1.1.12) entry
00:59:59: PIM(0): Building Triggered (*,G) Join / (S,G,RP-bit) Prune message for 224.1.1.12
00:59:59: PIM(0): Insert (*,224.1.1.12) join in nbr 155.0.108.2's queue
00:59:59: PIM(0): Building Join/Prune packet for nbr 155.0.108.2

s4#sh 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.12), 00:04:02/00:02:13, RP 1.1.1.1, flags: SJPCL
  Incoming interface: Port-channel2, RPF nbr 155.0.108.2
  Outgoing interface list: Null
(*, 224.0.1.40), 00:28:20/00:02:09, RP 1.1.1.1, flags: SJPCL
  Incoming interface: Port-channel2, RPF nbr 155.0.108.2
  Outgoing interface list: Null
s4#
now we have the (*,224.1.1.12) in our mroute table

so does s2
s2#sh 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.12), 00:05:45/00:02:30, RP 1.1.1.1, flags: SJC
  Incoming interface: Vlan58, RPF nbr 155.0.58.5
  Outgoing interface list:
    Port-channel4, Forward/Sparse, 00:05:45/00:02:45
(*, 224.0.1.40), 00:31:18/00:02:43, RP 1.1.1.1, flags: SJCL
  Incoming interface: Vlan58, RPF nbr 155.0.58.5
  Outgoing interface list:
    Port-channel4, Forward/Sparse, 00:23:34/00:02:50
s2#

so does r5
r5#sh 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.12), 00:06:10/00:03:14, RP 1.1.1.1, flags: S
  Incoming interface: Serial0/0/0, RPF nbr 155.0.0.1
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:06:10/00:03:14
(*, 224.0.1.40), 00:32:34/00:02:18, RP 1.1.1.1, flags: SJCL
  Incoming interface: Serial0/0/0, RPF nbr 155.0.0.1
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:31:43/00:02:33
    Serial0/1/0, Forward/Sparse, 00:32:34/00:00:00

so does r1

r1#sh 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.12), 00:15:41/00:02:50, RP 1.1.1.1, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial0/0, Forward/Sparse, 00:06:35/00:02:50
(*, 224.0.1.40), 00:35:24/00:02:38, RP 1.1.1.1, flags: SJCL
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:26:09/00:02:56
    Serial0/0, Forward/Sparse, 00:26:58/00:02:35
r1#

r6 does not

r6#sh 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,
       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
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:36:48/00:02:45, RP 1.1.1.1, flags: SJCL
  Incoming interface: FastEthernet0/0.146, RPF nbr 155.0.146.1
  Outgoing interface list:
    FastEthernet0/0.67, Forward/Sparse, 00:25:37/00:02:53

when building the shared tree it is only the router in the transit path that get the mroute



ok looks like our multicast traffic as timed out from sw3 so i will generate more now we
should be getting replies

s3
---
s3#ping 224.1.1.12
Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 224.1.1.12, timeout is 2 seconds:
Reply to request 0 from 155.0.108.4, 117 ms

which we are from s4 which is part of the group

r6 is now getting the mroute


r6#sh 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.12), 00:01:39/stopped, RP 1.1.1.1, flags: SP
  Incoming interface: FastEthernet0/0.146, RPF nbr 155.0.146.1
  Outgoing interface list: Null
(155.0.79.3, 224.1.1.12), 00:01:39/00:03:27, flags: T
  Incoming interface: FastEthernet0/0.67, RPF nbr 155.0.67.1
  Outgoing interface list:
    FastEthernet0/0.146, Forward/Sparse, 00:01:39/00:02:49
(*, 224.0.1.40), 00:40:12/00:03:26, RP 1.1.1.1, flags: SJCL
  Incoming interface: FastEthernet0/0.146, RPF nbr 155.0.146.1
  Outgoing interface list:

we now have a source specfic mroute on s4

s4#sh 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.12), 00:11:44/00:00:34, RP 1.1.1.1, flags: SJPCL
  Incoming interface: Port-channel2, RPF nbr 155.0.108.2
  Outgoing interface list: Null
(155.0.79.3, 224.1.1.12), 00:02:31/00:02:59, flags: PLTX
  Incoming interface: Port-channel2, RPF nbr 155.0.108.2
  Outgoing interface list: Null
(*, 224.0.1.40), 00:36:02/00:02:27, RP 1.1.1.1, flags: SJPCL
  Incoming interface: Port-channel2, RPF nbr 155.0.108.2
  Outgoing interface list: Null

We use this to build the shortest path tree

r5#sh 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,
       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
Outgoing interface flags: H - Hardware switched, A - Assert winner
 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.1.1.12), 00:13:04/00:03:15, RP 1.1.1.1, flags: S
  Incoming interface: Serial0/0/0, RPF nbr 155.0.0.1
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:13:04/00:03:15
(155.0.79.3, 224.1.1.12), 00:03:51/00:03:21, flags: T
  Incoming interface: Serial0/1/0, RPF nbr 155.0.45.4
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:03:51/00:03:15
(*, 224.0.1.40), 00:39:28/00:02:30, RP 1.1.1.1, flags: SJCL
  Incoming interface: Serial0/0/0, RPF nbr 155.0.0.1
  Outgoing interface list:
    FastEthernet0/0, Forward/Sparse, 00:38:38/00:02:35
    Serial0/1/0, Forward/Sparse, 00:39:28/00:00:00
r5#

see r5 is choosing r4 not through the rp the shortest path tree from sender to reciver has
been created. The tree to the rp has been pruned

s4 is going

s4#traceroute 155.0.79.3
Type escape sequence to abort.
Tracing the route to 155.0.79.3
  1 155.0.108.2 8 msec 0 msec 0 msec
  2 155.0.58.5 0 msec 0 msec 0 msec
  3 155.0.0.4 17 msec 8 msec 17 msec
  4 155.0.146.6 34 msec 33 msec 34 msec
  5 155.0.67.1 33 msec 34 msec 33 msec
  6 155.0.79.3 34 msec *  25 msec
s4#

ok SO everything is working as expected
TROUBLESHOOTING RPF
----------------------
We will look at some failure points 
if the rp was not configured on r1
------------------------------------

r1(config)#no ip pim rp-address 1.1.1.1
r1(config)#
*Mar  1 03:54:35.151: %PIM-6-INVALID_RP_JOIN: Received (*, 224.0.1.40) Join from 155.0.146.6
for invalid RP 1.1.1.1
*Mar  1 03:56:03.567: %PIM-6-INVALID_RP_JOIN: Received (*, 224.0.1.40) Join from 155.0.13.3
for invalid RP 1.1.1.1
*Mar  1 03:56:04.075: %PIM-1-INVALID_RP_REG: Received Register from router 155.0.67.1 for
group 224.1.1.12, 1.1.1.1 not willing to be RP

we would get invalid registers and join
this basically means that someone in the network has you configured this router as the RP
and you do not recognise yourself as the rp this would be the same if you misconfigured your
address for RP

r1(config)#ip pim rp-address 1.1.1.1
r1(config)#

ok i will change it back this time i will change the rp address on r5 given it invalid
address and do a join
if rp is misconfigured in transit path
---------------------------------------
r5
---
r5(config)#ip pim rp-address 1.1.1.12
r5(config)#

r5#debug ip pim
PIM debugging is on
r5#debug ip mpacket
IP multicast packets debugging is on


s2
---
s4(config)#int po2
s4(config-if)#ip igmp join-group 224.1.1.12
s4(config-if)#

we see r5
r5#sh log
*Feb 11 19:34:07.843: PIM(0): Received v2 Join/Prune on FastEthernet0/0 from 155.0.58.2, to
us
*Feb 11 19:34:07.843: PIM(0): Join-list: (*, 224.0.1.40),, ignored, invalid RP 1.1.1.1 from
155.0.58.2
Syslog logging: enabled (1 messages dropped, 1 messages rate-limited,
                0 flushes, 0 overruns, xml disabled, filtering disabled)
    Console logging: level debugging, 60 messages logged, xml disabled,
                     filtering disabled
    Monitor logging: level debugging, 0 messages logged, xml disabled,
                     filtering disabled
    Buffer logging: level debugging, 11 messages logged, xml disabled,
                    filtering disabled
    Logging Exception size (4096 bytes)
    Count and timestamp logging messages: disabled
No active filter modules.
    Trap logging: level informational, 46 message lines logged
Log Buffer (9999 bytes):
*Feb 11 19:33:32.947: PIM(0): Building Periodic (*,G) Join / (S,G,RP-bit) Prune message for
224.0.1.40
*Feb 11 19:33:45.459: PIM(0): Received v2 Join/Prune on FastEthernet0/0 from 155.0.58.2, to
us
*Feb 11 19:33:45.459: PIM(0): Join-list: (*, 224.1.1.12),, ignored, invalid RP 1.1.1.1 from
155.0.58.2

it ignored the joing as it had invalid rp


You have to make sure the rp has routes to the source and to destination or it will not install in the mroute table


some good troubleshooting command are
--------------------------------------

r5#sh ip mroute count
IP Multicast Statistics
3 routes using 2022 bytes of memory
2 groups, 0.50 average sources per group
Forwarding Counts: Pkt Count/Pkts(neg(-) = Drops) per second/Avg Pkt Size/Kilobits per second
Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)
Group: 224.1.1.12, Source count: 1, Packets forwarded: 39, Packets received: 39
  RP-tree: Forwarding: 1/0/100/0, Other: 1/0/0
  Source: 155.0.79.3/32, Forwarding: 38/1/100/0, Other: 38/0/0
Group: 224.0.1.40, Source count: 0, Packets forwarded: 0, Packets received: 0
r5#

see we have had 39 packets going to 224.1.1.12 and we forwarded 39 this command was taken
during normal operation if it was failing we would see the packets would be failed

r5#sh ip rpf 1.1.1.1
RPF information for ? (1.1.1.1)
  RPF interface: Serial0/0/0
  RPF neighbor: ? (155.0.0.1)
  RPF route/mask: 1.1.1.1/32
  RPF type: unicast (eigrp 1)
  RPF recursion count: 0
  Doing distance-preferred lookups across
we can information about rpf routes

so mainly for troubleshooting we need to ensure that the groups are installed on the relevant
router
so when registering it is DR and RP
when joining it is all routes in the transit path
when traffic is sending all router should have the group

No comments:

Post a Comment