Using MSDP to Discover External Sources
Problem
You want to use MSDP to discover information about multicast sources in other Autonomous Systems.
Solution
The typical way to configure Multicast Source Discovery Protocol (MSDP) involves first selecting one of your MBGP routers as the RP for your internal network. Then you set up an MSDP peer relationship with the RP in another Autonomous System, which is usually an MBGP peer router in the next domain. The following configuration includes commands required to configure the router as an RP for the internal network using BSR, as discussed in Recipe 23.2, although you could just as easily use Auto-RP. It also includes configuration to prevent local multicast traffic from leaking into the neighboring network, as discussed in Recipes 23.14 and 23.15. And it includes MBGP configuration as in Recipe 23.16:
Router-ASBR1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router-ASBR1(config)#ip multicast-routing
Router-ASBR1(config)#interface Loopback0
Router-ASBR1(config-if)#ip address 192.168.12.1 255.255.255.255
Router-ASBR1(config-if)# ip pim sparse-mode
Router-ASBR1(config-if)#interface FastEthernet0/0
Router-ASBR1(config-if)#ip address 192.168.1.1 255.255.255.0
Router-ASBR1(config-if)#ip pim sparse-mode
Router-ASBR1(config-if)#exit
Router-ASBR1(config)#interface Serial1/0
Router-ASBR1(config-if)#ip address 192.168.2.5 255.255.255.252
Router-ASBR1(config-if)#ip multicast boundary 15
Router-ASBR1(config-if)#ip multicast ttl-threshold 64
Router-ASBR1(config-if)#ip pim sparse-mode
Router-ASBR1(config-if)#exit
Router-ASBR1(config)#ip pim rp-candidate loopback0
Router-ASBR1(config)#ip pim bsr-candidate loopback0 1
Router-ASBR1(config-if)#router bgp 65530
Router-ASBR1(config-router)#network 10.0.0.0 mask 255.0.0.0
Router-ASBR1(config-router)#neighbor 192.168.2.6 remote-as 65531
Router-ASBR1(config-router)#address-family ipv4 multicast
Router-ASBR1(config-router-af)#neighbor 192.168.2.6 activate
Router-ASBR1(config-router-af)#exit
Router-ASBR1(config-router)#exit
Router-ASBR1(config)#ip msdp peer 192.168.2.6
Router-ASBR1(config)#ip msdp sa-request 192.168.2.6
Router-ASBR1(config)#access-list 15 deny 239.0.0.0 0.255.255.255
Router-ASBR1(config)#access-list 15 deny 224.0.1.39
Router-ASBR1(config)#access-list 15 deny 224.0.1.40
Router-ASBR1(config)#access-list 15 permit any
Router-ASBR1(config)#end
Router-ASBR1#
Discussion
This is a rather long example, but most of the information here is discussed in earlier recipes. The important lines are just the two ip msdp commands:
Router-ASBR1(config)#ip msdp peer 192.168.2.6
Router-ASBR1(config)#ip msdp sa-request 192.168.2.6
This tells the router that it is to send Source Active (SA) messages to this peer device whenever it sees new multicast sources, and requests that the peer device do the same. The peer must also be configured with similar commands to ensure that it exchanges information about its multicast sources with this router.
You can configure several MSDP peers, but if you do, one of them should be configured as the default as follows:
Router-ASBR1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router-ASBR1(config)#ip msdp peer 192.168.2.6 connect-source Loopback0
Router-ASBR1(config)#ip msdp sa-request 192.168.2.6
Router-ASBR1(config)#ip msdp default-peer 192.168.3.6 connect-source Loopback0
Router-ASBR1(config)#ip msdp sa-request 192.168.3.6
Router-ASBR1(config)#end
Router-ASBR1#
Even though MSDP will allow the routers to exchange information about active sources and groups, it does not include the ability to Join and Prune SPTs for different multicast groups. So, for this reason, we have also configured PIM-SM on the connection to the peer router. As an alternative, if you don't want to exchange PIM information with the neighboring network, you could treat it as a stub network and use PIM neighbor filters, as shown in Recipe 23.4.
This multi-peer example shows how to specify a particular source address for this router. In this case, MSDP will use the address of the Loopback0 interface.
You can also apply filters to both the sources and groups that you want to receive or distribute to another network with the ip msdp sa-filter command:
Router-ASBR1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router-ASBR1(config)#ip msdp sa-filter in 192.168.2.6 list 101
Router-ASBR1(config)#ip msdp sa-filter out 192.168.2.6 list 102
Router-ASBR1(config)#access-list 101 permit any 225.0.0.0 0.255.255.255
Router-ASBR1(config)#access-list 101 permit 10.0.0.0 0.255.255.255 any
Router-ASBR1(config)#access-list 101 deny any any
Router-ASBR1(config)#end
Router-ASBR1#
For more information on MSDP, please refer to the RFC 3618.