When implementing inter-domain multicast using PIM SM, each domain usually has its own RP. To allow sources and receivers from different domains to locate each other, RPs need to exchange the information about their local active sources. After this information is exchanged between the RPs, all routers that joined the respective shared trees may build shortest-path trees toward the actual sources.

MSDP or Multicast Source Discovery Protocol is used to exchange multicast source information between RPs. It is configured as a TCP connection between the RPs and used to exchange the so-called Source Active (SA) messages. Note that all MSDP peerings are configured manually, using the command ip msdp peer at both endpoints. With MSDP, RPs exchange information about sources in each others domains, so your group members do not have to be directly dependent on another domain’s RP (which is probably out of your control). BGP or MBGP is a requirement to run MSDP.

MSDP uses TCP (port 639) for its peering connections. As with BGP, using point-to- point TCP peering means that each peer must be explicitly configured. When a PIM DR registers a source with its RP, as shown in Figure 9-9, the RP sends a Source Active (SA) message to all its MSDP peers.

The SA contains the following:

  • Address of the multicast source
  • Group address to which the source is sending
  • IP address of the originating RP

When any RP receives a new SA message, it determines whether there are local receivers that have joined the shared tree for the encapsulated group. If there are any, the message is forwarded down the tree, allowing the receivers to learn about the sources in another domain. After that, the receivers might join the SPT toward the source in the other domain. This is only possible if the source IP address is learned via BGP or some other inter-domain route exchange procedure. Until the moment there is an active source in a domain, the respective RP will forward periodic SA messages with an empty payload to refresh the active state for this group/source in all other domains.

MSDP allows us to connect RPs in an arbitrary meshed topology, to include loops. To prevent the SA messages from cycling the topology, as a result of these loops, every MSDP peer forwards SA messages only after they pass the RPF check. The RPF check is performed based on the RP IP address (originator-ID) inside the message and the IP address of the MSDP peer that relayed the message. If the MSDP peer is on the shortest path toward the originating RP, the message is accepted; otherwise it is dropped. This RPF check requires full routing information from other domains to discover routes to other RPs. If you have a stub multicast domain, lacking full BGP information, you may use the command ip msdp default-peer to identify the upstream RP that forwards SA messages. RPF checks are not applied to default peers, and all SA messages are accepted.

R1(config)# ip pim sparse-mode
R1(config)# ip msdp peer 150.1.7.7 connect-source Loopback0 remote-as 100
R1(config)# exit

As with IBGP peering, MSDP sessions between loopback interfaces provide more resiliency if there are multiple paths to the peer.