In a previous post we looked at Auto RP configurations with PIM-SM (sparse-mode). Since Auto RP depend upon “RP-announcement” & “RP-Discovery” multicast messages (group 188.8.131.52 & 184.108.40.206) special configurations required to advertise these groups(pim auto-rp listner).
PIM Bootstrap Router (or BSR) is the IEEE standard where multicast control rely entirely on the PIM packets. So no special configs required to advertise RP when yo configure network to pim sparse-mode.
In this example we will configure both CME & WAN acting as candidate RPs & WAN router acting as BSR-BootStrap Router (equivalent of Mapping Agent in Auto-RP). you can use “ip pim rp-candidate ” command to define candidate RPs. By using the priority keyword (lower priority wins) you can specify who should become RP if multiple candidates available for same group addresses. You can use “group-list” keyword to filter group addresses for specific RPs. You can use “ip pim bsr-candidate” command to configure BSR (WAN router in my example)
CME(config)#ip pim rp-candidate loopback 0 priority 10 ! WAN(config)#ip pim rp-candidate loopback 0 priority 5 WAN(config)#ip pim bsr-candidate loopback 0
Advantage of this configurations is you do not want to configure any other devices in your network to support this (like auto-rp). If you look at RP mapping on each of your network devices you would see something like this. You can see RP information is learn via bootstrap (BSR)
CAT2#sh ip pim rp mapp PIM Group-to-RP Mappings Group(s) 220.127.116.11/4 RP 10.10.105.20 (?), v2 Info source: 10.10.105.20 (?), via bootstrap, priority 5, holdtime 150 Uptime: 00:42:04, expires: 00:01:39 RP 10.10.205.20 (?), v2 Info source: 10.10.105.20 (?), via bootstrap, priority 10, holdtime 150 Uptime: 00:42:32, expires: 00:01:40 !
You can verify who will become RP by generating traffic to random multicast group number (18.104.22.168 in my example) & check “show ip pim rp” output.
CAT2#ping Protocol [ip]: Target IP address: 22.214.171.124 Repeat count : 10 Datagram size : Timeout in seconds : Extended commands [n]: y Interface [All]: Vlan200 Time to live : Source address: Type of service : Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 10, 100-byte ICMP Echos to 126.96.36.199, timeout is 2 seconds: .......... ! CAT2#sh ip pim rp Group: 188.8.131.52, RP: 10.10.105.20, v2, uptime 00:29:53, expires 00:01:32 Group: 184.108.40.206, RP: 10.10.105.20, v2, uptime 00:29:53, expires 00:01:32 Group: 220.127.116.11, RP: 10.10.105.20, v2, uptime 00:29:53, expires 00:01:32 Group: 18.104.22.168, RP: 10.10.105.20, v2, uptime 00:29:53, expires 00:01:32 Group: 22.214.171.124, RP: 10.10.105.20, v2, uptime 00:29:53, expires 00:01:32
You can see WAN (10.10.105.20) become RP as it has lower priority value compare to CME (10.10.205.20). Now if you join to this multicast group at the CAT4 you can see verify multicast traffic flow end to end (ie source to receiver)
CAT4(config)#int vlan 22 CAT4(config-if)#ip igmp join-group 126.96.36.199 ! ! CAT2#ping Protocol [ip]: Target IP address: 188.8.131.52 Repeat count : 10 Datagram size : Timeout in seconds : Extended commands [n]: y Interface [All]: Vlan200 Time to live : Source address: Type of service : Set DF bit in IP header? [no]: Validate reply data? [no]: Data pattern [0xABCD]: Loose, Strict, Record, Timestamp, Verbose[none]: Sweep range of sizes [n]: Type escape sequence to abort. Sending 10, 100-byte ICMP Echos to 184.108.40.206, timeout is 2 seconds: Reply to request 0 from 172.16.99.13, 8 ms Reply to request 1 from 172.16.99.13, 1 ms........ ! CAT2#sh ip mroute 220.127.116.11 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 V - RD & Vector, v - Vector Outgoing interface flags: H - Hardware switched, A - Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 18.104.22.168), 00:16:52/stopped, RP 10.10.105.20, flags: SPF Incoming interface: FastEthernet1/0/22, RPF nbr 172.16.99.1 Outgoing interface list: Null (192.168.200.254, 22.214.171.124), 00:00:29/00:03:18, flags: FT Incoming interface: Vlan200, RPF nbr 0.0.0.0 Outgoing interface list: FastEthernet1/0/22, Forward/Sparse, 00:00:29/00:03:00
Now we will look at how fast RP fail over works. By default BSR hello packets sends in every 60s & hold-down timer is 150s (2.5 x Hello time). Therefore even RP1 fails, network will not fall back to other RP until this hold down timer expires.(worst case 150s). PIM Hello packets sends in every 30s by default.You can find all timer values & multicast specific configs from Cisco document ID11194.
WAN#sh ip pim bsr-router PIMv2 Bootstrap information This system is the Bootstrap Router (BSR) BSR address: 10.10.105.20 (?) Uptime: 00:25:29, BSR Priority: 0, Hash mask length: 0 Next bootstrap message in 00:00:32 Candidate RP: 10.10.105.20(Loopback0) Holdtime 150 seconds Advertisement interval 60 seconds Next advertisement in 00:00:28 Candidate RP priority : 50
Therefore PIM-SM BSR fail over is not that smooth as these hold down timers are too large in today’s networking context. Anycast MSDP (Multicast Source Discover Protocol) can be used with PIM-SM where fail over occurs based on IGP timers.
In next post we will see how we configure Anycast with MSDP.
1. Test Yourself- Basic Multicast
2. Configuring Multicast on WLC
3. Wireless Multicast is not working – Why ?
4. Understanding “VideoStream” feature
5. IGMP Basics
6. Multicast Address Allocation
7. Multicast Deployment Types
8. PIM-SM Static RP Configurations
9. PIM-SM Auto-RP configurations
10. Anycast with MSDP
11. PIM-SSM Source Specific Multicast