Anycast RP

Anycast RP is an application of MSDP (Multicast Source Discovery Protocol) that allows multiple RPs to operate simultaneously in a PIM-SM domain. Without anycast RP, multiple routers can be configured as candidate RPs, but at any point in time, only one router can serve as RP. Because anycast RP allows multiple RPs to be simultaneously active, anycast RP provides both load sharing and redundancy, as each RP serves the receivers that are closest to it in the network and can take over for additional receivers if another RP fails.

In an anycast RP topology, all RPs in a PIM-SM domain are configured with the same IP address on a loopback VLAN (Virtual LAN). The loopback VLAN IP address should have a 32-bit mask, so that it specifies a host address. All the routers within the PIM-SM domain select the nearest RP for each source and receiver. If the senders and receivers within the PIM-SM domain are distributed evenly, the number of senders that register with each RP is approximately equal.

Another requirement of the anycast RP topology is that MSDP must run on all RPs in the PIM-SM domain, so all RPs are also MSDP peers. We recommend that you configure an MSDP mesh connection between all MSDP peers in the domain.

Whenever any multicast source becomes active, this information is sent in an MSDP SA message to the other MSDP peers in the domain, announcing the presence of the source. If any RP within the domain fails, the IP routing protocol mechanism ensures that next available RP is chosen. If a sender registers with one RP and a receiver joins another RP, the information shared through MSDP enables PIM-SM to establish an SPT between the receiver and the source.

Note

Note

We recommend that you configure anycast RP peers in a mesh topology.
The exchange of information in an anycast RP process works as follows:
  • When the first-hop router sends a PIM Register message to the nearest RP, the PIM router checks to see if the nearest RP is the RP for the group.
  • If the nearest RP is the RP for the group, an MSDP SA message is created and forwarded to the other MSDP peers.
  • The MSDP SA message includes the configured originator ID, which is a mandatory configuration component.
  • Each remote peer checks the RPF of the originator ID address and informs the PIM process on that remote router about active multicast sources.
  • Remote receivers get data packets through the remote shared tree, and can then switch over to the SPT by sending join messages directly towards the source.

To configure anycast RP, do the following at each anycast RP router:

  1. Create and configure a loopback VLAN using the commands:

    create vlan vlan_name {tag tag } {description vlan-description } {vr name }

    enable loopback-mode vlan vlan_name

  2. Assign the anycast RP address to the loopback VLAN with a 32 bit subnet mask using the command:
    configure {vlan} vlan_name ipaddress [ipaddress {ipNetmask} | ipv6-link-local | {eui64} ipv6_address_mask]
    Note

    Note

    The anycast RP address must be unique to the loopback VLAN and be the same on all anycast RP peers. It must not match the router IP address, the PIM BSR address, or any other IP addresses used by the router or any other network devices.
  3. Enable IP forwarding and IP multicast forwarding on the loopback VLAN using the commands:

    enable ipforwarding {ipv4 | broadcast} {vlan vlan_name}

    enable ipmcforwarding {vlan name}

  4. Add the loopback VLAN into the unicast routing domain using the appropriate command for your unicast routing protocol:

    configure ospf add vlan vlan-name area area-identifier link-type [auto | broadcast | point-to-point] {passive}

    configure rip add vlan [vlan_name | all]

    configure isis add [vlan all | {vlan} vlan_name] area area_name {ipv4 | ipv6}

  5. Add the loopback VLAN into the PIM-SM domain and configure it as an RP using the commands:

    configure pim {ipv4 | ipv6} add vlan [vlan-name | all] {dense | sparse} {passive}

    configure pim {ipv4 | ipv6} crp static ip_address [none | policy] {priority [0-254]}

  6. Enable MSDP and establish a peering relationship with similar anycast RP neighbors using the commands:

    create msdp peer remoteaddr {remote-as remote-AS} {vr vrname}

    configure msdp peer [remoteaddr | all] password [none | {encrypted} tcpPassword] {vr vrname}

    configure msdp peer remoteaddr description {peer-description} {vr vrname}

    enable msdp [{peer} remoteaddr | peer all] {vr vr_name}

    enable msdp {vr vrname}

  7. Configure a unique originator ID for each anycast RP peer using the command:
    configure msdp originator-id ip-address {vr vrname}