I had a question regarding implementing PIM-SM with BSR method chosen to elect the RP.
Attached is my network topology for reference. Router R1 and R2 will be configured with BSR priority 20 and 10, electing R1 as the BSR for our Multicast domain. R1 and R2 are also being configured as the RP for the network. All other routers in the network are configured for PIM-SM.
I was thinking of associating multicast groups 22.214.171.124/4 and 126.96.36.199/5 with R1 and associating multicast group 188.8.131.52/4 and 184.108.40.206/5 with R2.
With this being the case R1 would be specifically advertising for the following Multicast group:220.127.116.11/418.104.22.168/5 (22.214.171.124-126.96.36.199.255)
While R2 would be specifically advertising for the following Multicast group:188.8.131.52/4184.108.40.206/5 (220.127.116.11-18.104.22.168.255)
This would also provide some form of load balancing where the 1st half of the Multicast range 22.214.171.124/4 is being specifically served by R1 and second half is being specifically served by R2. In the event router R1 were to fail, since R2 is still advertising the broad range of 126.96.36.199/4, R2 can take over the RP role in absence of R1 for the entire Multicast range.
Similarly, if R2 were to fail, since R1 is is still advertising the broad range of 188.8.131.52/4, R1 can take over the RP role in absence of R2 for the entire Multicast range.
Can somebody please suggest if the above makes sense? I look forward to hearing from you.
Yes your understanding is right. You have a dynamic election of RP and both RP will act as a failover for each other while serving half of the multicast network by each RP at a time and enable the load balancing in the control plane.
Hope this helps
Thanks for your reply. I couldn't find a clear documentation explaining how the regular PIM-SM routers elect the RP for a specific Multicast group in a Multicast network where BSR is used. Is there a particular election process that occurs on the regular PIM-SM routers to elect the RP for Multicast group? If you could help explain the process that would be great.
In PIM-SM, when BSR is used, the candidate RPs will send bootstrap messages with X priority on the priority field. Routers within the domain will flood the messages (or BSMs) throughout the domain. The highest priority router wins the election process and the rest of the candidates stop sending messages for the same amount of time. The highest priority router will inform all other routers in the domain that it is the elected Bootstrap Router. (RFC5059 section 1.2)
For correct operation, every multicast router within a PIM domain must be able to map a particular multicast group address to the same Rendezvous Point (RP). In general, you have an RP to serve all of the multicast groups within one PIM domain, so the BSR election process after conclusion, will determine the RP for the multicast groups within the domain.
Here is more information on configuration and some data: https://www.juniper.net/documentation/en_US/junos/topics/topic-map/mcast-pim-bootstrap-router.html
The part about electing the BSR is pretty well documented (The router configured with the highest BSR priority will be configured as the BSR for the PIM domain).
What I am trying to understand is once the BSR is elected in the PIM domain, how does the individual non-RP PIM-SM routers determine the best RP for a particular Multicast Group.
Attached is an excerpt from the JNCIP-ENT course which seems to address the RP election method for BSR, but I didn't really understand it.
Step 1 in the excerpt mentions:"Locate all RPs associated with the most specific advertised group range for the specific group in the PIM join message"
In my case, since I am advertising a more specific Multicast Group (184.108.40.206/5) from router R1, will this cause all of the non-RP PIM-SM routers to elect R1 as the RP for the groups 220.127.116.11/5 (18.104.22.168-22.214.171.124), or is there any other factors as well, that the non-RP PIM-SM routers will use to elect the RP?
In the sentence "Locate all RPs associated with the most specific advertised group range for the specific group in the PIM join message", you can have more than one RP (which would be candidate RPs and the active RP) but only one active RP, unless you are using Anycast RP which allows for more than 1 active RP for a multicast group range (https://www.juniper.net/documentation/en_US/junos/topics/topic-map/mcast-pim-anycast-rp.html)
You can also have multiple multicast domains, which service different groups, and have different active RPs and candidate RPs. But at the end of the day, the RP will be elected for the domain using the priority set. Then, once the RP Tree is formed, and the group is (S,G) instead of (*,G), and the shortest path three is formed, the shortest path will be used instead of the original path using the RP.
The RP election algorithm is individually run on each PIM-SM routers in the Multicast domain:
In BSR the hash algorithm used to elect the active RP for group G is as follows:
1. Find all RPs with the most specific group range covering G.2. From the subset in step 1, select all RPs with the highest priority (lowest priority value).3. For the RPs that meet the requirements in steps 1 and 2, compute a hash value based on the group address G, the RP address, and the hask mask included in the Bootstrap messages. The RP with the highest hash value is the RP for the group.4. In the case of a tie (that is, the same group address, priority and hash value), the RP with the highest IP address is theactive RP.
(section 4.3.3 of this book details the algorithmic steps for selection of RP in BSR)
In my case R1 and R2 are advertising unique Multicast groups, so my guess is R1 should be chosen as the RP for the Multicast group 126.96.36.199/5 (188.8.131.52-184.108.40.206) and R2 should be chosen as the Multicast group 220.127.116.11/5 (18.104.22.168-22.214.171.124) by all PIM routers in the Multicast domain. But, I should be able to determine this by either configuring the routers in a lab environment or Production. In any case, I will definitely post my findings here. Thanks all for your input and feedback.