We are at the tail end of our multicast series. So far, we have covered multicast basics, IGMP, PIM Dense Mode, PIM Sparse Mode, and Auto-RP. In this post, we will look at Bootstrap Router, or BSR.

Bootstrap Router (BSR) Overview
In the previous post, we looked at Auto-RP, which is Cisco's proprietary method for dynamically distributing RP information to all routers in the network. BSR solves the same problem but is defined in the PIM standards (RFC 5059), making it vendor-neutral and interoperable across different platforms. The core idea is the same. Instead of manually configuring the RP address on every router, BSR allows routers to learn RP information automatically. A router called the Bootstrap Router collects RP information from Candidate RPs and distributes it to all PIM routers in the network.
The key difference is in how this information flows. With Auto-RP, the Mapping Agent sends RP mappings to the specific multicast group 224.0.1.40. This creates the chicken-and-egg problem we discussed in the previous post, where routers need to receive multicast to learn where the RP is, but multicast routing depends on knowing the RP. Auto-RP solves this with sparse-dense mode or the autorp listener command.
BSR avoids this problem entirely. Instead of relying on multicast delivery, BSR messages are flooded hop-by-hop between PIM neighbors using the All-PIM-Routers address 224.0.0.13 with a TTL of 1. Each router receives the message, processes it, and forwards it out to all other PIM-enabled interfaces. Because this is baked into the PIM standard, there is no need for sparse-dense mode or autorp to bootstrap the RP discovery process.
BSR Roles
BSR uses two roles that are similar to what we saw in Auto-RP.
- The first role is the Candidate RP. This works the same way as in Auto-RP. A router configured as a Candidate RP advertises itself as a potential rendezvous point. The difference is that instead of sending announcements to a multicast group, the Candidate RP unicasts its messages directly to the BSR.
- The second role is the Bootstrap Router itself. This is similar to the Mapping Agent in Auto-RP, but with one important difference. The Mapping Agent in Auto-RP receives candidate announcements, selects the best RP for each group, and then advertises only the winning RP. The BSR does not make this selection. Instead, it collects all Candidate RP information and floods the entire RP-set to every router in the network. Each router then runs the same selection algorithm locally to decide which RP to use for each group. This means every router in the network independently arrives at the same answer.
Just like with Auto-RP, a single router can act as both the BSR and a Candidate RP at the same time. You can also configure multiple BSRs for redundancy. When multiple BSRs exist, they hear each other's bootstrap messages, and only one becomes the active BSR. The router with the highest priority value wins. If priorities are equal, the highest IP address wins. The losing BSR stops sending its own messages and remains in standby until the active BSR fails.
RP Selection
Since the BSR sends all Candidate RP information to every router, each router must independently decide which RP to use for each multicast group. The selection follows a specific order.
- The first check is the longest prefix match. If one Candidate RP advertises a more specific group range than another, it wins for those groups. For example, if one router advertises itself as the RP for 239.1.1.0/24 and another advertises for 239.0.0.0/8, the first router wins for any group in the 239.1.1.0/24 range.
- If the prefix lengths match, the next check is priority. Lower priority values are preferred. The default priority in Cisco IOS is 0.
- If priorities are also equal, the hash algorithm determines the winner. The BSR includes a hash mask length value in its messages. Each router applies this mask to the group address and the Candidate RP addresses to calculate a hash value. The Candidate RP with the highest hash value wins for that group.
- If the hash value is the same, the final tiebreaker is the highest IP address.
BSR Lab
Let's look at an example using the following topology. We have six routers in total. The sender is connected to r1, and the receiver is connected to r6. All point-to-point links use the 172.16.x.x range for IP addressing. Each router has a loopback interface with the address 10.0.0.x, where x is the router number. For example, r3 has 10.0.0.3, r4 has 10.0.0.4, and so on.

For this lab, r3 will act as both the BSR and a Candidate RP. We will also configure r2 as a second BSR for redundancy, and r4 as a second Candidate RP so we can see how the RP selection process works when multiple candidates exist.
- r2 - BSR
- r3 - BSR and Candidate RP
- r4 - Candidate RP
- r1 - Connected to sender
- r6 - Connected to receiver

Initial Configs
Before configuring BSR, we have a few prerequisites in place. OSPF is enabled on all routers (including the loopback interfaces) so we have full unicast reachability across the network. On top of that, multicast routing is enabled globally on every router, and Auto-RP is disabled. PIM sparse mode is enabled on all interfaces, including the loopbacks. Here is a sample configuration from r2.
!r2 config
ip multicast-routing
no ip pim autorp
!
router ospf 1
router-id 10.0.0.2
!
interface Loopback0
ip address 10.0.0.2 255.255.255.255
ip pim sparse-mode
ip ospf 1 area 0.0.0.0
!
interface Ethernet0/1
description r2 -> r1
ip address 172.16.1.2 255.255.255.252
ip pim sparse-mode
ip ospf network point-to-point
ip ospf 1 area 0.0.0.0
!
interface Ethernet0/2
description r2 -> r3
ip address 172.16.1.5 255.255.255.252
ip pim sparse-mode
ip ospf network point-to-point
ip ospf 1 area 0.0.0.0
!
interface Ethernet0/3
description r2 -> r4
ip address 172.16.1.9 255.255.255.252
ip pim sparse-mode
ip ospf network point-to-point
ip ospf 1 area 0.0.0.0
!BSR Config
Next, we will configure r2 and r3 as BSR candidates by running the following command on each router.
! r2 and r3
ip pim bsr-candidate Loopback0The command syntax is ip pim bsr-candidate <interface> [hash-mask-length] [priority]. The interface specifies which IP address the router will use as its BSR identifier. We use the loopback address since it is always reachable as long as the router is up. For this lab, we are going with all defaults, so the command is simply ip pim bsr-candidate Loopback0 on both r2 and r3.
Candidate RP Configuration
Next, we will configure r3 and r4 as Candidate RPs by running the following command on each router.
! r3 and r4
ip pim rp-candidate Loopback0The command syntax is ip pim rp-candidate <interface> [group-list <acl>] [interval <seconds>] [priority <0-255>]. The interface specifies which IP address the router will advertise as the RP address. We use the loopback address for the same reason as the BSR configuration.
The group-list option allows you to specify which multicast groups this router will serve as the RP for using a standard ACL (we will cover this later). If omitted, the router advertises itself as a candidate for all multicast groups. The interval controls how often the Candidate RP sends advertisements to the BSR. The default is 60 seconds.
The priority influences RP selection when multiple Candidate RPs exist for the same group range. Lower priority is preferred. The default priority in Cisco IOS is 0. For this lab, we are going with all defaults, so the command is simply ip pim rp-candidate Loopback0 on both r3 and r4.



