03-11-2013 01:28 AM - edited 03-01-2019 04:54 PM
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]
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).
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
| hostname R3 ip multicast-routing | hostname R4 ip multicast-routing
|
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:
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
Understanding Basics of Multicast RPF (Reverse Path Forwarding
simple explanation made understanding very easy...
Hello sunish,
Thanks for your Positive feedback.
Regards,
Ashish Shirkar
(Technical Community Manager-Network Infrastructure)
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: