Case Study Configuring AutoRP

In a stable PIM domain, static configuration of the RP is straightforward. As new routers are added, they are configured with the location of the RP or RPs. Static RP configuration becomes a problem under two circumstances:

• The address of the RP must be changed, either on the existing RP or because a new RP is being installed. The network administrator must change the static configurations on all PIM routers, which in a large domain can involve significant downtime.

• The RP fails. A statically configured PIM domain cannot easily handle a failover to an alternate RP.

Therefore, in all but the smallest PIM domains, the use of one of the two automatic RP discovery mechanisms, Auto-RP or bootstrap, is recommended for both ease of management and better redundancy. This case study demonstrates Auto-RP, and a following case study demonstrates the bootstrap protocol.

As discussed in Chapter 5, Auto-RP is a Cisco-proprietary protocol developed before the bootstrap protocol was proposed as part of PIMv2. Auto-RP must be used with any Cisco IOS Software Release prior to Release 11.3, in which PIMv2 is first supported.

Two steps are required to configure basic Auto-RP:

1 All candidate-RPs must be configured.

2 All mapping agents must be configured.

Candidate RPs (C-RPs) are configured by the ip pim send-rp-announce command. When you enter this command, you specify the interface from which the router takes its RP address, and a TTL value that is added to the advertisement messages. The TTL provides scoping so that packets do not travel outside the boundaries of the domain. When a router is configured as a candidate RP, it begins sending RP-Announce messages to the reserved address 224.0.1.39 every 60 seconds.

The mapping agent listens for RP-Announce messages from the C-RPs and selects the RPs. It then advertises the RPs to the rest of the PIM domain in RP-Discovery messages, sent to the reserved address 224.0.1.40 every 60 seconds.

Figure 6-5 shows a sample topology. Here, routers Stetson and Fedora are candidate RPs with addresses 10.224.1.1 and 10.224.1.2, respectively. Porkpie is the mapping agent, with an identifying address of 10.224.1.3.

Figure 6-5 Stetson and Fedora Are Candidate RPs, and Porkpie Is the Mapping Agent

Fedora

Homburg % C-RP

Figure 6-5 Stetson and Fedora Are Candidate RPs, and Porkpie Is the Mapping Agent

Fedora

Homburg % C-RP

10.1.2.113/24 Member, Group 228.13.20.216

Example 6-23 shows the relevant parts of Fedora's configuration.

Example 6-23 Configuring Fedora as a Candidate RP

interface LoopbackO ip address 10.224.1.2 255.255.255.255

ip pim send-rp-announce LoopbackO scope 5

Stetson's configuration is similar. The RP address is taken from interface L0, and the scope keyword sets the TTL of the originated RP-Announce messages.

Example 6-24 shows the configuration establishing Porkpie as a mapping agent.

Example 6-24 Establishing Porkpie as a Mapping Agent interface Loopback0 ip address 10.224.1.3 255.255.255.255 ip pim sparse-mode

ip pim send-rp-discovery LoopbackO scope 5

Again, LO is used to derive the mapping agent address, and the TTL is set to 5. In the configuration in Example 6-24, notice that PIM-SM must be configured on the loopback interface. This must be performed on the mapping agents; if you fail to enable PIM-SM on the interface first, you will get an error message like the one in Example 6-25.

Example 6-25 Failing to Enable PIM-SM on a Mapping Agent's Loopback Interface Results in an Error Message

Porkpie(config)#ip pim send-rp-discovery Loopback© scope 5

Non PIM interface ignored in accepted command. Porkpie(config)#

The resulting configuration statement will look like the following:

ip pim send-rp-discovery scope 5

The interface specified was not accepted, and as a result, the mapping agent does not work. Unlike mapping agents, PIM does not have to be configured on the loopback interface of a C-RP. Of course, on both mapping agents and C-RPs, PIM-SM must still be configured on all physical interfaces connected to PIM neighbors.

When a Cisco router is first configured with PIM-SM, it begins listening for the address 224.0.1.40. If changes have to be made to either the C-RPs or the mapping agents, the changes are automatically advertised by the changed device, and the routers throughout the domain learn of the change. Perhaps the most important feature, however, is that you can configure multiple RPs for any or all groups. The mapping agent chooses the RP for a group based on the highest RP address. If that RP fails, the mapping agent selects the next-highest qualifying RP and advertises that.

Example 6-26 shows an example of an RP failover. Here, debug ip pim auto-rp is used to display all Auto-RP activity. You can see that Porkpie, the mapping agent in Figure 6-5, is receiving RP-Announce messages from both Stetson (10.224.1.1) and Fedora (10.224.1.2). Because Fedora has the higher IP address, it is being advertised to the domain as the RP for all multicast groups (224.0.0.0/4). After the first reception of RP-Announce messages from Fedora, that router fails. When Porkpie has not heard another RP-Announce message from Fedora within 180 seconds (3 times the announcement interval), it declares the RP dead, selects Stetson as the new RP, and begins advertising the new RP. That sequence of events is highlighted at the bottom of the Debug messages.

Example 6-26 Debugging Is Used to Observe an RP Failover at the Mapping Agent in Figure 6-5

Porkpie#debug ip pim auto-rp

PIM Auto-RP debugging is on Porkpie#

Auto-RP: Received RP-announce, from 10.224.1.1, RP_cnt 1, ht 181 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.1), PIMv2 v1 Auto-RP: Received RP-announce, from 10.224.1.1, RP_cnt 1, ht 181 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.1), PIMv2 v1

Example 6-26 Debugging Is Used to Observe an RP Failover at the Mapping Agent in Figure 6-5 (Continued)

Auto-RP: Received RP-announce, from 10.224.1.2, RP_cnt 1, ht 181 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.2), PIMv2 v1 Auto-RP: Received RP-announce, from 10.224.1.2, RP_cnt 1, ht 181 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.2), PIMv2 v1 Auto-RP: Build RP-Discovery packet

Auto-RP: Build mapping (224.0.0.0/4, RP:10.224.1.2), PIMv2 v1, Auto-RP: Send RP-discovery packet on Lookback© (1 RP entries) Auto-RP: Send RP-discovery packet on Serial1.605 (1 RP entries) Auto-RP: Send RP-discovery packet on Serial1.609 (1 RP entries) Auto-RP: Send RP-discovery packet on Ethernet© (1 RP entries) Auto-RP: Received RP-announce, from 10.224.1.1, RP_cnt 1, ht 181 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.1), PIMv2 v1 Auto-RP: Received RP-announce, from 10.224.1.1, RP_cnt 1, ht 181 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.1), PIMv2 v1 Auto-RP: Build RP-Discovery packet

Auto-RP: Build mapping,(224.0.0.0/4, RP:10.224.1.2), PIMv2 v1, Auto-RP: Send RP-discovery packet on Loopback© (1 RP entries) Auto-RP: Send RP-discovery packet on Serial1.609 (1 RP entries) Auto-RP: Send RP-discovery packet on Ethernet0 (1 RP entries) Auto-RP: Received RP-announce, from 10.224.1.1, RP_cnt 1, ht 181 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.1) Auto-RP: Received RP-announce, from 10.224.1 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.1) Auto-RP: Build RP-Discovery packet

Auto-RP: Build mapping (224.0.0.0/4, RP:10.224.1.2), PIMv2 v1, Auto-RP: Send RP-discovery packet on Loopback© (1 RP entries) Auto-RP: Send RP-discovery packet on Serial1.609 (1 RP entries) Auto-RP: Send RP-discovery packet on Ethernet© (1 RP entries) Auto-RP: Received RP-announce, from 10.224.1.1, RP_cnt 1, ht 181 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.1), PIMv2 v1 Auto-RP: Received RP-announce, from 10.224.1.1, RP_cnt 1, ht 181 Auto-RP: Update (224.0.0.0/4, RP:10.224.1.1), PIMv2 v1 Auto-RP: Mapping (224,0.0.0/4, RP:10.224.1.2) expired, Auto-RP: Build RP-Discovery packet

Auto-RP: Build mapping (224.0.0.0/4, RP:10.224,1.1), PIMv2 v1, Auto-RP: Send RP-discovery packet on Loopback© (1 RP entries) Auto-RP: Send RP-discovery packet on Serial1.609 (1 RP entries) Auto-RP: Send RP-discovery packet on Ethernet© (1 RP entries)

Porkpie#

PIMv2 v1 1, RP_cnt 1, ht 181 PIMv2 v1

In Example 6-27, the show ip pim rp command is used at Bowler to display the groups that router is receiving for, and the RP that the group is mapped to. The first display is taken before Fedora fails, and shows that all groups are mapped to its RP address. The second display, taken after Fedora fails and the mapping agent advertises the new RP, shows that all groups are now mapped to Stetson.

Example 6-27 Before Fedora Fails, All of Bowler's Groups Are Mapped to That RP (10.224.1.2); After the Failure, Bowler's Groups Are Remapped, Based on Information from the Mapping Agent, to Stetson (10.224.1.1)

Bowler#show ip pim rp

Group: 239.255.255.254, RP: 10.224.1.2, v2, v1, uptime 00:08:07, expires 00:04:26 Group: 228.13.20.216, RP: 10.224.1.2, v2, v1, uptime 00:08:08, expires 00:04:26 Group: 224.2.127.254, RP: 10.224.1.2, v2, v1, uptime 00:08:07, expires 00:04:26 Group: 230.253.84.168, RP: 10.224.1.2, v2, v1, uptime 00:08:07, expires 00:04:26 Bowler#

Bowler#show ip pim rp

Group: 239.255.255.254, RP: 10.224.1.1, v2, v1, uptime 00:03:46, expires 00:02:56 Group: 228.13.20.216, RP: 10.224.1.1, v2, v1, uptime 00:03:46, expires 00:02:56 Group: 224.2.127.254, RP: 10.224.1.1, v2, v1, uptime 00:03:46, expires 00:02:56 Group: 230.253.84.168, RP: 10.224.1.1, v2, v1, uptime 00:03:46, expires 00:02:56 Bowier#

To change the 60-second default interval at which a C-RP sends RP-Announce messages, add the interval keyword to the ip pim send-rp-announce command. For example, the following causes Fedora to send RP-Announce messages every 10 seconds:

ip pim send-rp-announce Loopback0 scope 5 interval 10

The holdtime, the interval a mapping agent waits to hear an RP-Announce message from a C-RP, is always 3 times the announcement interval. So the result of the preceding command is to shorten the failover time of Fedora to 30 seconds, at the cost of 6 times as many RP-Announce messages originated by the router.

A C-RP advertises, in its RP-Announce messages, the groups for which it can act as the RP. The default is to announce 224.0.0.0/4, which represents all multicast groups. As with static RPs in the preceding case study, however, you will sometimes want to map different groups to different RPs. Suppose, for example, you want all groups 224.0.0.0 through 231.255.255.255 (224.0.0.0/5) to be mapped to Stetson, and all groups 232.0.0.0 through 239.255.255.255 (232.0.0.0/5) to be mapped to Fedora. The C-RP configurations of those two routers then look like Example 6-28.

Example 6-28 Configuring Stetson and Fedora as C-RPs

Stetson ip pim send-rp-announce Loopback0 scope 5 group-list 20 i access-list 20 permit 224.0.0.0 7.255.255.255

Fedora ip pim send-rp-announce Loopback0 scope 5 group-list 30

access-list 30 permit 232.0.0.0 7.255.255.255

The group-list keyword ties the ip pim send-rp-announce statement to an access list. The access list then describes the groups for which router can become the RP. Example 6-29 shows the results at Bowler, after mapping agent Porkpie has advertised the RPs according to the constraints in their RP-Announce messages. 239.255.255.254 is mapped to Fedora, while the other three groups, all of whose addresses fall within the 224.0.0.0/5 range, are mapped to Stetson.

Example 6-29 Bowler's Group-to-RP Mappings, Showing the Constraints Configured at Stetson and Fedora Bowler#show ip pim rp

Group: 239.255.255.254, RP: 10.224.1.2, v2, v1, uptime 00:04:25, expires 00:02:56 Group: 228.13.20.216, RP: 10.224.1.1, v2, v1, uptime 00:11:05, expires 00:03:57 Group: 224.2.127.254, RP: 10.224.1.1, v2, v1, uptime 00:11:05, expires 00:03:57 Group: 230.253.84.168, RP: 10.224.1.1, v2, v1, uptime 00:11:05, expires 00:03:57 Bowler#

Suppose you also want groups 228.13.0.0 through 228.13.255.255 to be mapped to Fedora. The configuration for router Fedora would then look like Example 6-30.

Example 6-30 Configuring Fedora as the C-RP for Groups 228.13.0.0 through 228.13.255.255

ip pim send-rp-announce LoopbackO scope 5 group-list 30 i access-list 30 permit 232.0.0.0 7.255.255.255 access-list 30 permit 228.13.0.0 0.0.255.255

Example 6-31 shows the result at Bowler. Note that Stetson's configuration has not changed. That C-RP is announcing 224.0.0.0/5 as its permitted group range, which includes 228.13.0.0/16. The mapping agent now has two C-RPs for groups in the 228.13.0.0/16 range and has chosen Fedora because its IP address is higher.

Example 6-31 Multicast Group 228.13.20.216, Which Was Mapped to RP 10.224.1.1 in Example 6-29, Is Now Mapped to RP 10.224.1.2

Bowler#show ip pim rp

Group: 239.255.255.254, RP: 10.224.1.2, v2, v1, uptime 00:01:43, expires 00:04:16 Group: 228.13.20.216, RP: 10.224.1.2, v2, v1, uptime 00:01:43, expires 00:04:16 Group: 224.2.127.254, RP: 10.224.1.1, v2, v1, uptime 00:36:05, expires 00:02:47 Group: 230.253.84.168, RP: 10.224.1.1, v2, v1, uptime 00:36:05, expires 00:02:47 Bowler#

Several variants of the show ip pim rp command enable you to observe group-to-RP mappings. The command in its basic form, as used in the previous few examples, shows you only the active groups on a router and the RP to which each group address is matched. To observe the full range of groups that may be matched to an RP, use show ip pim rp mapping, as demonstrated in Example 6-32.

Example 6-32 Through the Reception of RP-Discovery Messages from the Mapping Agent 10.224.1.3, Bowler Has Mapped Three Ranges of Multicast Group Addresses to Two Different RPs

Bowler#show ip pim rp mapping

PIM Group-to-RP Mappings

Info source: 10.224.1.3 (?), via Auto-RP Uptime: 01:14:37, expires: 00:02:42 Group(s) 228.13.0.0/16 RP 10.224.1.2 (?), v2v1

Info source: 10.224.1.3 (?), via Auto-RP Uptime: 00:43:15, expires: 00:02:37 Group(s) 232.0.0.0/5 RP 10.224.1.2 (?), v2v1

Info source: 18.224.1.3 <?), via Auto-RP Uptime: 00:43:15, expires: 00:02:41

Bowier#

A similar command is show ip pim rp mapping in-use, as demonstrated in Example 6-33 In addition to the information displayed in Example 6-32, the group ranges that are currently in use on the router are displayed. Notice that the output in both Example 6-32 and 6-33 displays the source of the mapping agent, 10.224.1.3. This information proves useful when there are multiple mapping agents.

Example 6-33 The in-use Keyword Displays the Group Address Ranges That Are Currently in Use on the Router

Bowler#show ip pim rp mapping in-use

PIM Group-to-RP Mappings

Group(s) 224.0.0.0/5 RP 10.224.1.1 (?), v2v1 into source: 10.224.1.3 (7), via Auto-RP Uptime: 01:21:24, expires: 00:02:50 Group(s) 228.13.0.0/16 RP 10.224.1.2 (?), v2v1

I«fo source: 18.224.1.3 (7), via Auto-RP Uptime: 00:50:02, expires: 00:02:49 Group(s) 232.0.0.0/5 RP 10.224.1.2 (?), v2v1 info source: 13.224.1.3 (?), via Auto-RP Uptime: 00:50:02, expires: 00:02:48

RPs in Auto-RP cache that are in use: Group(s): 224.0.0.0/5, RP: 10.224.1.1 Group(s): 232.0.0.0/5, RP: 10.224.1.2 Group(s): 228.13.0.0/16, RP: 10.224.1.2 Bowier#

On occasion, you may want to know what RP a particular group address will be mapped to, before that address is active on a router. Suppose, for example, you want to know what RP the group 235.1.2.3 will be mapped to at Bowler. For this, you use the show ip pim rp-hash command, as demonstrated in Example 6-34. The result shows that group 235.1.2.3 will be mapped to RP 10.224.1.2. The result is consistent with the access list constraints configured previously.

Example 6-34 The Command show ip pim rp-hash Enables You tp Determine to Which RP a Particular Group Will Be Mapped

Bowler#show ip pim rp-hash 235.1.2.3

RP 10.224.1.2 (?), v2v1

Info source: 10.224.1.3 (?), via Auto

-RP

Uptime: 00:55:48, expires: 00:02:

: 00

Bowler#

You can prevent your mapping agents from accepting unauthorized routers that may have been inadvertently or intentionally configured as C-RPs by setting up an RP announcement filter. Example 6-35 demonstrates a sample configuration for Porkpie.

Example 6-35 Configuring Porkpie with an RP Announcement Filter ip pim rp-announce-filter rp-list 1 group-list 11 ip pim send-rp-discovery LoopbackO scope 5 i access-list 1 permit 10.224.1.2 access-list 1 permit 10.224.1.1 access-list 11 permit 224.0.0.0 15.255.255.255

The configuration in Example 6-35 establishes an RP announcement filter to accept only the C-RPs specified in access list 1, and to accept groups advertised by those C-RPs only if they are specified in access list 11. In this configuration, access list 1 permits Stetson and Fedora and permits those routers to be C-RPs for all multicast groups.

Throughout this case study, Stetson and Fedora in Figure 6-5 have been the C-RPs and Porkpie has been the mapping agent for the sake of clarity. In practice, however, it makes little sense to configure multiple C-RPs for redundancy but configure only a single mapping agent. If the mapping agent fails, no RPs are advertised to the domain, and PIM-SM fails. A more real-life approach would be to make Stetson and Fedora both C-RPs and mapping agents. The nature of Auto-RP ensures that both mapping agents will derive and advertise the same RPs, and if one router fails, the other is still in service to advertise RPs to the domain.

Was this article helpful?

0 0
100 SEO Tips

100 SEO Tips

100 SEO Tips EVERY SEO Enthusiast Should Know. This Report 100 SEO Tips will help you to Utilize These Tips to Dominate The Search Engine Today.

Get My Free Ebook


Post a comment