In this post we will see how to configure Auto-RP in order to dynamically (as oppose to Static) discover RP in a given PIM-SM multicast network. We will use following network topology for this. As shown in the diagram all required interfaces configured for PIM-Sparse Mode & EIGRP enabled (commands not shown) on layer 3 devices for basic IP connectivity.
There are two methods available for dynamic RP discovery in PIM-SM configuration.
1. Auto RP – Cisco Proprietary
2. Bootsrap Router(BSR) – IEEE standard
Even though BSR is the most common deployment type, from CCIE lab exam point of view Cisco can test Auto-RP configs as it is Cisco proprietary method. In both methods multiple routers (to provide redundancy) can be configured as RP (Candidate-RP). These devices inform its interest to become RP to a Mapping Agent who then inform about this to rest of the network. In PIM Auto-RP configuration, this “Discovery” & “Announcement” process used two well known multicast group addresses 224.0.1.39 & 224.0.1.40.
This introduce a challenge as Auto-RP control traffic use two multicast group addresses & network should be aware of RP for these group addresses in order to advertise about rest of multicast RP. Following 3 options available to address this issue.
1. Configure PIM sparse-dense mode
2. Static RP assignment for 224.0.1.39 & 224.0.1.40
3. Auto-RP listener command
First method will force to use “Dense” mode to learn these group addresses & every node will learn about that in this way. Static method you have to configure it manually in all of your network about RP for these two group addresses. Preferred way is to configure “pim auto-rp listerner” command which will do the same. In my example I have configured this on all 4 multicast enabled devices.(CAT2, CAT4, CME, WAN)
Configuration wise you need to configure ” ip pim send-rp-annouce” command on all candidate RPs & “ip pim send-rp-discovery” command on Mapping Agent (MA). In my example it is too small network to configure multiple RPs, therefore only CME router is configured as candidate RP & WAN router is configured as MA.
In RP router you need to configure the following “ip pim send-rp-announce <source-interface> scope [1-255] group-list <1-99> interval <time-interval>“. In my example I have used “ip pim send-rp-announce lo0 scope 5 interval 20” This is how you should interpret this. CME is sending its RP announcement messages (source as loopback 0 ) in every 20s (default 30s) to group address 224.0.1.39 to become RP for all multicast group addresses with scope (ie TTL) of 5. You can change specific parameters as you wish (source, interval, scope, group-list ACL). If you have multiple RP in your network & you wish to load balance multicast traffic to different RP, you can use this group-list to limit group address to given RP.
On the Mapping Agent (on WAN in my example) we have to configure “ip pim send-rp-discovery loopback 0 scope 5 interval 20“. I am using Loopback 0 as source interface to these discovery messages in every 20s (default 30s) send to 224.0.1.40 group address with TTL of 5. Now if you look at “show ip pim rp mapping” on CAT2, WAN, & CAT4 you would see something like this.
WAN(config)#do sh ip pim rp mapp PIM Group-to-RP Mappings This system is an RP-mapping agent (Loopback0) Group(s) 224.0.0.0/4 RP 10.10.205.20 (?), v2v1 Info source: 10.10.205.20 (?), elected via Auto-RP Uptime: 00:12:02, expires: 00:00:53 ! CAT2(config)#do sh ip pim rp mapp PIM Group-to-RP Mappings Group(s) 224.0.0.0/4 RP 10.10.205.20 (?), v2v1 Info source: 10.10.105.20 (?), elected via Auto-RP Uptime: 00:19:18, expires: 00:00:41 ! CAT4(config)#do sh ip pim rp mapp PIM Group-to-RP Mappings Group(s) 224.0.0.0/4 RP 10.10.205.20 (?), v2v1 Info source: 10.10.105.20 (?), elected via Auto-RP Uptime: 00:20:25, expires: 00:00:55
You can verify RP & MA is sourcing multicast traffic to these two specific group addresses by using “show ip mroute” command.
WAN#sh ip mroute 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 Outgoing interface flags: H - Hardware switched, A - Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (10.10.205.20, 224.0.1.39), 00:08:51/00:02:47, flags: T Incoming interface: Loopback0, RPF nbr 0.0.0.0 Outgoing interface list: FastEthernet0/0, Forward/Sparse, 00:07:36/00:00:00 FastEthernet2/1, Forward/Sparse, 00:07:49/00:00:00 (10.10.105.20, 224.0.1.40), 00:07:12/00:02:57, flags: LT Incoming interface: FastEthernet0/0, RPF nbr 172.16.99.6 Outgoing interface list: Loopback0, Forward/Sparse, 00:07:12/00:00:00 FastEthernet2/1, Prune/Sparse, 00:00:51/00:02:07
As you can see RP (10.10.205.20 CME-Loopback0) sending “RP-Announcement messages to 224.0.1.39 & MA (10.10.105.20 WAN-Loopback 0) sending “RP-Discovery” messages to 224.0.1.40 group addresses. Now you can test multicast functionality of this network. I have used streaming a video to 239.255.255.199 from my multicast source laptop. If you look at show ip mroue output for this group at CME you will see something like this.
CME#sh ip mroute 239.255.255.199 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 Outgoing interface flags: H - Hardware switched, A - Assert winner Timers: Uptime/Expires Interface state: Interface, Next-Hop or VCD, State/Mode (*, 239.255.255.199), 00:01:00/00:02:41, RP 10.10.205.20, flags: S Incoming interface: Null, RPF nbr 0.0.0.0 Outgoing interface list: FastEthernet2/1, Forward/Sparse, 00:00:48/00:02:41 (192.168.200.100, 239.255.255.199), 00:01:00/00:02:17, flags: PT Incoming interface: FastEthernet0/0, RPF nbr 172.16.99.6 Outgoing interface list: Null
You can see S,G entry for your source(192.168.200.100). Also noticed flag of “T-SPT bit set” which mean traffic is following shortest path tree & not via RP. If you look at the same output on CAT2 you can verify traffic is flowing through Fa 1/0/2 (instead of fa1/0/4).
CAT2#sh ip mroute 239.255.255.199
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
(*, 239.255.255.199), 00:06:37/stopped, RP 10.10.205.20, flags: SPF
Incoming interface: FastEthernet1/0/4, RPF nbr 172.16.99.5
Outgoing interface list: Null
(192.168.200.100, 239.255.255.199), 00:06:37/00:03:29, flags: FT
Incoming interface: Vlan200, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet1/0/22, Forward/Sparse, 00:06:25/00:02:57
If you configure multiple RPs & all of them acting as candidate-RP for same multicast group range, highest IP router will be selected as RP. Otherwise you can configure one RP for certain group address range & another RP for other group address range. You can do this simply by adding group-list keyword to the “ip pim send-rp-announce” coomand at each candidate RP. Let’s say we do not want CME to become RP for group 225.0.0.0/8. Then you can define an ACL like this on CME.
access-list 90 remark MCAST-GROUP-CME-RP
access-list 90 deny 225.0.0.0 0.255.255.255
access-list 90 permit 224.0.0.0 0.15.255.255
Then modify the “ip pim send-rp-announce” command to include group-list keyword. “ip pim send-rp-announce lo0 scope 5 group-list 90 interval 20″ Now if you check rp mapping you would see like this.CME won’t become RP for the group addresses 225.x.x.x.
WAN#sh ip pim rp mapp
PIM Group-to-RP Mappings
This system is an RP-mapping agent (Loopback0)
Group(s) 224.0.0.0/12
RP 10.10.205.20 (?), v2v1
Info source: 10.10.205.20 (?), elected via Auto-RP
Uptime: 00:01:10, expires: 00:00:50
Group(s) (-)225.0.0.0/8
RP 10.10.205.20 (?), v2v1
Info source: 10.10.205.20 (?), elected via Auto-RP
Uptime: 00:01:28, expires: 00:00:50
We will see how to configure BSR in the next post.
Note: In CCIE Wireless lab exam blue print it is listed “static multicast routing” & I do not expect them to test on Auto-RP, BSR & any other advanced RP configurations in wireless CCIE exam. But for the benefit of understanding different type of multicast configurations I will write posts about those topics.
related posts
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
