Configuring Multiple RPs in a PIM-SM Domain with Anycast RP

Problem

Your PIM-SM domain has multiple RPs. When you use PIM bootstrap or auto-RP to establish RPs, PIM maps each group to a single RP, but you want to deploy more than one RP for a single group range.

Solution

Configure anycast RP on each RP router in the PIM-SM domain. First, configure the shared anycast address on the routers loopback interface:

[edit interfaces] aviva@RouterA# set lo0 unit 0 family inet address 10.0.1.1/32

Also, make sure that the routers regular loopback address is the primary address for the interface:

[edit interfaces] aviva@RouterA# set lo0 unit 0 family inet address 192.168.13.1/32 primary

When you configure the local RP address, use the shared address:

[edit protocols pim] aviva@RouterA# set rp local address 10.0.1.1

Then, create MSDP sessions to the other RPs in the domain:

[edit protocols msdp] aviva@RouterA# set local-address 192.168.13.1 aviva@RouterA# set peer 192.168.12.1

When you are configuring all the other non-RP PIM routers, configure a static RP using the shared address:

[edit protocols pim] aviva@RouterG# set rp static address 10.0.1.1

Discussion

Anycast RP is probably the simplest and most redundant way to distribute RP-to-group mapping information among the PIM routers in a domain. Anycast lets you configure multiple routers to be RPs for the same group range, and traffic for all groups served by the RPs is load-balanced across the multiple RP routers. With other methods for setting up RPs, only a single RP is active at one time. If the active RP fails, the convergence time to elect another RP can be slow if you are using auto-RP or bootstrap, and it is even slower if you have to manually reconfigure the RP. Anycast RP significantly improves the convergence time over both auto-RP and bootstrap.

Anycast RP uses a shared anycast address across all the RP routers in the PIM-SM domain. This recipe uses 10.0.1.1/32 as the shared anycast address. To start the configuration of the RP routers, assign the shared address to the routers loopback address on each RP router. This address is not the primary lo0 address but is an additional address for lo0.

To make sure that BGP and OSPF use the main lo0 address as the router ID, include the primary keyword with that address in addition to explicitly configuring the router ID with the set routing-options router-id command. In this recipe, the primary address is 192.168.13.1, and the following command adds the primary keyword:

[edit interfaces] aviva@RouterA# set lo0 unit 0 family inet address 192.168.13.1/32 primary

Check to make sure that both addresses are configured on the lo0 interface and that 192.168.13.1 is marked as the primary address:

[edit interfaces] aviva@RouterA# show lo0 unit 0{ family inet { address 192.168.13.1/32 { primary; } address 10.0.1.1/32; } }

Also, check that the router ID is set:

[edit routing-options] aviva@RouterA# show router-id 192.168.13.1

As the next step in configuring the RP routers, use the shared anycast address as the local address when configuring the RP routers. Verify that all the RP routers have the same configuration:

[edit protocols pim] aviva@RouterA# show rp local { address 10.0.1.1; }

The RPs in the PIM-SM domain use MSDP to discover each other and share information and to maintain a consistent view of the active sources. To set up MSDP on each RP, configure the address of the local routers loopback address and the addresses of the other RPs in the domain. This recipe shows the configuration on RouterA (local loopback address of 192.168.13.1)in a domain that has only one other RP, RouterB (loopback address of 192.168.12.1):

[edit protocols] aviva@RouterA# show msdp local-address 192.168.13.1; peer 192.168.12.1;

Because anycast RP works in conjunction with an RP election method, you must also configure static, auto-RP, or bootstrap RPs on the appropriate PIM routers. This recipe uses static RP configuration, so you must configure the address of the RP on each of the non-RP routers. Here, you use the shared RP address, not the address of one of the routers primary loopback interfaces. Heres what the configuration looks like on the non-RP RouterG:

aviva@RouterG> show configuration protocols pim rp { static { address 10.0.1.1; } } interface all; interface fe-0/0/0.0 { disable; }

Check to see which RPs the various routers have learned about. Lets start with one of the RPs, RouterA:

aviva@RouterA> show pim rps extensive inet Instance: PIM.master Address family INET RP: 10.0.1.1 Learned via: static configuration Time Active: 21:46:08 Holdtime: 0 Device Index: 130 Subunit: 32769 Interface: pd-0/0/0.32769 Group Ranges: 224.0.0.0/4 Active groups using RP: 224.2.127.254 224.1.1.1 224.0.1.40 224.0.1.39 total 4 groups active

The RP line shows that the shared address 10.0.1.1 is the RP for the group ranges 224.0.0.0/4. The output shows that four groups are actively using this RP. Looking on the other RP router, you see that it also lists the shared address as the RP for the group 224.0.0.0/4:

aviva@RouterB> show pim rps extensive inet Instance: PIM.master Address family INET RP: 10.0.1.1 Learned via: static configuration Time Active: 21:48:42 Holdtime: 0 Device Index: 130 Subunit: 32769 Interface: pd-0/0/0.32769 Group Ranges: 224.0.0.0/4

Currently, no groups are using RouterB as the RP. As further verification, look at RouterG, one of the non-RP routers:

aviva@RouterG> show pim rps Instance: PIM.master Address family INET RP address Type Holdtime Timeout Active groups Group prefixes 10.0.1.1 static 0 None 4 224.0.0.0/4

This router has also learned that the shared address 10.0.1.1 is the RP.

See Also

Recipes 16.2, 16.3, and 16.4

Категории