Cisco IOS IP Configuration Guide, Release 12.2
Configuring IP Multicast Routing

Table Of Contents

Configuring IP Multicast Routing

The Cisco IP Multicast Routing Implementation

IGMP

IGMP Versions

PIM

CGMP

Basic IP Multicast Routing Configuration Task List

Advanced IP Multicast Routing Configuration Task List

Enabling IP Multicast Routing

Enabling PIM on an Interface

Enabling Dense Mode

Enabling Sparse Mode

Enabling Sparse-Dense Mode

Configuring PIM Dense Mode State Refresh

Configuring a Rendezvous Point

Configuring Auto-RP

Setting Up Auto-RP in a New Internetwork

Adding Auto-RP to an Existing Sparse Mode Cloud

Choosing a Default RP

Announcing the RP and the Group Range It Serves

Assigning the RP Mapping Agent

Verifying the Group-to-RP Mapping

Starting to Use IP Multicast

Preventing Join Messages to False RPs

Filtering Incoming RP Announcement Messages

IGMP Features Configuration Task List

Configuring a Router to Be a Member of a Group

Controlling Access to IP Multicast Groups

Changing the IGMP Version

Modifying the IGMP Host-Query Message and Query Timeout Intervals

Routers That Run IGMP Version 1

Routers That Run IGMP Version 2

Configuring IGMP Version 3

Restrictions

Changing the IGMP Query Timeout

Changing the Maximum Query Response Time

Configuring the Router as a Statically Connected Member

Configuring IGMP Leave Latency

Configuring the TTL Threshold

Disabling Fast Switching of IP Multicast

SAP Listener Support Configuration Task List

Enabling SAP Listener Support

Limiting How Long a SAP Cache Entry Exists

Enabling the Functional Address for IP Multicast over Token Ring LANs

Configuring PIM Version 2

Prerequisites

PIM Version 2 Configuration Task List

Specifying the PIM Version

Configuring PIM Version 2 Only

Configuring PIM Sparse-Dense Mode

Defining a PIM Sparse Mode Domain Border Interface

Configuring Candidate BSRs

Configuring Candidate RPs

Making the Transition to PIM Version 2

Deciding When to Configure a BSR

Dense Mode

Sparse Mode

Monitoring the RP Mapping Information

Advanced PIM Features Configuration Task List

Understanding PIM Shared Tree and Source Tree (Shortest-Path Tree)

Understanding Reverse Path Forwarding

Delaying the Use of PIM Shortest-Path Tree

Assigning an RP to Multicast Groups

Increasing Control over RPs

Modifying the PIM Router Query Message Interval

Understanding the PIM Registering Process

PIM Version 1 Compatibility

Limiting the Rate of PIM Register Messages

Configuring the IP Source Address of Register Messages

Enabling Proxy Registering

Enabling PIM Nonbroadcast Multiaccess Mode

Configuring an IP Multicast Static Route

Controlling the Transmission Rate to a Multicast Group

Configuring RTP Header Compression

Enabling RTP Header Compression on a Serial Interface

Enabling RTP Header Compression with Frame Relay Encapsulation

Changing the Number of Header Compression Connections

Enabling Express RTP Header Compression

Configuring IP Multicast over ATM Point-to-Multipoint Virtual Circuits

Enabling IP Multicast over ATM Point-to-Multipoint VCs

Limiting the Number of VCs

Idling Policy

How the Idling Policy Works

Keeping VCs from Idling

Configuring an IP Multicast Boundary

Configuring an Intermediate IP Multicast Helper

Storing IP Multicast Headers

Enabling CGMP

Configuring Stub IP Multicast Routing

Load Splitting IP Multicast Traffic Across Equal-Cost Paths Configuration Task List

Enabling Native Load Splitting

Enabling Load Splitting Across Tunnels

Configuring the Access Router

Configuring the Router at the Opposite End of the Tunnel

Configuring Both Routers to RPF

Verifying the Load Splitting

Monitoring and Maintaining IP Multicast Routing Configuration Task List

Clearing Caches, Tables, and Databases

Displaying System and Network Statistics

Using IP Multicast Heartbeat

IP Multicast Configuration Examples

PIM Dense Mode Example

PIM Sparse Mode Example

PIM Dense Mode State Refresh Example

Functional Address for IP Multicast over Token Ring LAN Example

PIM Version 2 Examples

BSR Configuration Example

Border Router Configuration Example

RFC 2362 Interoperable Candidate RP Example

RTP Header Compression Examples

Express RTP Header Compression with PPP Encapsulation Example

Express RTP Header Compression with Frame Relay Encapsulation Example

IP Multicast over ATM Point-to-Multipoint VC Example

Administratively Scoped Boundary Example

IP Multicast Helper Example

Stub IP Multicast Example

Load Splitting IP Multicast Traffic Across Equal-Cost Paths Example

IP Multicast Heartbeat Example


Configuring IP Multicast Routing


This chapter describes how to configure IP multicast routing. For a complete description of the IP multicast routing commands in this chapter, refer to the "IP Multicast Routing Commands" chapter of the Cisco IOS IP Command Reference, Volume 3 of 3: Multicast. To locate documentation of other commands in this chapter, use the command reference master index, or search online.

Traditional IP communication allows a host to send packets to a single host (unicast transmission) or to all hosts (broadcast transmission). IP multicast provides a third scheme, allowing a host to send packets to a subset of all hosts (group transmission). These hosts are known as group members.

Packets delivered to group members are identified by a single multicast group address. Multicast packets are delivered to a group using best-effort reliability, just like IP unicast packets.

The multicast environment consists of senders and receivers. Any host, regardless of whether it is a member of a group, can send to a group. However, only the members of a group receive the message.

A multicast address is chosen for the receivers in a multicast group. Senders use that address as the destination address of a datagram to reach all members of the group.

Membership in a multicast group is dynamic; hosts can join and leave at any time. There is no restriction on the location or number of members in a multicast group. A host can be a member of more than one multicast group at a time.

How active a multicast group is and what members it has can vary from group to group and from time to time. A multicast group can be active for a long time, or it may be very short-lived. Membership in a group can change constantly. A group that has members may have no activity.

Routers executing a multicast routing protocol, such as Protocol Independent Multicast (PIM), maintain forwarding tables to forward multicast datagrams. Routers use the Internet Group Management Protocol (IGMP) to learn whether members of a group are present on their directly attached subnets. Hosts join multicast groups by sending IGMP report messages.

Many multimedia applications involve multiple participants. IP multicast is naturally suitable for this communication paradigm.

To identify the hardware platform or software image information associated with a feature, use the Feature Navigator on Cisco.com to search for information about the feature or refer to the software release notes for a specific release. For more information, see the "Identifying Supported Platforms" section in the "Using Cisco IOS Software" chapter.

The Cisco IP Multicast Routing Implementation

The Cisco IOS software supports the following protocols to implement IP multicast routing:

IGMP is used between hosts on a LAN and the routers on that LAN to track the multicast groups of which hosts are members.

Protocol Independent Multicast (PIM) is used between routers so that they can track which multicast packets to forward to each other and to their directly connected LANs.

Distance Vector Multicast Routing Protocol (DVMRP) is used on the MBONE (the multicast backbone of the Internet). The Cisco IOS software supports PIM-to-DVMRP interaction.

Cisco Group Management Protocol (CGMP) is used on routers connected to Catalyst switches to perform tasks similar to those performed by IGMP.

Figure 66 shows where these protocols operate within the IP multicast environment. The protocols are further described in the sections following the figure.

Figure 66 IP Multicast Routing Protocols

IGMP

To start implementing IP multicast routing in your campus network, you must first define who receives the multicast. IGMP provides a means to automatically control and limit the flow of multicast traffic throughout your network with the use of special multicast queriers and hosts.

A querier is a network device, such as a router, that sends query messages to discover which network devices are members of a given multicast group.

A host is a receiver, including routers, that sends report messages (in response to query messages) to inform the querier of a host membership.

A set of queriers and hosts that receive multicast data streams from the same source is called a multicast group. Queries and hosts use IGMP messages to join and leave multicast groups.

IP multicast traffic uses group addresses, which are Class D IP addresses. The high-order four bits of a Class D address are 1110. Therefore, host group addresses can be in the range 224.0.0.0 to 239.255.255.255.

Multicast addresses in the range 224.0.0.0 to 224.0.0.255 are reserved for use by routing protocols and other network control traffic. The address 224.0.0.0 is guaranteed not to be assigned to any group.

IGMP packets are transmitted using IP multicast group addresses as follows:

IGMP general queries are destined to the address 224.0.0.1 (all systems on a subnet).

IGMP group-specific queries are destined to the group IP address for which the router is querying.

IGMP group membership reports are destined to the group IP address for which the router is reporting.

IGMP Version 2 (IGMPv2) Leave messages are destined to the address 224.0.0.2 (all routers on a subnet).

Note that in some old host IP stacks, Leave messages might be destined to the group IP address rather than to the all-routers address.

IGMP Versions

IGMP messages are used primarily by multicast hosts to signal their interest in joining a specific multicast group and to begin receiving group traffic.

The original IGMP Version 1 Host Membership model defined in RFC 1112 is extended to significantly reduce leave latency and provide control over source multicast traffic by use of Internet Group Management Protocol, Version 2.

IGMP Version 1

Provides for the basic Query-Response mechanism that allows the multicast router to determine which multicast groups are active and other processes that enable hosts to join and leave a multicast group. RFC 1112 defines Host Extensions for IP Multicasting.

IGMP Version 2

Extends IGMP allowing such features as the IGMP leave process, group-specific queries, and an explicit maximum query response time. IGMP Version 2 also adds the capability for routers to elect the IGMP querier without dependence on the multicast protocol to perform this task. RFC 2236 defines Internet Group Management Protocol, Version 2.

IGMP Version 3

Provides for "source filtering" which enables a multicast receiver host to signal to a router which groups it wants to receive multicast traffic from, and from which sources this traffic is expected.

PIM

The PIM protocol maintains the current IP multicast service mode of receiver-initiated membership. It is not dependent on a specific unicast routing protocol.

PIM is defined in RFC 2362, Protocol-Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification. PIM is defined in the following Internet Engineering Task Force (IETF) Internet drafts:

Protocol Independent Multicast (PIM): Motivation and Architecture

Protocol Independent Multicast (PIM), Dense Mode Protocol Specification

Protocol Independent Multicast (PIM), Sparse Mode Protocol Specification

draft-ietf-idmr-igmp-v2-06.txt, Internet Group Management Protocol, Version 2

draft-ietf-pim-v2-dm-03.txt, PIM Version 2 Dense Mode

PIM can operate in dense mode or sparse mode. It is possible for the router to handle both sparse groups and dense groups at the same time.

In dense mode, a router assumes that all other routers want to forward multicast packets for a group. If a router receives a multicast packet and has no directly connected members or PIM neighbors present, a prune message is sent back to the source. Subsequent multicast packets are not flooded to this router on this pruned branch. PIM builds source-based multicast distribution trees.

In sparse mode, a router assumes that other routers do not want to forward multicast packets for a group, unless there is an explicit request for the traffic. When hosts join a multicast group, the directly connected routers send PIM join messages toward the rendezvous point (RP). The RP keeps track of multicast groups. Hosts that send multicast packets are registered with the RP by the first hop router of that host. The RP then sends join messages toward the source. At this point, packets are forwarded on a shared distribution tree. If the multicast traffic from a specific source is sufficient, the first hop router of the host may send join messages toward the source to build a source-based distribution tree.

CGMP

CGMP is a protocol used on routers connected to Catalyst switches to perform tasks similar to those performed by IGMP. CGMP is necessary for those Catalyst switches that cannot distinguish between IP multicast data packets and IGMP report messages, both of which are addressed to the same group address at the MAC level.

Basic IP Multicast Routing Configuration Task List

Basic and advanced IP multicast routing configuration tasks are described in the following sections. The basic tasks in the first two sections are required; the tasks in the remaining sections are optional.

Enabling IP Multicast Routing (Required)

Enabling PIM on an Interface (Required)

Configuring Auto-RP (Optional)

IGMP Features Configuration Task List (Optional)

Configuring the TTL Threshold (Optional)

Disabling Fast Switching of IP Multicast (Optional)

SAP Listener Support Configuration Task List (Optional)

Enabling the Functional Address for IP Multicast over Token Ring LANs (Optional)

Configuring PIM Version 2 (Optional)

Advanced IP Multicast Routing Configuration Task List

The advanced IP multicast routing tasks described in the following sections are optional:

Advanced PIM Features Configuration Task List (Optional)

Configuring an IP Multicast Static Route (Optional)

Controlling the Transmission Rate to a Multicast Group (Optional)

Configuring RTP Header Compression (Optional)

Configuring IP Multicast over ATM Point-to-Multipoint Virtual Circuits (Optional)

Configuring an IP Multicast Boundary (Optional)

Configuring an Intermediate IP Multicast Helper (Optional)

Storing IP Multicast Headers (Optional)

Enabling CGMP (Optional)

Configuring Stub IP Multicast Routing (Optional)

Load Splitting IP Multicast Traffic Across Equal-Cost Paths Configuration Task List (Optional)

Monitoring and Maintaining IP Multicast Routing Configuration Task List (Optional)

See the "IP Multicast Configuration Examples" later in this chapter for examples of multicast routing configurations.

To see information on IP multicast multilayer switching, refer to the Cisco IOS Switching Services Configuration Guide and Cisco IOS Switching Services Command Reference.

Enabling IP Multicast Routing

Enabling IP multicast routing allows the Cisco IOS software to forward multicast packets. To enable IP multicast routing on the router, use the following command in global configuration mode:

Command
Purpose

Router(config)# ip multicast-routing

Enables IP multicast routing.


Enabling PIM on an Interface

Enabling PIM on an interface also enables IGMP operation on that interface. An interface can be configured to be in dense mode, sparse mode, or sparse-dense mode. The mode determines how the router populates its multicast routing table and how the router forwards multicast packets it receives from its directly connected LANs. You must enable PIM in one of these modes for an interface to perform IP multicast routing.

In populating the multicast routing table, dense mode interfaces are always added to the table. Sparse mode interfaces are added to the table only when periodic join messages are received from downstream routers, or when a directly connected member is on the interface. When forwarding from a LAN, sparse mode operation occurs if an RP is known for the group. If so, the packets are encapsulated and sent toward the RP. When no RP is known, the packet is flooded in a dense mode fashion. If the multicast traffic from a specific source is sufficient, the first hop router of the receiver may send join messages toward the source to build a source-based distribution tree.

There is no default mode setting. By default, multicast routing is disabled on an interface.

Enabling Dense Mode

To configure PIM on an interface to be in dense mode, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip pim dense-mode

Enables PIM dense mode on the interface.


See the "PIM Dense Mode Example" section later in this chapter for an example of how to configure a PIM interface in dense mode.

Enabling Sparse Mode

To configure PIM on an interface to be in sparse mode, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip pim sparse-mode

Enables PIM sparse mode on the interface.


See the "PIM Sparse Mode Example" section later in this chapter for an example of how to configure a PIM interface in sparse mode.

Enabling Sparse-Dense Mode

If you configure either the ip pim sparse-mode or ip pim dense-mode interface configuration command, then sparseness or denseness is applied to the interface as a whole. However, some environments might require PIM to run in a single region in sparse mode for some groups and in dense mode for other groups.

An alternative to enabling only dense mode or only sparse mode is to enable sparse-dense mode. In this case, the interface is treated as dense mode if the group is in dense mode; the interface is treated in sparse mode if the group is in sparse mode. You must have an RP if the interface is in sparse-dense mode, and you want to treat the group as a sparse group.

If you configure sparse-dense mode, the idea of sparseness or denseness is applied to the group on the router, and the network manager should apply the same concept throughout the network.

Another benefit of sparse-dense mode is that Auto-RP information can be distributed in a dense mode manner; yet, multicast groups for user groups can be used in a sparse mode manner. Thus, there is no need to configure a default RP at the leaf routers.

When an interface is treated in dense mode, it is populated in the outgoing interface list of a multicast routing table when either of the following conditions is true:

Members or DVMRP neighbors are on the interface.

There are PIM neighbors and the group has not been pruned.

When an interface is treated in sparse mode, it is populated in the outgoing interface list of a multicast routing table when either of the following conditions is true:

Members or DVMRP neighbors are on the interface.

An explicit join message has been received by a PIM neighbor on the interface.

To enable PIM to operate in the same mode as the group, use the following command in interface configuration mode:

Command
Purpose

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

Enables PIM to operate in sparse or dense mode, depending on the group.


Configuring PIM Dense Mode State Refresh

If you have PIM dense mode (PIM-DM) enabled on a router interface, the PIM Dense Mode State Refresh feature is enabled by default.

PIM-DM builds source-based multicast distribution trees that operate on a "flood and prune" principle. Multicast packets from a source are flooded to all areas of a PIM-DM network. PIM routers that receive multicast packets and have no directly connected multicast group members or PIM neighbors send a prune message back up the source-based distribution tree toward the source of the packets. As a result, subsequent multicast packets are not flooded to pruned branches of the distribution tree. However, the pruned state in PIM-DM times out approximately every 3 minutes and the entire PIM-DM network is reflooded with multicast packets and prune messages. This reflooding of unwanted traffic throughout the PIM-DM network consumes network bandwidth.

The PIM Dense Mode State Refresh feature keeps the pruned state in PIM-DM from timing out by periodically forwarding a control message down the source-based distribution tree. The control message refreshes the prune state on the outgoing interfaces of each router in the distribution tree.

This feature also enables PIM routers in a PIM-DM multicast network to recognize topology changes (sources joining or leaving a multicast group) before the default 3-minute state refresh timeout period expires.

By default, all PIM routers that are running a Cisco IOS software release that supports the PIM Dense Mode State Refresh feature automatically process and forward state refresh control messages. To disable the processing and forwarding of state refresh control messages on a PIM router, use the ip pim state-refresh disable global configuration command.

To configure the origination of the control messages on a PIM router, use the following commands beginning in global configuration mode:

 
Command
Purpose

Step 1 

Router(config)# interface type number

Specifies an interface and places the router in interface configuration mode.

Step 2 

Router(config-if)# ip pim state-refresh origination-interval [interval]

Configures the origination of the PIM Dense Mode State Refresh control message. Optionally, you can configure the number of seconds between control messages by using the interval argument. The default interval is 60 seconds. The interval range is from 4 to 100 seconds.


Note The origination interval for the state refresh control message must be the same for all PIM routers on the same LAN. Specifically, the same origination interval must be configured on each router interface that is directly connected to the LAN.


See the "PIM Dense Mode State Refresh Example" section later in this chapter for an example of how to configure the PIM Dense Mode State Refresh feature.

Configuring a Rendezvous Point

If you configure PIM to operate in sparse mode, you must also choose one or more routers to be rendezvous points (RPs). You need not configure the routers to be RPs; they learn how to become RPs themselves. RPs are used by senders to a multicast group to announce their existence and by receivers of multicast packets to learn about new senders. The Cisco IOS software can be configured so that packets for a single multicast group can use one or more RPs.

The RP address is used by first hop routers to send PIM register messages on behalf of a host sending a packet to the group. The RP address is also used by last hop routers to send PIM join and prune messages to the RP to inform it about group membership. You must configure the RP address on all routers (including the RP router).

A PIM router can be an RP for more than one group. Only one RP address can be used at a time within a PIM domain. The conditions specified by the access list determine for which groups the router is an RP.

To configure the address of the RP, use the following command on a leaf router in global configuration mode:

Command
Purpose

Router(config)# ip pim rp-address rp-address [access-list] [override]

Configures the address of a PIM RP.


Configuring Auto-RP

Auto-RP is a feature that automates the distribution of group-to-RP mappings in a PIM network. This feature has the following benefits:

The use of multiple RPs within a network to serve different group ranges is easy.

It allows load splitting among different RPs and arrangement of RPs according to the location of group participants.

It avoids inconsistent, manual RP configurations that can cause connectivity problems.

Multiple RPs can be used to serve different group ranges or serve as backups of each other. To make Auto-RP work, a router must be designated as an RP-mapping agent, which receives the RP-announcement messages from the RPs and arbitrates conflicts. The RP-mapping agent then sends the consistent group-to-RP mappings to all other routers. Thus, all routers automatically discover which RP to use for the groups they support.


Note If you configure PIM in sparse mode or sparse-dense mode and do not configure Auto-RP, you must statically configure an RP as described in the section "Assigning an RP to Multicast Groups" later in this chapter.



Note If router interfaces are configured in sparse mode, Auto-RP can still be used if all routers are configured with a static RP address for the Auto-RP groups.


Setting Up Auto-RP in a New Internetwork

If you are setting up Auto-RP in a new internetwork, you do not need a default RP because you configure all the interfaces for sparse-dense mode. Follow the process described in the section "Adding Auto-RP to an Existing Sparse Mode Cloud," except that you should omit the first step of choosing a default RP.

Adding Auto-RP to an Existing Sparse Mode Cloud

The following sections contain suggestions for the initial deployment of Auto-RP into an existing sparse mode cloud, to minimize disruption of the existing multicast infrastructure.

Choosing a Default RP

Sparse mode environments need a default RP; sparse-dense mode environments do not. If you have sparse-dense mode configured everywhere, you need not choose a default RP.

Adding Auto-RP to a sparse mode cloud requires a default RP. In an existing PIM sparse mode region, at least one RP is defined across the network that has good connectivity and availability. That is, the ip pim rp-address command is already configured on all routers in this network.

Use that RP for the global groups (for example, 224.x.x.x and other global groups). There is no need to reconfigure the group address range that RP serves. RPs discovered dynamically through Auto-RP take precedence over statically configured RPs. Assume it is desirable to use a second RP for the local groups.

Announcing the RP and the Group Range It Serves

Find another router to serve as the RP for the local groups. The RP-mapping agent can double as an RP itself. Assign the whole range of 239.x.x.x to that RP, or assign a subrange of that (for example, 239.2.x.x).

To designate that a router is the RP, use the following command in global configuration mode:

Command
Purpose

Router(config)# ip pim send-rp-announce type number scope ttl-value [group-list access-list] [interval seconds]

Configures a router to be the RP.


To change the group ranges this RP optimally will serve in the future, change the announcement setting on the RP. If the change is valid, all other routers automatically will adopt the new group-to-RP mapping.

The following example advertises the IP address of Ethernet interface 0 as the RP for the administratively scoped groups:

ip pim send-rp-announce ethernet0 scope 16 group-list 1
access-list 1 permit 239.0.0.0 0.255.255.255

Assigning the RP Mapping Agent

The RP mapping agent is the router that sends the authoritative discovery packets telling other routers which group-to-RP mapping to use. Such a role is necessary in the event of conflicts (such as overlapping group-to-RP ranges).

Find a router whose connectivity is not likely to be interrupted and assign it the role of RP-mapping agent. All routers within time-to-live (TTL) number of hops from the source router receive the Auto-RP discovery messages. To assign the role of RP mapping agent in that router, use the following command in global configuration mode:

Command
Purpose

Router(config)# ip pim send-rp-discovery scope ttl-value

Assigns the RP mapping agent.


Verifying the Group-to-RP Mapping

To learn if the group-to-RP mapping has arrived, use the following command in EXEC mode on the designated routers:

Command
Purpose

Router# show ip pim rp [mapping | metric] [rp-address]

Displays active RPs that are cached with associated multicast routing entries. Information learned by configuration or Auto-RP.


Starting to Use IP Multicast

Use your IP multicast application software to start joining and sending to a group.

Preventing Join Messages to False RPs

Note the ip pim accept-rp global configuration commands previously configured throughout the network. If the ip pim accept-rp command is not configured on any router, this problem can be addressed later. In those routers already configured with the ip pim accept-rp command, you must specify the command again to accept the newly advertised RP.

To accept all RPs advertised with Auto-RP and reject all other RPs by default, use the ip pim accept-rp auto-rp command.

If all interfaces are in sparse mode, a default RP is configured to support the two well-known groups 224.0.1.39 and 224.0.1.40. Auto-RP relies on these two well-known groups to collect and distribute RP-mapping information. When this is the case and the ip pim accept-rp auto-rp command is configured, another ip pim accept-rp command accepting the default RP must be configured, as follows:

ip pim accept-rp <default RP address> 1
access-list 1 permit 224.0.1.39
access-list 1 permit 224.0.1.40

Filtering Incoming RP Announcement Messages

To filter incoming RP announcement messages, use the following command in global configuration mode:

Command
Purpose

Router(config)# ip pim rp-announce-filter rp-list access-list group-list access-list

Filters incoming RP announcement messages.


IGMP Features Configuration Task List

To configure IGMP features, perform the tasks described in the following sections. The tasks in the first section are required; the tasks in the remaining sections are optional.

Configuring a Router to Be a Member of a Group (Required)

Controlling Access to IP Multicast Groups (Optional)

Changing the IGMP Version (Optional)

Modifying the IGMP Host-Query Message and Query Timeout Intervals (Optional)

Configuring IGMP Version 3 (Optional)

Changing the Maximum Query Response Time (Optional)

Configuring the Router as a Statically Connected Member (Optional)

Configuring IGMP Leave Latency (Optional)

For information about configuring IGMP unidirectional link routing (UDLR), see the chapter "Configuring Unidirectional Link Routing" in this document.

Configuring a Router to Be a Member of a Group

Cisco routers can be configured to be members of a multicast group. This strategy is useful for determining multicast reachability in a network. If a device is configured to be a group member and supports the protocol that is being sent to the group, it can respond (to the ping EXEC command, for example). The device responds to ICMP echo request packets addressed to a group of which it is a member. Another example is the multicast traceroute tools provided in the Cisco IOS software.

To have the router join a multicast group and enable IGMP, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp join-group group-address

Joins a multicast group.


Controlling Access to IP Multicast Groups

Multicast routers send IGMP host query messages to determine which multicast groups have members in the attached local networks of the router. The routers then forward to these group members all packets addressed to the multicast group. You can place a filter on each interface that restricts the multicast groups that hosts on the subnet serviced by the interface can join.

To filter multicast groups allowed on an interface, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp access-group access-list

Controls the multicast groups that hosts on the subnet serviced by an interface can join.


Changing the IGMP Version

By default, the router uses IGMP Version 2 (IGMPv2), which allows such features as the IGMP query timeout and the maximum query response time.

All routers on the subnet must support the same version. The router does not automatically detect Version 1 routers and switch to Version 1 as did earlier releases of the Cisco IOS software. However, a mix of IGMP Version 1 and Version 2 hosts on the subnet is acceptable. IGMP Version 2 routers will always work correctly in the presence of IGMP Version 1 hosts.

To control which version of IGMP the router uses, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp version {3 | 2 | 1}

Selects the IGMP version that the router uses.


Modifying the IGMP Host-Query Message and Query Timeout Intervals

Multicast routers send IGMP host-query messages to discover which multicast groups are present on attached networks. These messages are sent to the all-systems group address of 224.0.0.1 with a time-to-live (TTL) of 1.

Multicast routers send host-query messages periodically to refresh their knowledge of memberships present on their networks. If, after some number of queries, the Cisco IOS software discovers that no local hosts are members of a multicast group, the software stops forwarding onto the local network multicast packets from remote origins for that group and sends a prune message upstream toward the source.

Routers That Run IGMP Version 1

If there are multiple routers on a LAN, a designated router (DR) must be elected to avoid duplicating multicast traffic for connected hosts. PIM routers follow an election process to select a DR. The PIM router with the highest IP address becomes the DR.

The DR is responsible for the following tasks:

Sending PIM register and PIM join and prune messages toward the RP to inform it about host group membership.

Sending IGMP host-query messages.

By default, the DR sends host-query messages every 60 seconds in order to keep the IGMP overhead on hosts and networks very low.

To modify this interval, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp query-interval seconds

Configures the frequency at which the designated router sends IGMP host-query messages.


Routers That Run IGMP Version 2

IGMPv2 improved the query messaging capabilities of IGMPv1.

The query and membership report messages in IGMPv2 are identical to the IGMPv1 messages with two exceptions.

1. IGMPv2 query messages are broken into two categories: general queries (identical to IGMPv1 queries) and group-specific queries.

2. IGMPv1 membership reports and IGMPv2 membership reports have different IGMP type codes.

Unlike IGMPv1, in which the DR and the IGMP querier are typically the same router; in IGMPv2, the two functions are decoupled. The DR and the IGMP querier are selected based on different criteria and may be different routers on the same subnet. The DR is the router with the highest IP address on the subnet, whereas the IGMP querier is the router with the lowest IP address.

IP addresses in general query messages are used to elect the IGMP querier and this is the election process:

When IGMPv2 routers start, they each multicast a general query message to the all-systems group address of 224.0.0.1 with their interface address in the source IP address field of the message.

When an IGMPv2 router receives a general query message, the router compares the source IP address in the message with its own interface address. The router with the lowest IP address on the subnet is elected the IGMP querier.

All routers (excluding the querier) start the query timer controlled by the ip igmp querier-timeout command that is reset whenever a general query message is received from the IGMP querier. If the query timer expires, it is assumed that the IGMP querier has gone down, and the election process is performed again to elect a new IGMP querier.

By default, the timer is 2 times the query interval controlled by the ip igmp query-interval command.

To change the query timeout and to specify the period of time before a new election is performed, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp querier-timeout seconds

Sets the IGMP query timeout.


Configuring IGMP Version 3

IGMP Version 3 (IGMPv3) adds support in Cisco IOS software for "source filtering," which enables a multicast receiver host to signal to a router which groups it wants to receive multicast traffic from, and from which sources this traffic is expected. This membership information enables Cisco IOS software to forward traffic only from those sources from which receivers requested the traffic.

IGMPv3 supports applications that explicitly signal sources from which they want to receive traffic. With IGMPv3, receivers signal membership to a multicast host group in the following two modes:

INCLUDE mode—In this mode, the receiver announces membership to a host group and provides a list of IP addresses (the INCLUDE list) from which it wants to receive traffic.

EXCLUDE mode—In this mode, the receiver announces membership to a host group and provides a list of IP addresses (the EXCLUDE list) from which it does not want to receive traffic. In other words, the host wants to receive traffic only from sources whose IP addresses are not listed in the EXCLUDE list. To receive traffic from all sources, like in the case of the Internet Standard Multicast (ISM) service model, a host expresses EXCLUDE mode membership with an empty EXCLUDE list.

IGMPv3 is the industry-designated standard protocol for hosts to signal channel subscriptions in Source Specific Multicast (SSM). For SSM to rely on IGMPv3, IGMPv3 must be available in last hop routers and host operating system network stacks, and be used by the applications running on those hosts.

In SSM deployment cases where IGMPv3 cannot be used because it is not supported by the receiver host or the receiver applications, two Cisco-developed transition solutions enable the immediate deployment of SSM services: URL Rendezvous Directory (URD) and IGMP Version 3 lite (IGMP v3lite). For more information on URD and IGMP v3lite, see the "Configuring Source Specific Multicast" chapter in this document.

Restrictions

Traffic Filtering with Multicast Groups That Are Not Configured in SSM Mode

IGMPv3 membership reports are not utilized by Cisco IOS software to filter or restrict traffic for multicast groups that are not configured in SSM mode. Effectively, Cisco IOS software interprets all IGMPv3 membership reports for groups configured in dense, sparse, or bidirectional mode to be group membership reports and forwards traffic from all active sources onto the network.

Interoperability with IGMP Snooping

You must be careful when using IGMPv3 with switches that support and are enabled for IGMP snooping, because IGMPv3 messages are different from the messages used in IGMP Version 1 (IGMPv1) and Version 2 (IGMPv2). If a switch does not recognize IGMPv3 messages, then hosts will not correctly receive traffic if IGMPv3 is being used. In this case, either IGMP snooping may be disabled on the switch or the router may be configured for IGMPv2 on the interface (which would remove the ability to use SSM for host applications that cannot resort to URD or IGMP v3lite).

Interoperability with CGMP

Networks using CGMP will have better group leave behavior if they are configured with IGMPv2 than IGMPv3. If CGMP is used with IGMPv2 and the switch is enabled for the CGMP leave functionality, then traffic to a port joined to a multicast group will be removed from the port shortly after the last member on that port has dropped membership to that group. This fast-leave mechanism is part of IGMPv2 and is specifically supported by the CGMP fast-leave enabled switch.

With IGMPv3, there is currently no CGMP switch support of fast leave. If IGMPv3 is used in a network, CGMP will continue to work, but CGMP fast-leave support is ineffective and the following conditions apply:

Each time a host on a new port of the CGMP switch joins a multicast group, that port is added to the list of ports to which the traffic of this group is sent.

If all hosts on a particular port leave the multicast group, but there are still hosts on other ports (in the same virtual LAN) joined to the group, then nothing happens. In other words, the port continues to receive traffic from that multicast group.

Only when the last host in a virtual LAN (VLAN) has left the multicast group does forwarding of the traffic of this group into the VLAN revert to no ports on the switch forwarding.

This join behavior only applies to multicast groups that actually operate in IGMPv3 mode. If legacy hosts only supporting IGMPv2 are present in the network, then groups will revert to IGMPv2 and fast leave will work for these groups.

If fast leave is needed with CGMP-enabled switches, we recommend that you not enable IGMPv3 but configure IGMPv2 on that interface.

If IGMPv3 is needed to support SSM, then you have two configuration alternatives as follows:

Configure only the interface for IGMPv2 and use IGMP v3lite and URD.

Enable IGMPv3 and accept the higher leave latencies through the CGMP switch.

Changing the IGMP Query Timeout

You can specify the period of time before the router takes over as the querier for the interface, after the previous querier has stopped doing so. By default, the router waits two times the query interval controlled by the ip igmp query-interval interface configuration command. After that time, if the router has received no queries, it becomes the querier. This feature requires IGMP Version 2.

To change the query timeout, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp querier-timeout seconds

Sets the IGMP query timeout.


Changing the Maximum Query Response Time

By default, the maximum query response time advertised in IGMP queries is 10 seconds. If the router is using IGMP Version 2, you can change this value. The maximum query response time allows a router to quickly detect that there are no more directly connected group members on a LAN. Decreasing the value allows the router to prune groups faster.

To change the maximum query response time, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp query-max-response-time seconds

Sets the maximum query response time advertised in IGMP queries.


Configuring the Router as a Statically Connected Member

Sometimes either there is no group member on a network segment or a host cannot report its group membership using IGMP. However, you may want multicast traffic to go to that network segment. The following are two ways to pull multicast traffic down to a network segment:

Use the ip igmp join-group interface configuration command. With this method, the router accepts the multicast packets in addition to forwarding them. Accepting the multicast packets prevents the router from fast switching.

Use the ip igmp static-group interface configuration command. With this method, the router does not accept the packets itself, but only forwards them. Hence, this method allows fast switching. The outgoing interface appears in the IGMP cache, but the router itself is not a member, as evidenced by lack of an "L" (local) flag in the multicast route entry.

To configure the router itself to be a statically connected member of a group (and allow fast switching), use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp static-group group-address

Configures the router as a statically connected member of a group.


Configuring IGMP Leave Latency

In IGMPv2 and IGMPv3, hosts send IGMP messages to indicate that they do not wish to receive a particular group, source, or channel any more. The length of time between the host wanting to leave and the router stopping forwarding is called the IGMP leave latency. IGMP leave latency is only relevant when the last host on a subnet that was a member to a group, source, or channel intends to leave, because as long as there are still other interested members, the router still needs to forward the traffic.

When a router receives such a membership message that indicates a leave, by default, it needs to verify if there are still other members interested in the traffic. To do so, the IGMP querying router sends out a group-specific or group-source-specific query. This query contains the last member query interval (LMQI), which is the time within which other still interested hosts need to send a membership report or else the router will stop forwarding. Because IGMP messages may get lost between router and hosts, the router by default does not immediately stop forwarding after the LMQI has expired, but instead it repeats this process of sending the group or group-source-specific query and waiting for membership reports for a total of times specified by the last member query count (LMQC). Only thereafter will the router stop forwarding.

By default in Cisco IOS software and in the IGMPv2 and IGMPv3 RFCs, the LMQI is 1 second, and the LMQC is 2. Therefore, the default leave latency for individual leaves in Cisco IOS software is 3 seconds.

IGMPv3 explicit tracking allows to reduce the leave latency to approximately 0 for hosts that support IGMPv3. This feature is not available for hosts that support only IGMPv2 because of the protocol limitation.

In IGMPv2, if there is only one IP multicast receiving host connected to a subnet, the ip igmp immediate-leave group-list command can be configured so the router immediately stop forwarding traffic for the group, resulting in a leave latency of 0.

To change the values of the LMQI, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp last-member-query-interval interval

Configures the interval at which the router sends IGMP group-specific or group-source-specific (with IGMPv3) query messages.


To change the values of the LMQC, use the following commands in interface configuration mode:

Command
Purpose

Router(config-if)# ip igmp last-member-query-count lmqc

Configures the number of times that the router sends IGMP group-specific or group-source-specific (with IGMPv3) query messages.


Configuring the TTL Threshold

The TTL value controls whether packets are forwarded out of an interface. You specify the TTL value in hops. Only multicast packets with a TTL greater than the interface TTL threshold are forwarded on the interface. The default value is 0, which means that all multicast packets are forwarded on the interface. To change the default TTL threshold value, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip multicast ttl-threshold ttl-value

Configures the TTL threshold of packets being forwarded out an interface.


Disabling Fast Switching of IP Multicast

Fast switching of IP multicast packets is enabled by default on all interfaces (including generic routing encapsulation [GRE] and DVMRP tunnels), with one exception: It is disabled and not supported over X.25 encapsulated interfaces. Note the following properties of fast switching:

If fast switching is disabled on an incoming interface for a multicast routing table entry, the packet is sent at process level for all interfaces in the outgoing interface list.

If fast switching is disabled on an outgoing interface for a multicast routing table entry, the packet is process-level switched for that interface, but may be fast switched for other interfaces in the outgoing interface list.

Disable fast switching if you want to log debug messages, because when fast switching is enabled, debug messages are not logged.

To disable fast switching of IP multicast, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# no ip mroute-cache

Disables fast switching of IP multicast.


SAP Listener Support Configuration Task List

To configure Session Announcement Protocol (SAP) listener support, perform the tasks described in the following sections. The task in the first section is required; the task in the remaining section is optional.

Enabling SAP Listener Support (Required)

Limiting How Long a SAP Cache Entry Exists (Optional)

Enabling SAP Listener Support

Use session description and announcement protocols and applications to assist the advertisement of multicast multimedia conferences and other multicast sessions and to communicate the relevant session setup information to prospective participants. Sessions are described by the Session Description Protocol (SDP), which is defined in RFC 2327. SDP provides a formatted, textual description of session properties (for example, contact information, session lifetime, and the media) being used in the session (for example, audio, video, and whiteboard) with their specific attributes like TTL scope, group address, and User Datagram Protocol (UDP) port number.

Many multimedia applications rely on SDP for session descriptions. However, they may use different methods to disseminate these session descriptions. For example, IP/TV relies on the Web to disseminate session descriptions to participants. In this example, participants must know of a Web server that provides the session information.

MBONE applications (for example, vic, vat, and wb) and other applications rely on multicast session information sent throughout the network. In these cases, a protocol called Session Announcement Protocol (SAP) is used to transport the SDP session announcements. SAP Version 2 uses the well-known session directory multicast group 224.2.127.254 to disseminate SDP session descriptions for global scope sessions and group 239.255.255.255 for administrative scope sessions.


Note The Session Directory (SDR) application is commonly used to send and receive SDP/SAP session announcements.


To enable the Cisco IOS software to listen to Session Directory announcements, use the following command on a multicast-enabled interface in interface configuration mode:

Command
Purpose

Router(config-if)# ip sap listen

Enables the Cisco IOS software to listen to Session Directory announcements.


Limiting How Long a SAP Cache Entry Exists

By default, entries are deleted 24 hours after they were last received from the network. To limit how long a SAP cache entry stays active in the cache, use the following command in global configuration mode:

Command
Purpose

Router(config)# ip sap cache-timeout

Limits how long a SAP cache entry stays active in the cache.


Enabling the Functional Address for IP Multicast over Token Ring LANs

By default, IP multicast datagrams on Token Ring LAN segments use the MAC-level broadcast address 0xFFFF.FFFF.FFFF. That default places an unnecessary burden on all devices that do not participate in IP multicast. The IP Multicast over Token Ring LANs feature defines a way to map IP multicast addresses to a single Token Ring MAC address.

This feature defines the Token Ring functional address (0xc000.0004.0000) that should be used over Token Ring. A functional address is a severely restricted form of multicast addressing implemented on Token Ring interfaces. Only 31 functional addresses are available. A bit in the destination MAC address designates it as a functional address.

The implementation used by Cisco complies with RFC 1469, IP Multicast over Token-Ring Local Area Networks.

If you configure this feature, IP multicast transmissions over Token Ring interfaces are more efficient than they formerly were. This feature reduces the load on other machines that do not participate in IP multicast because they do not process these packets.

The following restrictions apply to the Token Ring functional address:

This feature can be configured only on a Token Ring interface.

Neighboring devices on the Token Ring on which this feature is used should also use the same functional address for IP multicast traffic.

Because there are a limited number of Token Ring functional addresses, other protocols could be assigned to the Token Ring functional address 0xc000.0004.0000. Therefore, not every frame sent to the functional address is necessarily an IP multicast frame.

To enable the mapping of IP multicast addresses to the Token Ring functional address 0xc000.0004.0000, use the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip multicast use-functional

Enables the mapping of IP multicast addresses to the Token Ring functional address.


For an example of configuring the functional address, see the section "Functional Address for IP Multicast over Token Ring LAN Example" later in this chapter.

Configuring PIM Version 2

PIM Version 2 includes the following improvements over PIM Version 1:

A single, active RP exists per multicast group, with multiple backup RPs. This single RP compares to multiple active RPs for the same group in PIM Version 1.

A bootstrap router (BSR) provides a fault-tolerant, automated RP discovery and distribution mechanism. Thus, routers dynamically learn the group-to-RP mappings.

Sparse mode and dense mode are properties of a group, as opposed to an interface. We strongly recommend sparse-dense mode, as opposed to either sparse mode or dense mode only.

PIM join and prune messages have more flexible encodings for multiple address families.

A more flexible hello packet format replaces the query packet to encode current and future capability options.

Register messages to an RP indicate whether they were sent by a border router or a designated router.

PIM packets are no longer inside IGMP packets; they are standalone packets.

PIM Version 1, together with the Auto-RP feature, can perform the same tasks as the PIM Version 2 BSR. However, Auto-RP is a standalone protocol, separate from PIM Version 1, and is Cisco proprietary. PIM Version 2 is a standards track protocol in the IETF. We recommend that you use PIM Version 2.


Note The simultaneous deployment of Auto-RP and BSR is not supported.


Either the BSR or Auto-RP should be chosen for a given range of multicast groups. If there are PIM Version 1 routers in the network, do not use the BSR.

The Cisco PIM Version 2 implementation allows interoperability and transition between Version 1 and Version 2, although there might be some minor problems. You can upgrade to PIM Version 2 incrementally. PIM Versions 1 and 2 can be configured on different routers within one network. Internally, all routers on a shared media network must run the same PIM version. Therefore, if a PIM Version 2 router detects a PIM Version 1 router, the Version 2 router downgrades itself to Version 1 until all Version 1 routers have been shut down or upgraded.

PIM uses the BSR to discover and announce RP-set information for each group prefix to all the routers in a PIM domain. This is the same function accomplished by Auto-RP, but the BSR is part of the PIM Version 2 specification.

To avoid a single point of failure, you can configure several candidate BSRs in a PIM domain. A BSR is elected among the candidate BSRs automatically; they use bootstrap messages to discover which BSR has the highest priority. This router then announces to all PIM routers in the PIM domain that it is the BSR.

Routers that are configured as candidate RPs then unicast to the BSR the group range for which they are responsible. The BSR includes this information in its bootstrap messages and disseminates it to all PIM routers in the domain. Based on this information, all routers will be able to map multicast groups to specific RPs. As long as a router is receiving the bootstrap message, it has a current RP map.

Prerequisites

When PIM Version 2 routers interoperate with PIM Version 1 routers, Auto-RP should have already been deployed.

Because bootstrap messages are sent hop by hop, a PIM Version1 router will prevent these messages from reaching all routers in your network. Therefore, if your network has a PIM Version 1 router in it, and only Cisco routers, it is best to use Auto-RP rather than the bootstrap mechanism.

PIM Version 2 Configuration Task List

There are two approaches to using PIM Version 2. You can use Version 2 exclusively in your network, or migrate to Version 2 by employing a mixed PIM version environment. When deploying PIM Version 2 in your network, use the following guidelines:

If your network is all Cisco routers, you may use either Auto-RP or the bootstrap mechanism (BSR).


Note The simultaneous deployment of Auto-RP and BSR is not supported.


If you have routers other than Cisco in your network, you need to use the bootstrap mechanism.

To configure PIM Version 2, perform the tasks described in the following sections. The tasks in the first section are required; the tasks in the remaining sections are optional.

Specifying the PIM Version (Required)

Configuring PIM Version 2 Only (Optional)

Making the Transition to PIM Version 2 (Optional)

Monitoring the RP Mapping Information (Optional)

Specifying the PIM Version

All systems using Cisco IOS Release 11.3(2)T or later start in PIM Version 2 mode by default. To reenable PIM Version 2 or specify PIM Version 1 for some reason, control the PIM version by using the following command in interface configuration mode:

Command
Purpose

Router(config-if)# ip pim version [1 | 2]

Configures the PIM version used.


Configuring PIM Version 2 Only

To configure PIM Version