Search this Blog

Sunday, March 2, 2014

What happens when we experience RPF failure?


How we can use static RPF method also called “static multicast routing “to recover when you experience multicast RPF failure?

In below example multicast server S1 (1.1.1.2) sends a multicast packet to hosts connected to R4 on interface fa0/1(192.168.1.0/24), with R1 flooding it to R2 and R3.R2 received its copy, and floods it as well. As a result R3 receives the same packet from two routers:
a) On its interface fa0/0 from R1.
b) On its interface s0/0 from R2.

When R3 performs the RPF check, it examines the Source address of each incoming packet, which is 1.1.1.2. As route to 1.1.1.0/24 is lists an outgoing interface fa0/0, making fa0/0 RPF interface for IP address 1.1.1.2.Hence R3 floods the packets received on fa0/0 from R1 but it ignore the packets received on s0/0 from R2.
Now we want to utilize both the link fast Ethernet0/0 as well as Serial0/0 of R3.

Task:

We want to Use R3's interface fa0/0 only for unicast routing and S0/0 for multicast routing.

Topology Diagram:


MROUTE.jpg

Initial Configuration:


R1R2R3R4
hostname R1
! 
ip cef
!
ip multicast-routing
!
interface FastEthernet0/0
ip address 10.1.1.1 255.255.255.252
ip pim dense-mode
speed 100
full-duplex
!
interface FastEthernet0/1
ip address 10.1.1.5 255.255.255.252
ip pim dense-mode
speed 100
full-duplex
!
interface FastEthernet1/0
ip address 1.1.1.1 255.255.255.0
ip pim dense-mode
duplex auto
speed auto
!
router eigrp 1
network 1.1.1.1 0.0.0.0
network 10.1.1.0 0.0.0.255
no auto-summary



hostname R2
!
ip multicast-routing
!
interface FastEthernet0/0
ip address 10.1.1.2 255.255.255.252
ip pim dense-mode
speed 100
full-duplex
!
interface Serial0/0
ip address 10.1.1.9 255.255.255.252
ip pim dense-mode
clock rate 2000000
!
router eigrp 1
network 10.1.1.0 0.0.0.255
no auto-summary













hostname R3
!
ip multicast-routing
!
interface FastEthernet0/0
ip address 10.1.1.6 255.255.255.252
ip pim dense-mode
no ip route-cache cef
no ip route-cache
no ip mroute-cache
speed 100
full-duplex
!
interface Serial0/0
ip address 10.1.1.10 255.255.255.252
ip pim dense-mode
no ip route-cache cef
no ip route-cache
no ip mroute-cache
clock rate 2000000
!
interface FastEthernet0/1
ip address 3.3.3.3 255.255.255.0
ip pim dense-mode
ip igmp join-group 239.1.1.1
speed 100
full-duplex
!
router eigrp 1
network 3.3.3.3 0.0.0.0
network 10.1.1.0 0.0.0.255
no auto-summary
hostname R4
!
ip multicast-routing
!
interface Loopback0
ip address 4.4.4.4 255.255.255.0
!
interface FastEthernet0/0
ip address 3.3.3.2 255.255.255.0
ip pim dense-mode
speed 100
full-duplex
!
interface FastEthernet0/1
ip address 192.168.1.1 255.255.255.0
ip pim dense-mode
ip igmp join-group 239.1.1.1
duplex auto
speed auto
!
router eigrp 1
network 192.168.1.0
network 0.0.0.0
no auto-summary








Let’s trace route to 192.168.1.1 to check unicast path from R1:

R1#traceroute 192.168.1.1 so fa1/0
Type escape sequence to abort.
Tracing the route to 192.168.1.1
           
  1 10.1.1.6 40 msec 52 msec 44 msec
  2 3.3.3.2 56 msec 68 msec *

Also do Mtrace route to 192.168.1.1 to check multicast path from R1:

R1#mtrace 1.1.1.2 192.168.1.1 239.1.1.1
Type escape sequence to abort.
Mtrace from 1.1.1.2 to 192.168.1.1 via group 239.1.1.1
From source (?) to destination (?)
Querying full reverse path...
0  192.168.1.1
-1  3.3.3.2 PIM  [1.1.1.0/24]
-2  3.3.3.3 PIM  [1.1.1.0/24]
-3  10.1.1.5 PIM  [1.1.1.0/24]
-4  1.1.1.2

From the both traces its clear that unicast as well multicast traffic path is through R3’s interface fa0/0.

To change traffic path to s0/0 we need to change RPF interface for 1.1.1.0/24 from interface Fa0/0 to s0/0, which can be done by configuring static multicast route pointing towards s0/0 as shown below:

R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#ip mroute 0.0.0.0 0.0.0.0 s0/0
R3(config)#end
R3#

Now check RPF interface for multicast server IP address 1.1.1.2

R3#sh ip rpf
R3#sh ip rpf 1.1.1.2
RPF information for ? (1.1.1.2)
  RPF interface: Serial0/0
  RPF neighbor: ? (10.1.1.9)
  RPF route/mask: 1.1.1.0/24
  RPF type: static
  RPF recursion count: 0
  Doing distance-preferred lookups across tables
                                   
Base Initial configuration:


Verification:

To verify multicast path, sending ICMP packets S1 to group address 239.1.1.1 and capturing mpacket debug on R3.

R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#logging console 5
R3(config)#logging buffer 7
R3(config)#logging buffer 64000
R3(config)#no service timestamp
R3(config)#end
R3#debug ip mpacket
IP multicast packets debugging is on

C:\>ping 239.1.1.1
Pinging 239.1.1.1 with 32 bytes of data:
Reply from 10.1.1.10: bytes=32 time=81ms TTL=254
Reply from 10.1.1.10: bytes=32 time=61ms TTL=254
Reply from 10.1.1.10: bytes=32 time=32ms TTL=254
Reply from 10.1.1.10: bytes=32 time=60ms TTL=254
Ping statistics for 239.1.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 32ms, Maximum = 81ms, Average = 58ms

R3#sh logging  | beg Log
    Logging Exception size (4096 bytes)
    Count and timestamp logging messages: disabled
    Persistent logging: disabled
No active filter modules.
ESM: 0 messages dropped
    Trap logging: level informational, 26 message lines logged
Log Buffer (64000 bytes):
IP(0): s=1.1.1.2 (FastEthernet0/0) d=239.1.1.1 id=298, ttl=62, prot=1, len=74(60), not RPF interface
IP(0): s=1.1.1.2 (Serial0/0) d=239.1.1.1 (FastEthernet0/1) id=298, ttl=61, prot=1, len=60(60), mforward
IP(0): s=1.1.1.2 (Serial0/0) d=239.1.1.1 (FastEthernet0/0) id=298, ttl=61, prot=1, len=60(60), mforward
IP(0): s=1.1.1.2 (FastEthernet0/0) d=239.1.1.1 id=300, ttl=62, prot=1, len=74(60), not RPF interface
IP(0): s=1.1.1.2 (Serial0/0) d=239.1.1.1 (FastEthernet0/1) id=300, ttl=61, prot=1, len=60(60), mforward
IP(0): s=1.1.1.2 (Serial0/0) d=239.1.1.1 (FastEthernet0/0) id=300, ttl=61, prot=1, len=60(60), mforward
IP(0): s=1.1.1.2 (Serial0/0) d=239.1.1.1 (FastEthernet0/1) id=302, ttl=61, prot=1, len=60(60), mforward
R3#sh ip mroute 1.1.1.2 239.1.1.1 | beg 1.1.1.2
(1.1.1.2, 239.1.1.1), 00:02:00/00:01:02, flags: LT
  Incoming interface: Serial0/0, RPF nbr 10.1.1.9, Mroute
  Outgoing interface list:
    FastEthernet0/1, Forward/Dense, 00:02:00/00:00:00
    FastEthernet0/0, Prune/Dense, 00:01:59/00:01:00, A

2) You can also do mtrace to verify path from R1 as shown below:

R1#mtrace 1.1.1.2 192.168.1.1 239.1.1.1
Type escape sequence to abort.
Mtrace from 1.1.1.2 to 192.168.1.1 via group 239.1.1.1
From source (?) to destination (?)
Querying full reverse path...
0  192.168.1.1
-1  3.3.3.2 PIM  [1.1.1.0/24]
-2  3.3.3.3 PIM/Static  [default]
-3  10.1.1.9 PIM  [1.1.1.0/24]
-4  10.1.1.1 PIM  [1.1.1.0/24]
-5  1.1.1.2

Citation - This blog post does not reflect original content from the author. Rather it summarizes content that are relevant to the topic from different sources in the web. The sources might include any online discussion boards, forums, websites and others.

No comments :

Post a Comment

 
/* Google Analytics begin ----------------------------------------------- */ /* Google Analytics end ----------------------------------------------- */