Tag Archives: 3.2a

3.2.a RPF failure

this is an excellent, if long, lab on ine…

http://blog.ine.com/2008/01/02/troubleshooting-multicast-rpf-failure/

rpf_check_dia

put pim dense on every interface except those on r1

put a join on the client…

client(config-if)#do sh run int f0/0
Building configuration…

Current configuration : 144 bytes
!
interface FastEthernet0/0
ip address 150.1.35.5 255.255.255.0
ip pim dense-mode
 ip igmp join-group 224.1.1.1

ping the multicast:

r4#ping 224.1.1.1

Type escape sequence to abort.
Sending 1, 100-byte ICMP Echos to 224.1.1.1, timeout is 2 seconds:

Reply to request 0 from 150.1.35.5, 48 ms

the crux of mcgahans rpf lab is find the reverse path manually, start from the client:

client#sh ip mroute | b \(
(*, 224.1.1.1), 02:08:56/stopped, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Dense, 02:08:56/00:00:00

(150.1.124.4, 224.1.1.1), 00:00:35/00:02:42, flags: PLTX
Incoming interface: FastEthernet0/0, RPF nbr 150.1.35.3
Outgoing interface list: Null

(*, 224.0.1.40), 02:10:50/00:02:11, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Dense, 02:10:50/00:00:00

r3#sh ip mroute 224.1.1.1 | b \(
(*, 224.1.1.1), 02:10:14/stopped, RP 0.0.0.0, flags: DC
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Serial2/0, Forward/Dense, 02:10:14/00:00:00
FastEthernet0/0, Forward/Dense, 02:10:14/00:00:00

(150.1.124.4, 224.1.1.1), 00:01:53/00:01:33, flags: T
Incoming interface: Serial2/0, RPF nbr 150.1.23.2
Outgoing interface list:
FastEthernet0/0, Forward/Dense, 00:01:53/00:00:00

r2#sh ip mroute 224.1.1.1 | b \(
(*, 224.1.1.1), 00:03:22/stopped, RP 0.0.0.0, flags: D
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Dense, 00:03:22/00:00:00
Serial2/0, Forward/Dense, 00:03:22/00:00:00

(150.1.124.4, 224.1.1.1), 00:03:22/00:00:01, flags: T
Incoming interface: FastEthernet0/0, RPF nbr 150.1.124.4
Outgoing interface list:
    Serial2/0, Forward/Dense, 00:03:22/00:00:00

compare that with the ip routing table:

r3#sh ip route 150.1.124.4
Routing entry for 150.1.124.0/24
Known via “eigrp 1”, distance 90, metric 2195456, type internal
Redistributing via eigrp 1
Last update from 150.1.13.1 on Serial2/1, 02:24:06 ago
Routing Descriptor Blocks:
* 150.1.23.2, from 150.1.23.2, 02:24:06 ago, via Serial2/0
Route metric is 2195456, traffic share count is 1
Total delay is 21000 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
150.1.13.1, from 150.1.13.1, 02:24:06 ago, via Serial2/1
Route metric is 2195456, traffic share count is 1
Total delay is 21000 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1

150.1.23.2 is preferred, which matches the path for the multicast…

we can prove the packets are getting through with this command:

r3#sh ip mroute count
IP Multicast Statistics
3 routes using 2026 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.1, Source count: 1, Packets forwarded: 10, Packets received: 10
Source: 150.1.124.4/32, Forwarding: 10/1/100/0, Other: 10/0/0

Group: 224.0.1.40, Source count: 0, Packets forwarded: 0, Packets received: 0

the second zero in the other section means zero drops

if we prefer the route through router 1 we will see differences…

r3(config)#ip route 150.1.124.4 255.255.255.255 150.1.13.1

r4#ping 224.1.1.1 rep 10

Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 224.1.1.1, timeout is 2 seconds:
……….

r3#sh ip mroute count
IP Multicast Statistics
3 routes using 2182 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.1, Source count: 1, Packets forwarded: 0, Packets received: 10
Source: 150.1.124.4/32, Forwarding: 0/0/0/0, Other: 10/10/0

Group: 224.0.1.40, Source count: 0, Packets forwarded: 0, Packets received: 0

the second field in the other section now tells us 10 packets were dropped…

so in this artificial problem we could simply remove the static route to r1, but what if that route was needed for another reason and we needed to keep it… we could overide the ip routing table with a static mroute…

r3(config)#ip mroute 150.1.124.4 255.255.255.255 150.1.23.2

r4#ping 224.1.1.1 rep 10

Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 224.1.1.1, timeout is 2 seconds:

Reply to request 0 from 150.1.35.5, 60 ms
Reply to request 1 from 150.1.35.5, 76 ms
Reply to request 2 from 150.1.35.5, 76 ms

r3(config)#do sh ip mroute count
IP Multicast Statistics
3 routes using 2026 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.1, Source count: 1, Packets forwarded: 10, Packets received: 10
Source: 150.1.124.4/32, Forwarding: 10/0/100/0, Other: 10/0/0

Group: 224.0.1.40, Source count: 0, Packets forwarded: 0, Packets received: 0

3.2 Layer 3 multicast

doyle never goes away… multicast:

on a multiaccess network, OSPF DRothers send updates to the OSPF DR and BDR at 224.0.0.6; the DR sends packets to the DRothers at 224.0.0.5.

Some Well-Known Reserved Multicast Addresses
Address Group
224.0.0.1 All systems on this subnet
224.0.0.2 All routers on this subnet
224.0.0.4 DVMRP routers
224.0.0.5 All OSPF routers
224.0.0.6 OSPF designated routers
224.0.0.9 RIP-2 routers
224.0.0.10 EIGRP routers
224.0.0.13 PIM routers
224.0.0.15 CBT routers
224.0.1.39 Cisco-RP-Announce
224.0.1.40 Cisco-RP-Discovery

3.2.a Troubleshoot reverse path forwarding

Strict RPF—Using the rx keyword, the router checks to see if the matching route uses an  outgoing interface that is the same interface on which the packet was received. If not, the  packet is discarded.

clearly the best definition of rpf i have come across

Loose RPF—Using the any keyword, the router checks for any route that can be used to
reach the source IP address.

3.2.a Troubleshoot reverse path forwarding

they got this right…

An RPF check examines the source address of an incoming packet and checks it against the router’s unicast routing table to see what interface should be used to get back to the source network. If the incoming multicast packet is using that interface, the RPF check passes, and the packet is forwarded. If the multicast packet comes in a different interface, the RPF check fails, and the packet is discarded.