Making Sense of Data Center Multicast: ASM, SSM, BSR, and Anycast-RP
Relearning all the different Multicast methods that are built in Protocol Independent Multicast (PIM) has made me reflect on the different mechanisms that are part of multicast. Below are the key basic concepts that you'll need to remember.
- ASM - Any-Source Multicast
- SSM - Source-Specific Multicast
- BSR - Bootstrap Router
- Anycast-RP - Anycast Rendezvous Point (RP)
ASM

Any-Source Multicast is a method that routers use to learn about multicast advertisements from any-source. The routers don't care where that traffic originally came from. They want the advertisement within that group, so they'll get that information. In this configuration you'll need a Rendezvous Point, which will be a central router that has all the Multicast Group Sources built. This will be within the PIM Table. You can choose to manually configure the Rendezvous Point or you can choose to elect a Bootstrap Router that will elect the RP. I discuss the auto election in the BSR section.
SSM

Source Specific Multicast uses (S,G) which stands for Source and Group to build a shortest path tree directly to each of the sources within the PIM Table. SSM requires IGMPv3 (Internet Group Management Protocol) because SSM requires receivers to specify the source of the multicast traffic. In large environments each router needs to know the state of each (S,G) within the PIM table. This is not scalable because SSM uses PIM to determine the shortest-path back to the source. Your devices will have to recalculate and build this information in the PIM table every time there is a new source introduced to the environment. There are benefits to SSM with each of the receivers knowing the shortest-path back to the source of the multicast traffic, but other benefits such as redundancy become a moot point when looking at other protocols such as Anycast-RP.
BSR
Bootstrap Router solves the problem within ASM in which you'll need to statically set the RPs for each group. This was a limitation before BSR was introduced within RFC 5059. BSR has two different concepts: C-BSR (Candidate-BSR) and C-RP (Candidate-RP). The C-RP is used by the routers to determine who is the RP for a particular group, which you could list as a specific group or have it set for 224.0.0.0/4 which is the whole multicast address space. The BSR collects the information from all the C-RP unicast messages and then sends this to all the PIM enabled routers hop-by-hop via Bootstrap Messages (BSMs). This is how the PIM routers will learn who is the RP for each specific group.
Anycast-RP

Anycast-RP is used the most within Data Centers today. This approach, which was introduced in RFC 4610, helped PIM to have additional redundancy within a multicast network which is critical for the go-to architecture of EVPN VXLAN within the Data Center, which I'll write more about in future blogs. When you're configuring PIM-SM you'll have a set of RPs per group, but you have to deal with where to place the RPs within the network and failure domains if there are issues with either routing to that RP or device failure. With Anycast-RP you'll have one IP Address for an Anycast-RP, or what's called an RP-Set. The RPs will sync with all the other RPs within the RP Set. The syncing is done via inter-RP communication from another IP Address on the router, so that all the RPs have the same (S,G) for the different multicast groups within the environment. This is an important aspect because you can have an RP failure and the other RPs in the environment will take its place.
Now why are we talking about Multicast so much? Isn't Multicast a Campus technology? That's a great question! Multicast is used widely within VXLAN for Broadcast, Unknown Unicast, and Multicast (BUM) traffic. With the new revision of Anycast-RP not using MSDP (Multicast Source Discovery Protocol) and moving towards PIM Register as the primary mechanism to maintain Rendezvous Point groupings, this makes deployment of this feature in the Data Center more feasible as a Control Plane protocol. RP Sets can be used by Spine/Leaf switches as a mechanism to communicate with one another, with all of them having the Anycast-Gateway functionality. Multicast is used for BUM Data Plane (Broadcast, Unknown Unicast, Multicast) which is how information is shared within the EVPN VXLAN Fabric. I will be making another blog post (well multiple let's be honest) to go in depth of the different components of an EVPN VXLAN Fabric.