Recommended Anycast RP Deployment for ISPs



The following Anycast RP configuration presents the actual deployment of Multicast on a Tier1 provider backbone. This represents cisco's recommendation for deploying Multicast across a large ISP or Enterprise using Anycast RPs and MSDP.

In Anycast RP, two or more RPs are configured with the same IP address on loopback interfaces. In this ISP deployment, nine routers are currently selected as Anycast RPs in a full MSDP mesh group throughout the US and Europe. Each are configured with the Anycast RP of Y.Y.Y.Y on Loopback1 interface. All other non RP routers in the network are statically configured to use Y.Y.Y.Y as their PIM-SM Rendezvous Point. Each RP has additional MSDP peerings outside the ISPs Autonomous System to their customers. One of the nine RPs has MSDP peerings with other Tier1 providers at a Multicast Exchange. MBGP is not required if unicast and multicast topology is congruent, otherwise it is necessary for different unicast/multicast paths.

The benefits of this Anycast topology are simplicity, load sharing, efficiency, and redundancy. With one global Anycast RP MSDP full mesh group, configuration and troubleshooting are relatively simple as can be seen in the configuration below.  All nine routers share the load of the duties of an RP since they serve only the routers nearest to them based upon the unicast routing. The full MSDP mesh group, between all RPs, provides efficiency by ensuring the RPs forward MSDP Source Active information to mesh group peers only if the SA was received outside the mesh group. When SAs are received from a mesh group peer, those SAs are not flooded to other members of that same mesh group (they already received them), but forwarded instead to other peers outside the mesh group. And finally, with several routers serving as the RP, for all groups, a good amount of redundancy is provided as unicast routing will ensure that the multicast forwarding of PIM joins and registers are sent to the next closest RP in the event of failure of an existing RP.

Please see the following links for more info on MSDP and Anycast RPs:

http://www.cisco.com/univercd/cc/td/doc/cisintwk/intsolns/mcst_sol/anycast.htm
http://www.cisco.com/univercd/cc/td/doc/cisintwk/intsolns/mcst_p1/mcstmsdp/mcst_p1.htm

We recommend that all RP routers are similarly configured such as:

Loopback0 is used for BGP
Loopback1 is the Anycast RP
Loopback2 is used for MSDP

One loopback is often used for both BGP and MSDP peerings. In large provider networks, however, with numerous customer MSDP peerings, it is very helpful to have a separate loopback for MSDP. This is because RPs occasionally need to be moved which means a new BGP peering address on the new RP. If that BGP address is also being used for MSDP, then all customers need to reconfigure their routers to point to the new MSDP peering address. But if a separate loopback is used specifically for MSDP, then that same address will be used on the new RP and no config change required on customers routers.

The following is the relevant portion of the configuration for one of the ISPs RPs.

hostname RP1
!
ip multicast-routing distributed
!
interface Loopback0
 ip address X.X.X.X 255.255.255.255
 ip pim sparse-mode
!
interface Loopback1
 ip address Y.Y.Y.Y 255.255.255.255
 ip pim sparse-mode
!
interface Loopback2
 ip address Z.Z.Z.Z 255.255.255.255
 ip pim sparse-mode
!
router bgp <as#>
 bgp router-id X.X.X.X
 neighbor foo peer-group nlri unicast multicast
 neighbor foo remote-as <as#>
 neighbor foo update-source Loopback0
 neighbor foo send-community
 neighbor foo version 4
 neighbor <ip address> peer-group foo
 .
 .
ip pim rp-address Y.Y.Y.Y override
ip pim accept-rp Y.Y.Y.Y
!
ip msdp peer <ip of RP2> connect-source Loopback2
ip msdp peer <ip of RP3> connect-source Loopback2
ip msdp peer <ip of RP4> connect-source Loopback2
ip msdp peer <ip of RP5> connect-source Loopback2
ip msdp peer <ip of RP6> connect-source Loopback2
ip msdp peer <ip of RP7> connect-source Loopback2
ip msdp peer <ip of RP8> connect-source Loopback2
ip msdp peer <ip of RP9> connect-source Loopback2
ip msdp peer <ip of customer> connect-source Loopback2 remote-as (as#)
.
.
ip msdp sa-filter in <ip of msdp peer> list 130
ip msdp sa-filter out <ip of msdp peer> list 130
!
ip msdp mesh-group foobar <ip of RP2>
ip msdp mesh-group foobar <ip of RP3>
ip msdp mesh-group foobar <ip of RP4>
ip msdp mesh-group foobar <ip of RP5>
ip msdp mesh-group foobar <ip of RP6>
ip msdp mesh-group foobar <ip of RP7>
ip msdp mesh-group foobar <ip of RP8>
ip msdp mesh-group foobar <ip of RP9>
!
ip msdp cache-sa-state
ip msdp originator-id Loopback2
!
access-list 130 deny   ip any host 224.0.2.2
access-list 130 deny   ip any host 224.0.1.3
access-list 130 deny   ip any host 224.0.1.24
access-list 130 deny   ip any host 224.0.1.22
access-list 130 deny   ip any host 224.0.1.2
access-list 130 deny   ip any host 224.0.1.35
access-list 130 deny   ip any host 224.0.1.60
access-list 130 deny   ip any host 224.0.1.39
access-list 130 deny   ip any host 224.0.1.40
access-list 130 deny   ip any 239.0.0.0 0.255.255.255
access-list 130 deny   ip any 232.0.0.0 0.255.255.255
access-list 130 deny   ip 10.0.0.0 0.255.255.255 any
access-list 130 deny   ip 127.0.0.0 0.255.255.255 any
access-list 130 deny   ip 172.16.0.0 0.15.255.255 any
access-list 130 deny   ip 192.168.0.0 0.0.255.255 any
access-list 130 permit ip any any
 

last update 10/4/2001 mmcbride