Interdomain Multicast (PIM-SM)
PIM-SM was developed for intradomain operation. If two separate ASs want to route multicast traffic between their domains, they must use MSDP (Multicast Source Discovery Protocol) in order to solve an issue with source discovery.
The inherent issue with interdomain multicast is that an AS should have control over its own RPs. It does not want its internal routers to use the RP of remote domains. This poses a problem when it comes to source discovery. In intradomain PIM-SM, the FHR will Register the source with its RP. In interdomain PIM-SM, we need another mechanism to do source registration, because we don’t want all FHRs to use an RP in another domain.
With MSDP, the RPs in each domain peer with each other. When an RP sees a PIM Register, it sends a SA (Source Active) message to all MSDP peers to notify them of this source. This allows the other RP(s) to create a SPT rooted at this source and pull in the traffic over the interdomain boundary. In effect, the SA replaces the PIM Register, and in fact the multicast traffic is encapsulated in the SA message just like in a PIM Register message. The SA message is sent every 60 seconds while the source continues to be active to keep the entry from timing out on remote RPs.
MSDP uses TCP port 639. It functions sort of like a "lite" version of BGP. Peers are explicitly configured and maintained via keepalives.
In addition to MSDP, you can optionally use MP-BGP to exchange reachability information of sources over the domain boundry. The AFI is ipv4 multicast. The prefixes of the sources are advertised, allowing other routers in the domain to create a (S, G) SPT rooted at a source in another domain. The prefixes learned over ipv4 multicast are used for the RPF check. These prefixes are not present in the unicast RIB, instead they are present in a separate mcast table. Using MP-BGP is not required for interdomain multicast to work. As long as a route to the source is present, traffic will work. The RPF check can use either the unicast table or mcast table (which is populated via BGP).
This article will cover interdomain PIM-SM. Interdomain PIM-SSM is a much easier alternative, as you don’t need to run MSDP because RPs are not required in the first place. You simply must have reachability to the sources in order for PIM-SSM to work.
Lab
We will use the following topology. Domain 1 runs OSPF and Domain 2 runs ISIS. Configure R3 and R6 as the RP for their domains using BSR.

Here are the startup configs:
Both Host1 and Host2 have joined the group 239.1.1.1. However, traffic from Source1 is only reaching Host1 right now.
In order for Host2 to receive the traffic, we must do two things:
Advertise routes for the RPs and sources into each domain via eBGP at the ASBRs (R4 and R5)
Configure MSDP peering between the two RPs
First we’ll enable eBGP between R4 and R5 and advertise the RP and Source prefixes. Configure R3 and R6 to be the RR in each domain.
Next we need to configure R3 and R6 as MSDP peers. This configuration is quite simple. The connect-source is analgous to BGP update-source.
Confirm the MSDP session is up:
Begin sending multicast traffic again at Source1. When R3 learns the source, it will send a Source Active message to R6. R6 will then join a (S, G) tree to the source. This is the same process as intradomain multicast, but the source just happens to be in a different domain.
Here is the MSDP SA message sent from R3 to R6. Notice that the multicast packet is encapsulated in the SA message. This is similar to a PIM Register, except the peer will never send a “stop” message.

Why don’t we see replies from Host2 right now? R6 has joined an (S, G) tree rooted at Source1 (output below). Shouldn’t this be working?
Spend a few minutes troubleshooting on your own before scrolling down to see the answer.
Here’s a hint, take a look at R5’s mroute table:
There is no RPF neighbor for (10.10.10.10, 239.1.1.1). This is because R4 and R5 are not running PIM. This is an important point about interdomain multicast. The ASBRs must run PIM with eachother. Configure PIM sparse-mode on the interfaces connecting R4 and R5.
Traffic is now reaching Host2 as well:
We have one issue though. Examine the RP mappings on R1 and R7.
Both routers are learning the other domain’s RP information. In fact, R1 is currently using R6 as an RP! (It wins due to highest IP address). How did this happen? When we configured PIM between R4 and R5, the BSR messages leaked to each domain. To fix this we need to configure Gi2 on each router as the BSR boundary.
Wait a few minutes and the inter-domain RP mappings should time out on each router.
Using MP-BGP
Currently the route for Source1 (10.10.10.0/24) is present in the unicast RIB of all routers in domain 2.
If this is not desirable, you can exchange this route over BGP ipv4 multicast instead of BGP ipv4 unicast. This will remove the prefix from the unicast routing table, but still allow the route to be used for the RPF check.
Using BGP ipv4 multicast can also be a traffic engineering technique. Perhaps you want one interdomain link to be used for multicast and another interdomain link for unicast traffic. You can configure separate peering sessions over each link in order to have greater control.
Let’s configure an ipv4 multicast session between R4 and R5 and advertise the source prefix over this session. We will also need to run the ipv4 multicast AFI on the internal routers in domain 2.
The prefix is now gone from the RIB, but the RPF check can still work by using the mcast BGP table.
It is important to realize that the BGP mcast table is only used for RPF checks based on mutlicast sources. You do not advertise any multicast group addresses (224/4) into BGP. The RPF check is not actually used for forwarding traffic. It is used in order to have a usable upstream interface to create a (S, G) tree. The traffic then flows down this tree. (Traffic arrives from the source. Traffic is not sent to the source. We need a route to the source to do an RPF check though.)
Traffic from Source1 will still arrive at Host2, however Domain2 no longer has a unicast route back to the source, so the pings time out. But multicast traffic is nevertheless working.
R7 sends a host unreachable to Host2 because 10.10.10.0/24 is no longer in the unicast RIB
Conclusion
Interdomain multicast requires either PIM-SSM (which is the simplest deployment) or PIM-SM with MSDP. MSDP (Multicast Source Discovery Protocol) allows an RP to discover a source in another domain. When a source goes active, the RP local to the source’s domain sends a Source Active message to all other MSDP peers. This allows the RPs in other domains to discover the source just as in a PIM Register message. The RPs, if they have state for the matching (*, G) shared tree, join a (S, G) tree rooted at the source in order to “pull in” the traffic.
Interdomain multicast also requires routes to sources in other domains in order to pass the RPF check. This can be done using unicast routes, or by running BGP for the ipv4 multicast AFI. Additionally, you must run PIM on the ASBRs at the interdomain link. Be sure to take precaution that these routers do not leak RP information.
Last updated