A multicast BGP extension is commonly needed when you plan to exchange multicast traffic between two different administrative domains, such as different autonomous systems. To achieve this goal, you must fulfill the following tasks:

  1. Enable PIM between the two domains, to allow signaling of shared and shortest-path trees between them. PIM SM is most often used for multicast traffic exchange between different domains. Each domain usually has its own set of RPs, so you should prevent BSR/Auto-RP information from leaking between the domains. You must exchange information about active sources between the RPs in every domain. Because the RPs are separated, one domain cannot easily learn about the sources in another domain. We see in another post that MSDP is often used for this puropose.
  2. To facilitate multicast traffic forwarding, you must exchange information on routes toward the multicast sources in each domain, to allow routers performing RPF checks to do so correctly. PIM uses the unicast routing table to perform these RPF checks, so it may use routes learned via either IGP or BGP. However, BGP is most commonly used to exchange this routing information.

Thanks to Multi-Protocol BGP Extensions, you can apply different policies to multicast routes exchanged via BGP than unicast routes. Multicast has its own address family under BGP configuration, so it is easy to understand separation of policies. The prefixes under the multicast address family are interpretted the same wasy as static mroutes and used for RPF checks on the router that receives them. Unlike the mroute command, these multicast routes are propagated to every neighbor configured for the multicast address family.

R1(config)# router bgp 100
R1(config-router)# address-family ipv4 multicast
R1(config-router-af)# neighbor 155.1.0.5 activate
R1(config-router-af)# redistribute ospf 1
R1(config-router-af)# neighbor 150.1.7.7 activate
R1(config-router-af)# neighbor 150.1.7.7 next-hop-self
R1(config-router-af)# network 232.0.0.0 mask 255.255.255.0
R1(config-router-af)# exit