Previous section   Next section

Recipe 23.3 Routing Multicast Traffic with PIM-SM and Auto-RP

23.3.1 Problem

You want to allow routing of multicasts using sparse mode, and use Auto-RP for distributing RP information.

23.3.2 Solution

This recipe accomplishes the same basic tasks as Recipe 23.2, but using a different method. If you are unfamiliar with PIM-SM, please read that recipe first. There are two different types of router configurations for Auto-RP configuration, just as there are for BSR. Router1 represents a regular multicast-enabled router anywhere in the network. This router supports end devices as group members or servers, as well as routing multicast traffic for other routers:

Router1#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#ip multicast-routing
Router1(config)#ip pim rp-address 192.168.15.5
Router1(config)#interface FastEthernet0/0
Router1(config-if)#ip address 192.168.1.1 255.255.255.0
Router1(config-if)#ip pim sparse-dense-mode
Router1(config-if)#exit
Router1(config)#interface Serial1/0
Router1(config-if)#ip address 192.168.2.5 255.255.255.252
Router1(config-if)#ip pim sparse-dense-mode
Router1(config-if)#end
Router1#

The second type of configuration is for a candidate RP router, called Router-RP1. This router may also support group members or servers. As in the previous recipe, it is a good idea to configure two or more routers in each multicast domain like this to provide redundancy:

Router-RP1#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router-RP1(config)#ip multicast-routing
Router-RP1(config)#interface Loopback0
Router-RP1(config-if)#ip address 192.168.12.1 255.255.255.255
Router-RP1(config-if)#ip pim sparse-dense-mode
Router-RP1(config-if)#exit
Router-RP1(config)#interface FastEthernet0/0
Router-RP1(config-if)#ip address 192.168.1.1 255.255.255.0
Router-RP1(config-if)#ip pim sparse-dense-mode
Router-RP1(config-if)#exit
Router-RP1(config)#interface Serial1/0
Router-RP1(config-if)#ip address 192.168.2.5 255.255.255.252
Router-RP1(config-if)#ip pim sparse-dense-mode
Router-RP1(config-if)#exit
Router-RP1(config)#ip pim send-rp-announce loopback0 scope 16 group-list 15
Router-RP1(config)#ip pim send-rp-discovery scope 16
Router-RP1(config)#access-list 15 permit 239.5.5.0 0.0.0.255
Router-RP1(config)#access-list 15 deny any
Router-RP1(config)#end
Router-RP1#

23.3.3 Discussion

Recipe 23.2 discussed one way of discovering the RPs in a PIM-SM network using the BSR method. This recipe shows an alternative method. The BSR method requires Version 2 of the PIM-SM protocol, which Cisco started supporting in IOS 11.3T. If you have earlier IOS versions in your multicast network, you will need Auto-RP, perhaps used in parallel with BSR. As long as both systems select the same RPs, you should be able to simultaneously run both methods. However, if you do run into interoperability problems, you can disable the Version 2 functionality on newer routers using the following command:

Router1#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#ip pim version 1
Router1(config)#end
Router1#

Auto-RP distributes information about the multicast RPs using the globally registered multicast group addresses 224.0.1.39 and 224.0.1.40. This is an elegant solution to the problem of how to tell the network where the RPs are. But it presents a bit of a paradox to the routers: how can they distribute multicast information using PIM-SM if they don't yet have an RP? Cisco solved this problem by creating a new hybrid PIM mode called sparse-dense mode. This means that the routers should use sparse mode if there is a known RP, and dense mode if there isn't. So the only difference in Router1's configuration between this recipe and the previous one is that all of the interfaces are configured with the command ip pim sparse-dense-mode:

Router1(config-if)#ip pim sparse-dense-mode

There are two important differences between Router RP1's configuration in this recipe and in Recipe 23.2. To advertise its willingness to become an RP using Auto-RP, this router includes the global configuration command ip pim send-rp-announce:

Router-RP1(config)#ip pim send-rp-announce loopback0 scope 16 group-list 15

The interface specified in this command, loopback0, has the address that other routers will use for all of their interactions with the RP. We have used a loopback interface to ensure that, as long as there is an active path to this router, it can continue to act as the RP.

As mentioned in Recipe 23.2, however, this may not always be desirable. For example, if this router has a LAN interface and a WAN interface, you certainly don't want all of your multicast traffic to have to loop through the WAN if the LAN interface goes down. In such failure modes, you would probably want to stop using this RP and switch to a different candidate RP. You can do this by simply specifying the LAN interface in the send-rp-announce command.

The second difference in Router RP1's configuration is the command ip pim send-rp-discovery:

Router-RP1(config)#ip pim send-rp-discovery scope 16

This instructs the router to act not only as a candidate RP, but also as an RP mapping agent. The mapping agent function is similar to the BSR function that we discussed in Recipe 23.2. This is the router that is responsible for distributing information about all of the RPs throughout the network. Although you could make the mapping agent a different router, we have combined the functions on the candidate RP router for the same reasons as in the BSR case.

Note that for both the send-rp-announce and send-rp-discovery commands, there is a scope keyword that sets the TTL scope for these functions to 16. Because Auto-RP uses multicasts to distribute its information, you can specify a particular initial TTL value. This controls the network area that will be able to use this particular RP. Recipe 23.10 includes a detailed discussion of how to use TTL for controlling multicast scope.

Finally, the send-rp-announce command specifies a group-list keyword. This is identical to the group list in the BSR configuration of Recipe 23.2. It defines the groups for which this particular router is willing to act as RP. As we mentioned in Recipe 23.2, most networks can easily support all of their multicast traffic on a single active RP. Having different RPs for different multicast groups is primarily useful for administrative reasons, and for rare networks that have too many multicast groups for one RP to support.

If you want one RP for all groups, simply leave out the group-list keyword and its arguments:

Router-RP1#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router-RP1(config)#ip pim send-rp-announce loopback0 scope 16
Router-RP1(config)#ip pim send-rp-discovery scope 16
Router-RP1(config)#end
Router-RP1#

23.3.4 See Also

Recipe 23.2; Recipe 23.10


  Previous section   Next section
Top