Auto RP and BSR are two technologies used to dynamically create a group to RP mapping. Today I’ll do a review and compare both of these technologies and discuss which one you should use in your network. You can skip to the end of my post if you just want to read the overview.
- Cisco Proprietary and uses PIMv1
- If there is a group to RP mapping then the group is in SM, if not the group is in DM
- [(INT)ip pim sparse-dense-mode] is required or [ip pim autorp listener] must be used if only sparse-mode is configured. Allows only groups 126.96.36.199 and 188.8.131.52. to be sent (the mode is still sparse, but those two dense mode groups are allowed)
- Failed RP do not influence multicast traffic as long as last-hop router joined SPT
- On NBMA if the Mapping Agent (MA) is on a spoke and needs to send mapping to another spoke, a GRE tunnel must be created between spokes with a static mroute (or RPF will fail). You can also enable NBMA mode on hub to avoid this.
- Candidate-RP-Announce sent to MA 184.108.40.206 UDP/496
- Used by routers to announce themselves as RP to the MA
- Sent every 60 seconds with a holdtime of 180 seconds.
- [ip pim send-rp-announce <if> scope <ttl> %group-list <acl>% %interval <sec>%] Defines what RP’s the MA will receive
- If ACL is not defined whole Multicast range is included. Do NOT use deny statement in C-RP ACLs. Also, only contiguous masks are allowed in group ACL.
- Multiple Candidate-RP’s may exist for a Group. Highest IP is selected by Mapping agent
- [Ip pim send-rp-discovery scope <TTL>] Scope an RP by using TTL as a value.
- Candidate-RP-Discovery sent to all routers on 220.127.116.11 UDP/496
- Used by routers to learn mapping from MA
- C-RP with highest IP is announced for the same range. If one range is a subset of another but RP’s are different, both are announced.
- Router joins 18.104.22.168 (Becomes a group member), and sends mapping to 22.214.171.124
- There can be many MAs (independent) for different groups, but for the same group, the one with highest IP wins, and the rest cease their announcements
- [ip pim rp-announce-filter rp-list <acl1> [group-list <acl2>] Avoid spoofing (Allowed RPs in ACL1 for groups in ACL2) – ONLY on mapping agent
Bootstrap Router (BSR)
- Does not use any dense-mode groups
- Uses PIMv2 and it is an IETF standard
- Information flooded on hop by hop basis using PIM messages (RPF check) is applied.
- Each router is responsible for selecting the best RP for a group range
- [ip pim rp-candidate <if> [group-list <acl>] interval <sec> group-list <acl> priority <#>]
- Because BSR announces itself, C-RP unicasts Advertisements to BSR
- If group ACL is used, only “allow” entries are allowed, unlike in Auto-RP where deny statements could be used.
- Cisco’s default priority is 0, but the IETF standard defines 192. Lower is better. If priority is the same highest IP wins
- RP with a list of more groups is elected even if other RP has lower priority
- Each BSR announces own state (group range to RP-set mapping)
- Highest priority (Cisco is 0, IETF is 192) or highest IP wins
- If C-BSR receives better state it ceases own announcements
- If no better state is received it becomes Elected-BSR
- Better state may preempt existing
- ip pim bsr-candidate <if> <hash-mask-len> [<priority>]
- The best RP is not selected by the BSR. All C-RPs are flooded as RPset to all non-RPF interfaces to 126.96.36.199 with TTL=1 every 60 sec.
- (IF) ip pim bsr-border
- BSR messages are neither sent nor accepted on that interface
- Highest hash for a group range wins. If it’s the same then highest IP wins.
- Mask defines how many consecutive Gs will be hashed to one RP
- [ip pim bsr-candidate loopback 0 31] If there are two RPs, the load will be evenly distributed among them
Auto-RP offers several things that BSR does not. First, the ability to scope the RP address within a domain. This can be done by defining the time-to-live (TTL) value allowed for the Auto-RP advertisements. The reason BSR cannot do this is because BSR does not use dense-mode to disseminate RP information; PIM messages are link-local multicast messages that travel from PIM router to PIM router. Also, Auto-RP uses PIMv1 and does not require PIMv2 to function correctly like its counter-part BSR. Auto-RP is also considered by some engineer’s more stable and easier to configure.
BSR offers two main advantages over Auto-RP. First, it does not use any dense-mode groups and therefore it offers network optimization by reducing bandwidth consumption required by the flood and prune process of dense-mode. Some engineers will tell you that the bandwidth usage for these two groups is negligible and I would have to agree with them. Second, BSR is an industry standard, therefore you can have a mix of network devices without having to statically assigned your RP’s on every device. This reason is in my opinion, the main reason why you would ever choose BSR over Auto-RP. Most large networks use Cisco-only equipment for their multicast and this is why you don’t see BSR that much.
In conclusion, both BSR and Auto-RP can be used to dynamically create a g-to-RP mapping and also for redundancy, although only one RP will be active at any time. For BSR, you can configure multiple candidate RP’s per group range, and the hashing process will load-balance between C-RP’s. For Auto-RP you can have multiple RP’s per group and multiple auto-RP mapping agents as well. PIM RP’s in general have a big limitation; they only allow one RP per multicast group. The limitation is that when a source for a group starts transmitting, the adjacent edge router has to send unicast PIM Register packets to an RP. If you have multiple RP’s, only one could receive the Register packets and learn the source address. The other RP’s for the group would remain unaware of the source. One way to overcome this limitation and share RP information is by using MSDP.