Guest

Networking Software (IOS & NX-OS)

Customizing IGMP

  • Viewing Options

  • PDF (372.0 KB)
  • Feedback
Customizing IGMP

Table Of Contents

Customizing IGMP

Finding Feature Information

Contents

Prerequisites for Customizing IGMP

Restrictions for Customizing IGMP

Information About Customizing IGMP

Role of the Internet Group Management Protocol

IGMP Version Differences

IGMP Join Process

IGMP Leave Process

IGMP Multicast Addresses

IGMPv3 Host Stack

IGMPv3 - Explicit Tracking Host, Group, and Channel

Benefits of IGMPv3 - Explicit Tracking of Hosts, Groups, and Channels

Restrictions for IGMPv3 - Explicit Tracking of Hosts, Groups, and Channels

Extended ACL Support for IGMP to Support SSM in IPv4

Benefits of Extended Access List Support for IGMP to Support SSM in IPv4

How IGMP Checks an Extended Access List

IGMP Proxy

How to Customize IGMP

Configuring the Router to Forward Multicast Traffic in the Absence of Directly Connected IGMP Hosts

Enabling the IGMPv3 Host Stack

Prerequisites

Restrictions

Configuring IGMPv3—Explicit Tracking of Hosts, Groups, and Channels

Controlling Access to an SSM Network Using IGMP Extended Access Lists

Configuring an IGMP Proxy

Prerequisites

Configuring the Upstream UDL Router for IGMP UDLR

Configuring the Downstream UDL Router for IGMP UDLR with IGMP Proxy Support

Configuration Examples for Customizing IGMP

Example: Configuring the Router to Forward Multicast Traffic in the Absence of Directly Connected IGMP Hosts

Example: Enabling the IGMPv3 Host Stack

Example: Configuring IGMPv3—Explicit Tracking of Hosts, Groups, and Channels

Example: Controlling Access to an SSM Network Using IGMP Extended Access Lists

Example: Denying All States for a Group G

Example: Denying All States for a Source S

Example: Permitting All States for a Group G

Example: Permitting All States for a Source S

Example: Filtering a Source S for a Group G

Example: Configuring an IGMP Proxy

Additional References

Related Documents

Standards

MIBs

RFCs

Technical Assistance

Feature Information for Customizing IGMP


Customizing IGMP


First Published: May 2, 2005
Last Updated: September 10, 2010

Internet Group Management Protocol (IGMP) is used to dynamically register individual hosts in a multicast group on a particular LAN segment. Enabling Protocol Independent Multicast (PIM) on an interface also enables IGMP operation on that interface.

This module describes ways to customize IGMP, including how to:

Configure the router to forward multicast traffic in the absence of directly connected IGMP hosts.

Enable an IGMP Version 3 (IGMPv3) host stack so that the router can function as a multicast network endpoint or host.

Enable routers to track each individual host that is joined to a particular group or channel in an IGMPv3 environment.

Control access to an SSM network using IGMP extended access lists.

Configure an IGMP proxy that enables hosts that are not directly connected to a downstream router to join a multicast group sourced from an upstream network.

Finding Feature Information

Your software release may not support all the features documented in this module. For the latest feature information and caveats, see the release notes for your platform and software release. To find information about the features documented in this module, and to see a list of the releases in which each feature is supported, see the "Feature Information for Customizing IGMP" section.

Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.

Contents

Prerequisites for Customizing IGMP

Restrictions for Customizing IGMP

Information About Customizing IGMP

How to Customize IGMP

Configuration Examples for Customizing IGMP

Additional References

Feature Information for Customizing IGMP

Prerequisites for Customizing IGMP

Before performing the tasks in this module, you should be familiar with the concepts explained in the "IP Multicast Technology Overview" module.

The tasks in this module assume that IP multicast has been enabled and that the Protocol Independent Multicast (PIM) interfaces have been configured using the tasks described in the "Configuring Basic IP Multicast" module.

Restrictions for Customizing IGMP

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 Source Specific Multicast (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 URL Rendezvous Directory (URD) or IGMP v3lite.

Interoperability with CGMP

Networks using Cisco Group Management Protocol (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 forwarding switch.

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 you want to use SSM, you need IGMPv3 and 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.

Information About Customizing IGMP

Role of the Internet Group Management Protocol

IGMP Version Differences

IGMP Join Process

IGMP Leave Process

IGMP Multicast Addresses

IGMPv3 Host Stack

IGMPv3 - Explicit Tracking Host, Group, and Channel

Extended ACL Support for IGMP to Support SSM in IPv4

IGMP Proxy

Role of the Internet Group Management Protocol

IGMP is used to dynamically register individual hosts in a multicast group on a particular LAN. Enabling PIM on an interface also enables IGMP. 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. Hosts use IGMP messages to join and leave multicast groups.

Hosts identify group memberships by sending IGMP messages to their local multicast router. Under IGMP, routers listen to IGMP messages and periodically send out queries to discover which groups are active or inactive on a particular subnet.

IGMP Version Differences

Table 1 provides high-level descriptions of the three IGMP versions.

Table 1 IGMP Versions

IGMP Version
Description

IGMPv1

Provides 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 the IGMPv1 host extensions for IP multicasting.

IGMPv2

Extends IGMP, allowing such capabilities as the IGMP leave process, group-specific queries, and an explicit maximum response time field. IGMPv2 also adds the capability for routers to elect the IGMP querier without dependence on the multicast protocol to perform this task. RFC 2236 defines IGMPv2.

IGMPv3

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. In addition, IGMPv3 supports the link local address 224.0.0.22, which is the destination IP address for IGMPv3 membership reports; all IGMPv3-capable multicast routers must listen to this address. RFC 3376 defines IGMPv3.



Note By default, enabling a PIM on an interface enables IGMPv2 on that router. IGMPv2 was designed to be as backward compatible with IGMPv1 as possible. To accomplish this backward compatibility, RFC 2236 defined special interoperability rules. If your network contains legacy IGMPv1 hosts, you should be familiar with these operability rules. For more information about IGMPv1 and IGMPv2 interoperability, see RFC 2236, Internet Group Management Protocol, Version 2.


Routers That Run IGMPv1

IGMPv1 routers send IGMP queries to the "all-hosts" multicast address of 224.0.0.1 to solicit multicast groups with active multicast receivers. The multicast receivers also can send IGMP reports to the router to notify it that they are interested in receiving a particular multicast stream. Hosts can send the report asynchronously or in response to the IGMP queries sent by the router. If more than one multicast receiver exists for the same multicast group, only one of these hosts sends an IGMP report message; the other hosts suppress their report messages.

In IGMPv1, there is no election of an IGMP querier. If more than one router on the segment exists, all the routers send periodic IGMP queries. IGMPv1 has no special mechanism by which the hosts can leave the group. If the hosts are no longer interested in receiving multicast packets for a particular group, they simply do not reply to the IGMP query packets sent from the router. The router continues sending query packets. If the router does not hear a response in three IGMP queries, the group times out and the router stops sending multicast packets on the segment for the group. If the host later wants to receive multicast packets after the timeout period, the host simply sends a new IGMP join to the router, and the router begins to forward the multicast packet again.

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 rendezvous point (RP) to inform it about host group membership.

Sending IGMP host-query messages.

Sending host-query messages by default every 60 seconds in order to keep the IGMP overhead on hosts and networks very low.

Routers That Run IGMPv2

IGMPv2 improves the query messaging capabilities of IGMPv1.

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

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

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

IGMPv2 also enhances IGMP by providing support for the following capabilities:

Querier election process—Provides the capability for IGMPv2 routers to elect the IGMP querier without having to rely on the multicast routing protocol to perform the process.

Maximum Response Time field—A new field in query messages permits the IGMP querier to specify the maximum query-response time. This field permits the tuning of the query-response process to control response burstiness and to fine-tune leave latencies.

Group-Specific Query messages—Permits the IGMP querier to perform the query operation on a specific group instead of all groups.

Leave-Group messages—Provides hosts with a method of notifying routers on the network that they wish to leave the group.

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.

Query messages are used to elect the IGMP querier as follows:

1. 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.

2. 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.

3. All routers (excluding the querier) start the query timer, which 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 two times the query interval.

Routers Running IGMPv3

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 group in the following two modes:

INCLUDE mode—In this mode, the receiver announces membership to a 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 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 an SSM network environment. For SSM to rely on IGMPv3, IGMPv3 must be available in the network stack portion of the operating systems running on the last hop routers and hosts and be used by the applications running on those hosts.

In IGMPv3, hosts send their membership reports to 224.0.0.22; all IGMPv3 routers, therefore, must listen to this address. Hosts, however, do not listen or respond to 224.0.0.22; they only send their reports to that address. In addition, in IGMPv3, there is no membership report suppression because IGMPv3 hosts do not listen to the reports sent by other hosts. Therefore, when a general query is sent out, all hosts on the wire respond.

IGMP Join Process

When a host wants to join a multicast group, the host sends one or more unsolicited membership reports for the multicast group it wants to join. The IGMP join process is the same for IGMPv1 and IGMPv2 hosts.

In IGMPv3, the join process for hosts proceeds as follows:

When a hosts wants to join a group, it sends an IGMPv3 membership report to 224.0.0.22 with an empty EXCLUDE list.

When a host wants to join a specific channel, it sends an IGMPv3 membership report to 224.0.0.22 with the address of the specific source included in the INCLUDE list.

When a host wants to join a group excluding particular sources, it sends an IGMPv3 membership report to 224.0.0.22 excluding those sources in the EXCLUDE list.


Note If some IGMPv3 hosts on a LAN wish to exclude a source and others wish to include the source, then the router will send traffic for the source on the LAN (that is, inclusion trumps exclusion in this situation).


IGMP Leave Process

The method that hosts use to leave a group varies depending on the version of IGMP in operation.

IGMPv1 Leave Process

There is no leave-group message in IGMPv1 to notify the routers on the subnet that a host no longer wants to receive the multicast traffic from a specific group. The host simply stops processing traffic for the multicast group and ceases responding to IGMP queries with IGMP membership reports for the group. As a result, the only way IGMPv1 routers know that there are no longer any active receivers for a particular multicast group on a subnet is when the routers stop receiving membership reports. To facilitate this process, IGMPv1 routers associate a countdown timer with an IGMP group on a subnet. When a membership report is received for the group on the subnet, the timer is reset. For IGMPv1 routers, this timeout interval is typically three times the query interval (3 minutes). This timeout interval means that the router may continue to forward multicast traffic onto the subnet for up to 3 minutes after all hosts have left the multicast group.

IGMPv2 Leave Process

IGMPv2 incorporates a leave-group message that provides the means for a host to indicate that it wishes to stop receiving multicast traffic for a specific group. When an IGMPv2 host leaves a multicast group, if it was the last host to respond to a query with a membership report for that group, it sends a leave-group message to the all-routers multicast group (224.0.0.2).

IGMPv3 Leave Process

IGMPv3 enhances the leave process by introducing the capability for a host to stop receiving traffic from a particular group, source, or channel in IGMP by including or excluding sources, groups, or channels in IGMPv3 membership reports.

IGMP Multicast Addresses

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.

IGMPv2 leave-group messages are destined to the address 224.0.0.2 (all routers on a subnet).

IGMPv3 membership reports are destined to the address 224.0.0.22; all IGMPv3-capable multicast routers must listen to this address.

IGMPv3 Host Stack

The IGMPv3 Host Stack feature enables routers or switches to function as multicast network endpoints or hosts. The feature adds INCLUDE mode capability to the IGMPv3 host stack for SSM groups. Enabling the IGMPv3 host stack ensures that hosts on a LAN can leverage SSM by enabling the router or switch to initiate IGMPv3 joins, such as in environments where fast channel change is required in a SSM deployments.

In support of the IGMPv3 Host Stack feature, the source keyword and source-address argument were added to the ip igmp join-group command to add INCLUDE mode capability to the IGMPv3 host stack for SSM groups.


Note Multiple ip igmp join-group command configurations with different source addresses for the same group are supported.


When the IGMPv3 Host Stack feature is configured, an IGMPv3 membership report is sent when one of the following events occurs:

When the ip igmp join-group command is configured for a group and source and there is no existing state for this (S, G) channel, an IGMPv3 report of group record type ALLOW_NEW_SOURCES for the source specified is sent on that interface.

When the no form of the ip igmp join-group command is configured for a group and source and there is state for this (S, G) channel, an IGMPv3 report of group record type BLOCK_OLD_SOURCES for the source specified is sent on that interface.

When a query is received, an IGMPv3 report is sent as defined in RFC 3376.


Note For more information about IGMPv3 group record types and membership reports, see RFC 3376, Internet Group Management Protocol, Version 3.


IGMPv3 - Explicit Tracking Host, Group, and Channel

The IGMPv3—Explicit Tracking Host, Group, and Channel feature enables a multicast router to explicitly track the membership of all multicast hosts in a particular multiaccess network. This enhancement to the Cisco IOS implementation of IGMPv3 enables the router to track each individual host that is joined to a particular group or channel.

Benefits of IGMPv3 - Explicit Tracking of Hosts, Groups, and Channels

Minimal Leave Latencies

The main benefit of the IGMPv3—Explicit Tracking of Hosts, Groups, and Channels feature is to allow minimal leave latencies when a host leaves a multicast group or channel. A router configured with IGMPv3 and explicit tracking can immediately stop forwarding traffic if the last host to request to receive traffic from the router indicates that it no longer wants to receive traffic. The leave latency is thus bound only by the packet transmission latencies in the multiaccess network and the processing time in the router.

In IGMPv2, when a router receives an IGMP leave message from a host, it must first send an IGMP group-specific query to learn if other hosts on the same multiaccess network are still requesting to receive traffic. If after a specific time (in Cisco IOS software, the default value is approximately 3 seconds) no host replies to the query, the router will then stop forwarding the traffic. This query process is required because, in IGMPv1 and IGMPv2, IGMP membership reports are suppressed if the same report has already been sent by another host in the network. Therefore, it is impossible for the router to reliably know how many hosts on a multiaccess network are requesting to receive traffic.

Faster Channel Changing

In networks where bandwidth is constrained between multicast routers and hosts (such as in DSL deployments), the bandwidth between routers and hosts is typically large enough to sustain, in general, only a limited number of multicast streams to be received in parallel. In these deployments, each host will typically join to only one multicast stream and the overall number of allowed hosts will be limited by the total bandwidth of the link. The effective leave latency in these environments defines the channel change time of the receiver application—a single host cannot receive the new multicast stream before forwarding of the old stream has stopped. If an application tries to change the channel faster than the leave latency, the application will overload the bandwidth of the access network, resulting in a temporary degradation of traffic flow for all hosts. The IGMPv3—Explicit Tracking of Hosts, Groups, and Channels feature allows for minimal leave latencies, and thus allows for fast channel changing capabilities.

Improved Diagnostics Capabilities

The IGMPv3—Explicit Tracking of Hosts, Groups, and Channels feature allows network administrators to easily determine which multicast hosts are joined to which multicast groups or channels.

Restrictions for IGMPv3 - Explicit Tracking of Hosts, Groups, and Channels

No MIB Support

There is no Simple Network Management Protocol (SNMP) MIB to track the IGMP membership of individual hosts. The MIBs supported by Cisco IOS software reflect only the aggregate membership of a particular interface on a router.

No Minimal Leave Latency for Groups with Legacy Hosts

If one or more hosts that supports only IGMPv1 or IGMPv2 are present on a network, the leave latencies for the multicast groups to which those hosts are joined will revert to the leave latencies of the IGMP version of the hosts—approximately 3 seconds for IGMPv2 and up to 180 seconds (3 minutes) for IGMPv1. This condition affects only the multicast groups to which those legacy hosts are actually joined at any given point in time. In addition, the membership reports for these multicast groups sent by IGMPv3 hosts may revert to IGMPv1 or IGMPv2 membership reports, thus disabling explicit tracking of those host memberships.

No Explicit Tracking Support for IGMP v3lite and URD

Explicit tracking of IGMP Version 3 lite (IGMP v3lite) or URL Rendezvous Directory (URD) channel membership reports is not supported in Release 12.0(19)S or earlier releases. In these releases, the leave latency for multicast groups sending traffic to hosts using IGMP v3lite or URD will be determined by the leave latency of the version of IGMP configured on the hosts (for IGMPv3, the leave latency is typically 3 seconds when explicit tracking is not configured).

Extended ACL Support for IGMP to Support SSM in IPv4

The Extended ACL Support for IGMP to Support SSM in IPv4 feature enables IGMPv3 to accommodate extended access lists. IGMPv3 support of extended access lists allows you to leverage an important advantage of SSM in IPv4, that of filtering IGMPv3 reports based on source address, group address, or both.

Benefits of Extended Access List Support for IGMP to Support SSM in IPv4

IGMPv3 accommodates extended access lists, which allow you to leverage an important advantage of SSM in IPv4, that of basing access on source IP address. Prior to this feature, an IGMP access list accepted only a standard access list, allowing membership reports to be filtered based only on multicast group addresses.

IGMPv3 allows multicast receivers not only to join to groups, but to groups including or excluding sources. For appropriate access control, it is therefore necessary to allow filtering of IGMPv3 messages not only by group addresses reported, but by group and source addresses. IGMP extended access lists introduce this functionality. Using SSM with an IGMP extended access list (ACL) allows you to permit or deny source S and group G (S, G) in IGMPv3 reports, thereby filtering IGMPv3 reports based on source address, group address, or source and group address.

Source Addresses in IGMPv3 Reports for ASM Groups

IGMP extended access lists also can be used to permit or filter (deny) traffic based on (0.0.0.0, G), that is, (*, G) in IGMP reports that are non-SSM, such as Any Source Multicast (ASM).


Note The permit and deny statements equivalent to (*, G) are permit host 0.0.0.0 host group-address and
deny host 0.0.0.0 host group group-address, respectively.


Filtering applies to IGMPv3 reports for both ASM and SSM groups, but it is most important for SSM groups because Cisco IOS IP multicast routing ignores source addresses in IGMPv3 reports for ASM groups. Source addresses in IGMPv3 membership reports for ASM groups are stored in the Cisco IOS IGMP cache (as displayed with the show ip igmp membership command), but PIM-based IP multicast routing considers only the ASM groups reported. Therefore, adding filtering for source addresses for ASM groups impacts only the IGMP cache for ASM groups.

How IGMP Checks an Extended Access List

When an IGMP extended access list is referenced in the ip igmp access-group command on an interface, the (S, G) pairs in the permit and deny statements of the extended access list are matched against the (S, G) pair of the IGMP reports received on the interface. For example, if an IGMP report with (S1, S2...Sn, G) is received, first the group (0.0.0.0, G) is checked against the access list statements. The convention (0.0.0.0, G) means (*, G), which is a wildcard source with a multicast group number. If the group is denied, the entire IGMP report is denied. If the group is permitted, each individual (S, G) pair is checked against the access list. Denied sources are taken out of the IGMP report, thereby denying the sources access to the multicast traffic.

IGMP Proxy

An IGMP proxy enables hosts in a unidirectional link routing (UDLR) environment that are not directly connected to a downstream router to join a multicast group sourced from an upstream network.

Figure 1 illustrates a sample topology that shows two UDLR scenarios:

Traditional UDL routing scenario—A UDL router with directly connected receivers.

IGMP proxy scenario—UDL router without directly connected receivers.


Note IGMP UDLs are needed on the upstream and downstream routers. For more information about IGMP UDLs, see the "Configuring IP Multicast Over Unidirectional Links" module.


Figure 1 IGMP Proxy Topology

Scenario 1—Traditional UDLR Scenario (UDL Router with Directly Connected Receivers)

For scenario 1, no IGMP proxy mechanism is needed. In this scenario, the following sequence of events occurs:

1. User 2 sends an IGMP membership report requesting interest in group G.

2. Router B receives the IGMP membership report, adds a forwarding entry for group G on LAN B, and proxies the IGMP report to Router A, which is the UDLR upstream router.

3. The IGMP report is then proxied across the Internet link.

4. Router A receives the IGMP proxy and maintains a forwarding entry on the unidirectional link.

Scenario 2—IGMP Proxy Scenario (UDL Router without Directly Connected Receivers)

For scenario 2, the IGMP proxy mechanism is needed to enable hosts that are not directly connected to a downstream router to join a multicast group sourced from an upstream network. In this scenario, the following sequence of events occurs:

1. User 1 sends an IGMP membership report requesting interest in group G.

2. Router C sends a PIM Join message hop-by-hop to the RP (Router B).

3. Router B receives the PIM Join message and adds a forwarding entry for group G on LAN B.

4. Router B periodically checks its mroute table and proxies the IGMP membership report to its upstream UDL router across the Internet link.

5. Router A creates and maintains a forwarding entry on the unidirectional link (UDL).

In an enterprise network, it is desirable to be able to receive IP multicast traffic via satellite and forward the traffic throughout the network. With unidirectional link routing (UDLR) alone, scenario 2 would not be possible because receiving hosts must be directly connected to the downstream router, Router B. The IGMP proxy mechanism overcomes this limitation by creating an IGMP report for (*, G) entries in the multicast forwarding table. To make this scenario functional, therefore, you must enable IGMP report forwarding of proxied (*, G) multicast static route (mroute) entries (using the ip igmp mroute-proxy command) and enable the mroute proxy service (using the ip igmp proxy-service command) on interfaces leading to PIM-enabled networks with potential members.


Note Because PIM messages are not forwarded upstream, each downstream network and the upstream network have a separate domain.


How to Customize IGMP

This section contains the following tasks:

Configuring the Router to Forward Multicast Traffic in the Absence of Directly Connected IGMP Hosts (optional)

Enabling the IGMPv3 Host Stack (optional)

Configuring IGMPv3—Explicit Tracking of Hosts, Groups, and Channels (optional)

Controlling Access to an SSM Network Using IGMP Extended Access Lists (optional)

Configuring an IGMP Proxy (optional)

Configuring the Router to Forward Multicast Traffic in the Absence of Directly Connected IGMP Hosts

Perform this optional task to configure the router to forward multicast traffic in the absence of directly connected IGMP hosts.

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. When the ip igmp static-group command is configured, the outgoing interface will appear in the IGMP cache, but the router itself will not be a member of the group, as evidenced by lack of an "L" (local) flag in the multicast route entry.

SUMMARY STEPS

1. enable

2. configure terminal

3. interface type number

4. ip igmp join-group group-address

5. end

6. show ip igmp interface [interface-type interface-number]

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

interface type number

Example:

Router(config)# interface ethernet 1

Enters interface configuration mode.

For the type and number arguments, specify an interface that is connected to hosts.

Step 4 

ip igmp join-group group-address

or

ip igmp static-group {* | group-address [source source-address]}

Example:

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

or

Example:

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

Configures the router to forward multicast traffic in the absence of directly connected IGMP hosts.

Use the ip igmp join-group command to configure an interface on the router to join the specified group.

With this method, the router accepts the multicast packets in addition to forwarding them. Accepting the multicast packets prevents the router from fast switching.

or

Use the ip igmp static-group command to configure static group membership entries on an interface.

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.

Step 5 

end

Example:

Router(config-if)# end

Ends the current configuration session and returns to privileged EXEC mode.

Step 6 

show ip igmp interface [interface-type interface-number]

Example:

Router# show ip igmp interface

(Optional) Displays multicast-related information about an interface.

Enabling the IGMPv3 Host Stack

Perform this optional task to add INCLUDE mode capability to the IGMPv3 host stack for SSM groups.

Prerequisites

This task requires the routers to be running Cisco IOS Release 12.3(14)T or a subsequent release.

This task assumes that the router has been configured for SSM.

Restrictions

IGMP version 3 must be configured on the interface.

If the ip igmp join-group command is configured for a group and source and IGMPv3 is not configured on the interface, (S, G) state will be created but no IGMPv3 membership reports will be sent.

The router must be configured for SSM. IGMPv3 membership reports will only be sent for SSM channels.

SUMMARY STEPS

1. enable

2. configure terminal

3. interface type number

4. ip igmp version 3

5. ip igmp join-group group-address source source-address

6. Repeat Step 5 to provide INCLUDE mode capability for additional (S, G) channels.

7. end

8. show ip igmp groups detail

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

interface type number

Example:

Router(config)# interface FastEthernet 1

Enters interface configuration mode.

For the type and number arguments, specify an interface that is connected to hosts.

Step 4 

ip igmp version 3

Example:

Router(config-if)# ip igmp version 3

Enables IGMPv3 on the interface.

Step 5 

ip igmp join-group group-address source source-address

Example:

Router(config-if)# ip igmp join-group 232.2.2.2 source 10.1.1.1

Configures the interface to join the specified (S, G) channel.

This command enables the router to provide INCLUDE mode capability for the (S, G) channel specified for the group-address and source-address arguments.

Step 6 

Repeat Step 5 to provide INCLUDE mode capability for additional (S, G) channels.

Step 7 

end

Example:

Router(config-if)# end

Ends the current configuration session and returns to privileged EXEC mode.

Step 8 

show ip igmp groups detail

Example:

Router# show ip igmp groups detail

Displays the multicast groups with receivers that are directly connected to the router and that were learned through IGMP.

Use this command to verify that the router has received membership reports for (S, G) channels configured using the ip igmp join group command. When the router is correctly receiving IGMP membership reports for a channel, the "Flags:" output field will display the L and SSM flags.

Configuring IGMPv3—Explicit Tracking of Hosts, Groups, and Channels

Perform this optional task to enable a multicast router to explicitly track the membership of all multicast hosts in a particular multiaccess network. This enhancement to the Cisco IOS implementation of IGMPv3 enables the router to track each individual host that is joined to a particular group or channel.

SUMMARY STEPS

1. enable

2. configure terminal

3. interface type number

4. ip igmp version 3

5. ip igmp explicit-tracking

6. end

7. show ip igmp membership [group-address | group-name] [tracked] [all]

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

interface type number

Example:

Router(config)# interface ethernet 1

Enters interface configuration mode.

For the type and number arguments, specify an interface that is connected to hosts.

Step 4 

ip igmp version 3

Example:

Router(config-if)# ip igmp version 3

Enables IGMPv3.

Step 5 

ip igmp explicit-tracking

Example:

Router(config-if)# ip igmp explicit-tracking

Enables explicit tracking of hosts, groups, and channels for IGMPv3.

Step 6 

end

Example:

Router(config-if)# end

Ends the current configuration session and returns to privileged EXEC mode.

Step 7 

show ip igmp membership [group-address | group-name] [tracked] [all]

Example:

Router# show ip igmp membership

(Optional) Displays IGMP membership information for multicast groups and (S, G) channels.

Controlling Access to an SSM Network Using IGMP Extended Access Lists

IGMPv3 includes support for source filtering, that is, the ability for a system to report interest in receiving packets only from specific source addresses, or from all but specific source addresses, sent to a particular multicast address.

Perform this optional task to control access to an SSM network by using an IGMP extended access list that filters SSM traffic based on source address, group address, or both.

SUMMARY STEPS

1. enable

2. configure terminal

3. ip multicast-routing [distributed]

4. ip pim ssm {default | range access-list}

5. ip access-list extended access-list-name

6. deny igmp source source-wildcard destination destination-wildcard [igmp-type] [precedence precedence] [tos tos] [log] [time-range time-range-name] [fragments]

7. permit igmp source source-wildcard destination destination-wildcard [igmp-type] [precedence precedence] [tos tos] [log] [time-range time-range-name] [fragments]

8. end

9. interface type number

10. ip igmp access-group access-list

11. ip pim sparse-mode

12. Repeat Steps 1 through 11 on all interfaces that require access control of SSM channel membership.

13. ip igmp version 3

14. Repeat Step 13 on all host-facing interfaces.

15. end

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

ip multicast-routing [distributed]

Example:

Router(config)# ip multicast-routing

Enables IP multicast routing.

Use the distributed keyword to enable Multicast Distributed Switching.

Step 4 

ip pim ssm {default | range access-list}

Example:

Router(config)# ip pim ssm default

Configures SSM service.

The default keyword defines the SSM range access list as 232/8.

The range keyword specifies the standard IP access list number or name that defines the SSM range.

Step 5 

ip access-list extended access-list-name

Example:

Router(config)# ip access-list extended mygroup

Specifies an extended named IP access list.

Step 6 

deny igmp source source-wildcard destination destination-wildcard [igmp-type] [precedence precedence] [tos tos] [log] [time-range time-range-name] [fragments]

Example:

Router(config-ext-nacl)# deny igmp host 10.1.2.3 any

(Optional) Filters the specified source address or group address from the IGMP report, thereby restricting hosts on a subnet from membership to the (S, G) channel.

Repeat this step to restrict hosts on a subnet membership to other (S, G) channels. (These sources should be more specific than a subsequent permit statement because any sources or groups not specifically permitted are denied.)

Remember that the access list ends in an implicit deny statement.

This example creates a deny statement that filters all groups for source 10.1.2.3, which effectively denies the source.

Step 7 

permit igmp source source-wildcard destination destination-wildcard [igmp-type] [precedence precedence] [tos tos] [log] [time-range time-range-name] [fragments]

Example:

Router(config-ext-nacl)# permit igmp any any

Allows a source address or group address in an IGMP report to pass the IP access list.

You must have at least one permit statement in an access list.

Repeat this step to allow other sources to pass the IP access list.

This example allows group membership to sources and groups not denied by prior deny statements.

Step 8 

end

Example:

Router(config-ext-nacl)# end

Ends the current configuration session and returns to privileged EXEC mode.

Step 9 

interface type number

Example:

Router(config)# interface ethernet 0

Selects an interface that is connected to hosts on which IGMPv3 can be enabled.

Step 10 

ip igmp access-group access-list

Example:

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

Applies the specified access list to IGMP reports.

Step 11 

ip pim sparse-mode

Example:

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

Enables PIM-SM on the interface.

Note You must use sparse mode.

Step 12 

Repeat Steps 1 through 11 on all interfaces that require access control of SSM channel membership.

Step 13 

ip igmp version 3

Example:

Router(config-if)# ip igmp version 3

Enables IGMPv3 on this interface. The default version of IGMP is set to Version 2. Version 3 is required by SSM.

Step 14 

Repeat Step 13 on all host-facing interfaces.

Step 15 

end

Example:

Router(config-if)# end

Ends the current configuration session and returns to privileged EXEC mode.

Configuring an IGMP Proxy

Perform this optional task to configure unidirectional link (UDL) routers to use the IGMP proxy mechanism. An IGMP proxy enables hosts in a unidirectional link routing (UDLR) environment that are not directly connected to a downstream router to join a multicast group sourced from an upstream network.

To configure an IGMP proxy, you will need to perform the following tasks:

Configuring the Upstream UDL Router for IGMP UDLR

Configuring the Downstream UDL Router for IGMP UDLR with IGMP Proxy Support

Prerequisites

Before configuring an IGMP proxy, ensure that the following conditions exist:

All routers on the IGMP UDL have the same subnet address. If all routers on the UDL cannot have the same subnet address, the upstream router must be configured with secondary addresses to match all the subnets that the downstream routers are attached to.

This task assumes that IP multicast has been enabled and that the PIM interfaces have been configured.

When enabling PIM on the interfaces for the IGMP proxy scenario, keep in mind the following guidelines:

Use PIM sparse mode (PIM-SM) when the interface is operating in a sparse-mode region and you are running static RP, bootstrap (BSR), or Auto-RP with the Auto-RP listener capability.

Use PIM sparse-dense mode when the interface is running in a sparse-dense mode region and you are running Auto-RP without the Auto-RP listener capability.

Use PIM dense mode (PIM-DM) for this step when the interface is operating in dense mode and is, thus, participating in a dense-mode region.

Use PIM-DM with the proxy-register capability when the interface is receiving source traffic from a dense-mode region that needs to reach receivers that are in a sparse-mode region.

Configuring the Upstream UDL Router for IGMP UDLR

Perform this task to configure the upstream UDL router for IGMP UDLR.

SUMMARY STEPS

1. enable

2. configure terminal

3. interface type number

4. ip igmp unidirectional-link

5. end

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

interface type number

Example:

Router(config)# interface ethernet 1

Enters interface configuration mode.

For the type and number arguments, specify the interface to be used as the UDL on the upstream router.

Step 4 

ip igmp unidirectional-link

Example:

Router(config-if)# ip igmp unidirectional-link

Configures IGMP on the interface to be unidirectional for IGMP UDLR.

Step 5 

end

Example:

Router(config-if)# end

Ends the current configuration session and returns to privileged EXEC mode.

Configuring the Downstream UDL Router for IGMP UDLR with IGMP Proxy Support

Perform this task to configure the downstream UDL router for IGMP UDLR with IGMP proxy support.

SUMMARY STEPS

1. enable

2. configure terminal

3. interface type number

4. ip igmp unidirectional-link

5. exit

6. interface type number

7. ip igmp mroute-proxy type number

8. exit

9. interface type number

10. ip igmp helper-address udl interface-type interface-number

11. ip igmp proxy-service

12. end

13. show ip igmp interface

14. show ip igmp udlr

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

interface type number

Example:

Router(config)# interface ethernet 0

Enters interface configuration mode.

For the type and number arguments, specify the interface to be used as the UDL on the downstream router for IGMP UDLR.

Step 4 

ip igmp unidirectional-link

Example:

Router(config-if)# ip igmp unidirectional-link

Configures IGMP on the interface to be unidirectional for IGMP UDLR.

Step 5 

exit

Example:

Router(config-if)# exit

Exits interface configuration mode and returns to global configuration mode.

Step 6 

interface type number

Example:

Router(config)# interface ethernet 1

Enters interface configuration mode.

For the type and number arguments, select an interface that is facing the nondirectly hosts.

Step 7 

ip igmp mroute-proxy type number

Example:

Router(config-if)# ip igmp mroute-proxy loopback 0

Enables IGMP report forwarding of proxied (*, G) multicast static route (mroute) entries.

This step is performed to enable the forwarding of IGMP reports to a proxy service interface for all (*, G) forwarding entries in the multicast forwarding table.

In this example, the ip igmp mroute-proxy command is configured on Ethernet interface 1 to request that IGMP reports be sent to loopback interface 0 for all groups in the mroute table that are forwarded to Ethernet interface 1.

Step 8 

exit

Example:

Router(config-if)# exit

Exits interface configuration mode and returns to global configuration mode.

Step 9 

interface type number

Example:

Router(config)# interface loopback 0

Enters interface configuration mode for the specified interface.

In this example, loopback interface 0 is specified.

Step 10 

ip igmp helper-address udl interface-type interface-number

Example:

Router(config-if)# ip igmp helper-address udl ethernet 0

Configures IGMP helpering for UDLR.

This step allows the downstream router to helper IGMP reports received from hosts to an upstream router connected to a UDL associated with the interface specified for the interface-type and interface-number arguments.

In the example topology, IGMP helpering is configured over loopback interface 0 on the downstream router. Loopback interface 0, thus, is configured to helper IGMP reports from hosts to an upstream router connected to Ethernet interface 0.

Step 11 

ip igmp proxy-service

Example:

Router(config-if)# ip igmp proxy-service

Enables the mroute proxy service.

When the mroute proxy service is enabled, the router periodically checks the static mroute table for (*, G) forwarding entries that match interfaces configured with the ip igmp mroute-proxy command (see Step 7) based on the IGMP query interval. Where there is a match, one IGMP report is created and received on this interface.

Note The ip igmp proxy-service command is intended to be used with the ip igmp helper-address (UDL) command.

In this example, the ip igmp proxy-service command is configured on loopback interface 0 to enable the forwarding of IGMP reports out the interface for all groups on interfaces registered through the ip igmp mroute-proxy command (see Step 7).

Step 12 

end

Example:

Router(config-if)# end

Ends the current configuration session and returns to privileged EXEC mode.

Step 13 

show ip igmp interface

Example:

Router# show ip igmp interface

(Optional) Displays multicast-related information about an interface.

Step 14 

show ip igmp udlr

Example:

Router# show ip igmp udlr

(Optional) Displays UDLR information for directly connected multicast groups on interfaces that have a UDL helper address configured.

Configuration Examples for Customizing IGMP

This section provides the following configuration examples:

Example: Configuring the Router to Forward Multicast Traffic in the Absence of Directly Connected IGMP Hosts

Example: Enabling the IGMPv3 Host Stack

Example: Configuring IGMPv3—Explicit Tracking of Hosts, Groups, and Channels

Example: Controlling Access to an SSM Network Using IGMP Extended Access Lists

Example: Configuring an IGMP Proxy

Example: Configuring the Router to Forward Multicast Traffic in the Absence of Directly Connected IGMP Hosts

The following example shows how to configure a router to forward multicast traffic in the absence of directly connected IGMP hosts using the ip igmp join-group 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.

In this example, Fast Ethernet interface 0/0 on the router is configured to join the group 225.2.2.2:

interface FastEthernet0/0
 ip igmp join-group 225.2.2.2 

The following example shows how to configure a router to forward multicast traffic in the absence of directly connected IGMP hosts using the ip igmp static-group 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.

In this example, static group membership entries for group 225.2.2.2 are configured on Fast Ethernet interface 0/1:

interface FastEthernet0/0
 ip igmp static-group 225.2.2.2

Example: Enabling the IGMPv3 Host Stack

The following example shows how to add INCLUDE mode capability to the IGMPv3 host stack for SSM groups:

interface FastEthernet0/0
 ip igmp join-group 232.2.2.2 source 10.1.1.1
 ip igmp join-group 232.2.2.2 source 10.5.5.5
 ip igmp join-group 232.2.2.2 source 10.5.5.6
 ip igmp join-group 232.2.2.4 source 10.5.5.5
 ip igmp join-group 232.2.2.4 source 10.5.5.6
 ip igmp version 3

Based on the configuration presented in this example, the following is sample output from the debug igmp command. The messages confirm that IGMPv3 membership reports are being sent after IGMPv3 and SSM are enabled:

Router# debug igmp

*May 4 23:48:34.251: IGMP(0): Group 232.2.2.2 is now in the SSM range, changing 
*May 4 23:48:34.251: IGMP(0): Building v3 Report on Ethernet0/0 
*May 4 23:48:34.251: IGMP(0): Add Group Record for 232.2.2.2, type 5 
*May 4 23:48:34.251: IGMP(0): Add Source Record 10.1.1.1 
*May 4 23:48:34.251: IGMP(0): Add Source Record 10.5.5.5 
*May 4 23:48:34.251: IGMP(0): Add Source Record 10.5.5.6 
*May 4 23:48:34.251: IGMP(0): Add Group Record for 232.2.2.2, type 6 
*May 4 23:48:34.251: IGMP(0): No sources to add, group record removed from report 
*May 4 23:48:34.251: IGMP(0): Send unsolicited v3 Report with 1 group records on 
FastEthernet0/0 
*May 4 23:48:34.251: IGMP(0): Group 232.2.2.4 is now in the SSM range, changing 
*May 4 23:48:34.251: IGMP(0): Building v3 Report on Ethernet0/0 
*May 4 23:48:34.251: IGMP(0): Add Group Record for 232.2.2.4, type 5 
*May 4 23:48:34.251: IGMP(0): Add Source Record 10.5.5.5 
*May 4 23:48:34.251: IGMP(0): Add Source Record 10.5.5.6 
*May 4 23:48:34.251: IGMP(0): Add Group Record for 232.2.2.4, type 6 
*May 4 23:48:34.251: IGMP(0): No sources to add, group record removed from report 
*May 4 23:48:34.251: IGMP(0): Send unsolicited v3 Report with 1 group records on 
FastEthernet0/0 
*May 4 23:48:35.231: IGMP(0): Building v3 Report on Ethernet0/0 
*May 4 23:48:35.231: IGMP(0): Add Group Record for 232.2.2.2, type 5 
*May 4 23:48:35.231: IGMP(0): Add Source Record 10.1.1.1 
*May 4 23:48:35.231: IGMP(0): Add Source Record 10.5.5.5 
*May 4 23:48:35.231: IGMP(0): Add Source Record 10.5.5.6 
*May 4 23:48:35.231: IGMP(0): Add Group Record for 232.2.2.2, type 6 
*May 4 23:48:35.231: IGMP(0): No sources to add, group record removed from report 
*May 4 23:48:35.231: IGMP(0): Send unsolicited v3 Report with 1 group records on 
FastEthernet0/0 
*May 4 23:48:35.231: IGMP(0): Building v3 Report on Ethernet0/0 
*May 4 23:48:35.231: IGMP(0): Add Group Record for 232.2.2.4, type 5 
*May 4 23:48:35.231: IGMP(0): Add Source Record 10.5.5.5 
*May 4 23:48:35.231: IGMP(0): Add Source Record 10.5.5.6 
*May 4 23:48:35.231: IGMP(0): Add Group Record for 232.2.2.4, type 6 
*May 4 23:48:35.231: IGMP(0): No sources to add, group record removed from report 
*May 4 23:48:35.231: IGMP(0): Send unsolicited v3 Report with 1 group records on 
FastEthernet0/0 

The following is sample output from the show ip igmp groups command with the detail keyword for this configuration example scenario. The show ip igmp groups command can be used to verify that the router has received membership reports for (S, G) channels configured using the ip igmp join group command. When the router is correctly receiving IGMP membership reports for a channel, the "Flags:" output field will display the L and SSM flags.

Router# show ip igmp groups detail

Flags: L - Local, U - User, SG - Static Group, VG - Virtual Group,
       SS - Static Source, VS - Virtual Source

Interface:      FastEthernet0/0
Group:          232.2.2.2
Flags:          L SSM 
Uptime:         00:04:12
Group mode:     INCLUDE
Last reporter:  10.4.4.7
Group source list: (C - Cisco Src Report, U - URD, R - Remote, S - Static,
                    V - Virtual, Ac - Accounted towards access control limit,
                    M - SSM Mapping, L - Local)  
  Source Address   Uptime    v3 Exp   CSR Exp   Fwd  Flags
  10.1.1.1         00:04:10  stopped   stopped    Yes  L
  10.5.5.5         00:04:12  stopped   stopped    Yes  L
  10.5.5.6         00:04:12  stopped   stopped    Yes  L

Interface:      FastEthernet0/0
Group:          232.2.2.3
Flags:          L SSM 
Uptime:         00:04:12
Group mode:     INCLUDE
Last reporter:  10.4.4.7
Group source list: (C - Cisco Src Report, U - URD, R - Remote, S - Static,
                    V - Virtual, Ac - Accounted towards access control limit,
                    M - SSM Mapping, L - Local)  
  Source Address   Uptime    v3 Exp   CSR Exp   Fwd  Flags
  10.5.5.5         00:04:14  stopped   stopped   Yes  L
  10.5.5.6         00:04:14  stopped   stopped   Yes  L

Example: Configuring IGMPv3—Explicit Tracking of Hosts, Groups, and Channels

The following example shows how to enable explicit tracking. The example shows a basic configuration for enabling IP multicast with SSM, IGMPv3, and explicit tracking.

ip multicast-routing 
interface ethernet 0 
 description access network to desktop systems 
 ip address 10.1.0.1 255.255.255.0 
 ip pim sparse-dense-mode 
 ip mroute-cache 
 ip igmp version 3 
 ip igmp explicit-tracking 
interface ethernet 1 
 description backbone interface no connected hosts
 ip address 10.10.0.1 255.255.255.0 
 ip pim sparse-dense-mode 
 ip mroute-cache 
ip pim ssm default 

Example: Controlling Access to an SSM Network Using IGMP Extended Access Lists

This section contains the following configuration examples for controlling access to an SSM network using IGMP extended access lists:

Example: Denying All States for a Group G

Example: Denying All States for a Source S

Example: Permitting All States for a Group G

Example: Permitting All States for a Source S

Example: Filtering a Source S for a Group G


Note Keep in mind that access lists are very flexible: there are many combinations of permit and deny statements one could use in an access list to filter multicast traffic. The examples in this section simply provide a few examples of how it can be done.


Example: Denying All States for a Group G

The following example shows how to deny all states for a group G. In this example, FastEthernet interface 0/0 is configured to filter all sources for SSM group 232.2.2.2 in IGMPv3 reports, which effectively denies this group.

ip access-list extended test1
 deny igmp any host 232.2.2.2
 permit igmp any any
!
interface FastEthernet0/0
 ip igmp access-group test1

Example: Denying All States for a Source S

The following example shows how to deny all states for a source S. In this example, Ethernet interface 1/1 is configured to filter all groups for source 10.2.1.32 in IGMPv3 reports, which effectively denies this source.

ip access-list extended test2
 deny igmp host 10.2.1.32 any
 permit igmp any any
!
interface Ethernet1/1
 ip igmp access-group test2

Example: Permitting All States for a Group G

The following example shows how to permit all states for a group G. In this example, Ethernet interface 1/2 is configured to accept all sources for SSM group 232.1.1.10 in IGMPv3 reports, which effectively accepts this group altogether.

ip access-list extended test3
 permit igmp any host 232.1.1.10
!
interface Ethernet1/2
 ip igmp access-group test3

Example: Permitting All States for a Source S

The following example shows how to permit all states for a source S. In this example, Ethernet interface 1/2 is configured to accept all groups for source 10.6.23.32 in IGMPv3 reports, which effectively accepts this source altogether.

ip access-list extended test4
 permit igmp host 10.6.23.32 any
!
interface Ethernet1/2
 ip igmp access-group test4

Example: Filtering a Source S for a Group G

The following example shows how to filter a particular source S for a group G. In this example, Ethernet interface 0/3 is configured to filter source 232.2.2.2 for SSM group 232.2.30.30 in IGMPv3 reports.

ip access-list extended test5
 deny igmp host 10.4.4.4 host 232.2.30.30
 permit igmp any any
!
interface Ethernet0/3
 ip igmp access-group test5

Example: Configuring an IGMP Proxy

The following example shows how to configure the upstream UDL router for IGMP UDLR and the downstream UDL router for IGMP UDLR with IGMP proxy support. The IGMP proxy mechanism is needed to enable hosts that are not directly connected to a downstream router to join a multicast group sourced from an upstream network.

The example is based on the topology illustrated in Figure 2. In this example topology, Router A is the upstream router and Router B is the downstream router.


Note For more details about configuring an IGMP proxy, see the "Configuring an IGMP Proxy" section.


Figure 2 IGMP Proxy Example Topology

Router A Configuration

interface ethernet 0 
ip address 10.1.1.1 255.255.255.0 
ip pim dense-mode 
! 
interface ethernet 1 
ip address 10.2.1.1 255.255.255.0 
ip pim dense-mode 
ip igmp unidirectional-link 
! 
interface ethernet 2 
ip address 10.3.1.1 255.255.255.0 

Router B Configuration

ip pim rp-address 10.5.1.1 5 
access-list 5 permit 239.0.0.0 0.255.255.255 
! 
interface loopback 0 
ip address 10.7.1.1 255.255.255.0 
ip pim dense-mode 
ip igmp helper-address udl ethernet 0 
ip igmp proxy-service 
! 
interface ethernet 0 
ip address 10.2.1.2 255.255.255.0 
ip pim dense-mode 
ip igmp unidirectional-link 
! 
interface ethernet 1 
ip address 10.5.1.1 255.255.255.0 
ip pim sparse-mode 
ip igmp mroute-proxy loopback 0 
! 
interface ethernet 2 
ip address 10.6.1.1 255.255.255.0 

Additional References

Related Documents

Related Topic
Document Title

Overview of the IP multicast technology area

"IP Multicast Technology Overview" module

Basic IP multicast concepts, configuration tasks, and examples

"Configuring Basic IP Multicast" module

IGMP UDLR concepts, configuration tasks, and examples

"Configuring IP Multicast over Unidirectional Links" module

IP multicast commands: complete command syntax, command mode, command history, command defaults, usage guidelines, and examples

Cisco IOS IP Multicast Command Reference


Standards

Standard
Title

No new or modified standards are supported by these features, and support for existing standards has not been modified by these features.


MIBs

MIB
MIBs Link

No new or modified MIBs are supported by these features, and support for existing MIBs has not been modified by these features.

To locate and download MIBs for selected platforms, Cisco software releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs


RFCs

RFC
Title

RFC 1112

Host extensions for IP multicasting

RFC 2236

Internet Group Management Protocol, Version 2

RFC 3376

Internet Group Management Protocol, Version 3


Technical Assistance

Description
Link

The Cisco Support website provides extensive online resources, including documentation and tools for troubleshooting and resolving technical issues with Cisco products and technologies.

To receive security and technical information about your products, you can subscribe to various services, such as the Product Alert Tool (accessed from Field Notices), the Cisco Technical Services Newsletter, and Really Simple Syndication (RSS) Feeds.

Access to most tools on the Cisco Support website requires a Cisco.com user ID and password.

http://www.cisco.com/cisco/web/support/index.html


Feature Information for Customizing IGMP

Table 2 lists the release history for this feature.

Table 2 lists the features in this module and provides links to specific configuration information.

For information on a feature in this technology that is not documented here, see the "IP Multicast Features Roadmap."

Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.


Note Table 2 lists only the software release that introduced support for a given feature in a given software release train. Unless noted otherwise, subsequent releases of that software release train also support that feature.


Table 2 Feature Information for Customizing IGMP

Feature Name
Releases
Feature Information

Extended ACL Support for IGMP to Support SSM in IPv4

12.0(19)S
12.3(7)T
12.2(25)S
12.2(27)SBC
12.2(33)SRA
12.2(33)SXH
15.0(1)S
Cisco IOS XE 3.1.0SG

The Extended ACL Support for IGMP to Support SSM in IPv4 feature enables IGMPv3 to accommodate extended access lists. IGMPv3 support of extended access lists allows you to leverage an important advantage of SSM in IPv4, that of filtering IGMPv3 reports based on source address, group address, or both.

The following sections provide information about this feature:

   

Controlling Access to an SSM Network Using IGMP Extended Access Lists

Example: Controlling Access to an SSM Network Using IGMP Extended Access Lists

The following command was introduced by this feature:
ip igmp access-group.

IGMPv3 Host Stack

12.3(14)T
12.2(33)SRE

The IGMPv3 Host Stack feature enables routers and switches to function as multicast network endpoints or hosts. The feature adds INCLUDE mode capability to the IGMPv3 host stack for SSM groups. Enabling the IGMPv3 host stack ensures that hosts on a LAN can leverage SSM by enabling the router to initiate IGMPv3 joins, such as in environments where fast channel change is required in a SSM deployments.

The following sections provide information about this feature:

Enabling the IGMPv3 Host Stack

Example: Enabling the IGMPv3 Host Stack

The following command was modified by this feature: ip igmp join-group.

IGMPv3—Explicit Tracking Host, Group, and Channel

12.0(19)S
12.2(8)T
12.2(14)S
15.0(1)S
Cisco IOS XE 3.1.0SG

The IGMPv3—Explicit Tracking Host, Group, and Channel feature enables a multicast router to explicitly track the membership of all multicast hosts in a particular multiaccess network. This enhancement to the Cisco IOS implementation of IGMPv3 enables the router to track each individual host that is joined to a particular group or channel.

The following sections provide information about this feature:

Configuring IGMPv3—Explicit Tracking of Hosts, Groups, and Channels

Example: Configuring IGMPv3—Explicit Tracking of Hosts, Groups, and Channels

The following commands were introduced by this feature:
ip igmp explicit-tracking, show ip igmp membership.