Cisco Support Community
cancel
Showing results for 
Search instead for 
Did you mean: 

Multicast RPF recovery Using Static Multicast routing

 

Introduction:

In last document we have discussed the concept of multicast RPF and understand what happens when there is RPF failure. In this document we will discuss on how you can configure RPF statically using “static multicast route“

Multicast static route (mroute) configures using the "ip mroute" command in global configuration mode; similar like normal static route.Here is command syntax:

ip mroute source-address mask [protocol as-number] {rpf-address | type number} [distance]

Configuration Example:

Whenever R3 performs the RPF check, it will examine the Source address (1.1.1.2) of incoming packet then it will check the routing table for that source address. In our case R3 learnt route to 1.1.1.0/24 from interface fa0/0 hence for multicast source address 1.1.1.2 interface fa0/0 is RPF interface. So whenever R3 will receive multicast packets from source 1.1.1.2 on interface fa0/0 it will accept those and forward to downstream host but it will drop the packets comes on s0/0 from R2.

Now In our scenario, we want to utilize R3's both the links; fast Ethernet0/0(unicast) and Serial0/0(multicast).

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

Also See:

Understanding Basics of Multicast RPF (Reverse Path Forwarding

Comments
New Member

simple explanation made understanding very easy...

Gold

Hello sunish,

Thanks for your Positive feedback.

Regards,

Ashish Shirkar

(Technical Community Manager-Network Infrastructure)

1591
Views
10
Helpful
2
Comments