The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
Your software release may not support all the features documented in this module. For the latest caveats and feature information, see Bug Search Tool and 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 table at the end of this module.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support. To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.
The following are the restrictions for configuring IGMP:
Note | For IGMP Version 3, only IGMP Version 3 BISS (Basic IGMPv3 Snooping Support) is supported. |
Information About IGMP
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.
Hosts identify group memberships by sending IGMP messages to their local multicast device. Under IGMP, devices listen to IGMP messages and periodically send out queries to discover which groups are active or inactive on a particular subnet.
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:
The switch supports IGMP version 1, IGMP version 2, and IGMP version 3. These versions are interoperable on the switch. For example, if IGMP snooping is enabled and the querier's version is IGMPv2, and the switch receives an IGMPv3 report from a host, then the switch can forward the IGMPv3 report to the multicast router.
An IGMPv3 switch can receive messages from and forward messages to a device running the Source Specific Multicast (SSM) feature.
IGMP version 1 (IGMPv1) primarily uses a query-response model that enables the multicast router and multilayer switch to find which multicast groups are active (have one or more hosts interested in a multicast group) on the local subnet. IGMPv1 has other processes that enable a host to join and leave a multicast group. For more information, see RFC 1112.
IGMPv2 extends IGMP functionality by providing such features as the IGMP leave process to reduce leave latency, group-specific queries, and an explicit maximum query response time. IGMPv2 also adds the capability for routers to elect the IGMP querier without depending on the multicast protocol to perform this task. For more information, see RFC 2236.
Note | IGMP version 2 is the default version for the switch. |
The switch supports IGMP version 3.
An IGMPv3 switch supports Basic IGMPv3 Snooping Support (BISS), which includes support for the snooping features on IGMPv1 and IGMPv2 switches and for IGMPv3 membership report messages. BISS constrains the flooding of multicast traffic when your network includes IGMPv3 hosts. It constrains traffic to approximately the same set of ports as the IGMP snooping feature on IGMPv2 or IGMPv1 hosts.
An IGMPv3 switch can receive messages from and forward messages to a device running the Source Specific Multicast (SSM) feature.
In IGMPv3, hosts signal membership to last hop routers of multicast groups. Hosts can signal group membership with filtering capabilities with respect to sources. A host can either signal that it wants to receive traffic from all sources sending to a group except for some specific sources (called exclude mode), or that it wants to receive traffic only from some specific sources sending to the group (called include mode).
IGMPv3 can operate with both Internet Standard Multicast (ISM) and Source Specific Multicast (SSM). In ISM, both exclude and include mode reports are applicable. In SSM, only include mode reports are accepted by the last-hop router. Exclude mode reports are ignored.
There are three versions of IGMP, as defined by Request for Comments (RFC) documents of the Internet Engineering Task Force (IETF). IGMPv2 improves over IGMPv1 by adding the ability for a host to signal desire to leave a multicast group and IGMPv3 improves over IGMPv2 mainly by adding the ability to listen to multicast originating from a set of source IP addresses only.
IGMP Version |
Description |
---|---|
IGMPv1 |
Provides the basic query-response mechanism that allows the multicast device 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 devices to elect the IGMP querier without dependence on the multicast protocol to perform this task. RFC 2236 defines IGMPv2. |
Note | By default, enabling a PIM on an interface enables IGMPv2 on that device. 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 . |
IGMPv1 devices 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 device 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 device. 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 device on the segment exists, all the devices 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 device. The device continues sending query packets. If the device does not hear a response in three IGMP queries, the group times out and the device 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 device, and the device begins to forward the multicast packet again.
If there are multiple devices on a LAN, a designated router (DR) must be elected to avoid duplicating multicast traffic for connected hosts. PIM devices follow an election process to select a DR. The PIM device with the highest IP address becomes the DR.
The DR is responsible for the following tasks:
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 also enhances IGMP by providing support for the following capabilities:
Unlike IGMPv1, in which the DR and the IGMP querier are typically the same device, in IGMPv2 the two functions are decoupled. The DR and the IGMP querier are selected based on different criteria and may be different devices on the same subnet. The DR is the device with the highest IP address on the subnet, whereas the IGMP querier is the device with the lowest IP address.
Query messages are used to elect the IGMP querier as follows:
By default, the timer is two times the query interval.
IGMP Join and Leave 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:
Note | If some IGMPv3 hosts on a LAN wish to exclude a source and others wish to include the source, then the device will send traffic for the source on the LAN (that is, inclusion trumps exclusion in this situation). |
The method that hosts use to leave a group varies depending on the version of IGMP in operation.
There is no leave-group message in IGMPv1 to notify the devices 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 devices know that there are no longer any active receivers for a particular multicast group on a subnet is when the devices stop receiving membership reports. To facilitate this process, IGMPv1 devices 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 devices, this timeout interval is typically three times the query interval (3 minutes). This timeout interval means that the device may continue to forward multicast traffic onto the subnet for up to 3 minutes after all hosts have left the multicast group.
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-devices multicast group (224.0.0.2).
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.
How to Configure IGMP
You can configure the switch as a member of a multicast group and discover multicast reachability in a network. If all the multicast-capable routers and multilayer switches that you administer are members of a multicast group, pinging that group causes all of these devices to respond. The devices respond to ICMP echo-request packets addressed to a group of which they are members. Another example is the multicast trace-route tools provided in the software.
Caution | Performing this procedure might impact the CPU performance because the CPU will receive all data traffic for the group address. |
1.
enable
4.
ip igmp
join-group
group-address
6.
show ip igmp interface [interface-id]
7.
copy running-config
startup-config
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
enable
Example:
Switch> enable
|
Enables privileged EXEC mode. Enter your password if prompted. | ||
Step 2 | configure
terminal
Example: Switch# configure terminal | |||
Step 3 | interface
interface-id
Example: Switch(config)# interface gigabitethernet 1/0/1 |
Specifies the Layer 3 interface on which you want to enable multicast routing, and enters interface configuration mode. The specified interface must be one of the following:
| ||
Step 4 | ip igmp
join-group
group-address
Example: Switch(config-if)# ip igmp join-group 225.2.2.2 |
Configures the switch to join a multicast group. By default, no group memberships are defined. For group-address, specify the multicast IP address in dotted decimal notation.
| ||
Step 5 | end
Example: Switch(config)# end | |||
Step 6 | show ip igmp interface [interface-id]
Example: Switch# show ip igmp interface | |||
Step 7 | copy running-config
startup-config
Example:
Switch# copy running-config startup-config
|
(Optional) Saves your entries in the configuration file. |
The switch sends IGMP host-query messages to find which multicast groups have members on attached local networks. The switch then forwards to these group members all packets addressed to the multicast group. You can place a filter on each interface to restrict the multicast groups that hosts on the subnet serviced by the interface can join.
This procedure is optional.
1.
enable
3.
interface
interface-id
4.
ip igmp access-group
access-list-number
6.
access-list
access-list-number {deny |
permit}
source
[source-wildcard]
7.
end
By default, the switch uses IGMP Version 2, which provides features such as the IGMP query timeout and the maximum query response time.
All systems on the subnet must support the same version. The switch does not automatically detect Version 1 systems and switch to Version 1. You can mix Version 1 and Version 2 hosts on the subnet because Version 2 routers or switches always work correctly with IGMPv1 hosts.
Configure the switch for Version 1 if your hosts do not support Version 2.
This procedure is optional.
1.
enable
4.
ip igmp version {1
|
2 |
3
}
6.
show ip igmp interface [interface-id]
7.
copy running-config
startup-config
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
enable
Example:
Switch> enable
|
Enables privileged EXEC mode. Enter your password if prompted. | ||
Step 2 | configure
terminal
Example: Switch# configure terminal | |||
Step 3 | interface
interface-id
Example: Switch(config)# interface gigabitethernet 1/0/1 |
Specifies the interface to be configured, and enters the interface configuration mode. | ||
Step 4 | ip igmp version {1
|
2 |
3
}
Example: Switch(config-if)# ip igmp version 2 | Specifies the
IGMP version that the switch uses.
To return to the default setting, use the no ip igmp version interface configuration command. | ||
Step 5 | end
Example: Switch(config)# end | |||
Step 6 | show ip igmp interface [interface-id]
Example: Switch# show ip igmp interface | |||
Step 7 | copy running-config
startup-config
Example:
Switch# copy running-config startup-config
|
(Optional) Saves your entries in the configuration file. |
The switch periodically sends IGMP host-query messages to discover which multicast groups are present on attached networks. These messages are sent to the all-hosts multicast group (224.0.0.1) with a time-to-live (TTL) of 1. The switch sends host-query messages to refresh its knowledge of memberships present on the network. If, after some number of queries, the software discovers that no local hosts are members of a multicast group, the software stops forwarding multicast packets to the local network from remote origins for that group and sends a prune message upstream toward the source.
The switch elects a PIM designated router (DR) for the LAN (subnet). The designated router is responsible for sending IGMP host-query messages to all hosts on the LAN. In sparse mode, the designated router also sends PIM register and PIM join messages toward the RP router. With IGMPv2, the DR is the router or multilayer switch with the highest IP address. With IGMPv1, the DR is elected according to the multicast routing protocol that runs on the LAN.
1.
enable
4.
ip igmp
query-interval
seconds
6.
show ip igmp interface [interface-id]
7.
copy running-config
startup-config
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
enable
Example:
Switch> enable
|
Enables privileged EXEC mode. Enter your password if prompted. | ||
Step 2 | configure
terminal
Example: Switch# configure terminal | |||
Step 3 | interface
interface-id
Example: Switch(config)# interface gigabitethernet 1/0/1 |
Specifies the Layer 3 interface on which you want to enable multicast routing, and enters interface configuration mode. The specified interface must be one of the following:
| ||
Step 4 | ip igmp
query-interval
seconds
Example: Switch(config-if)# ip igmp query-interval 75 |
Configures the frequency at which the designated router sends IGMP host-query messages. By default, the designated router sends IGMP host-query messages every 60 seconds to keep the IGMP overhead very low on hosts and networks. The range is 1 to 65535.
| ||
Step 5 | end
Example: Switch(config)# end | |||
Step 6 | show ip igmp interface [interface-id]
Example: Switch# show ip igmp interface | |||
Step 7 | copy running-config
startup-config
Example:
Switch# copy running-config startup-config
|
(Optional) Saves your entries in the configuration file. |
If you are using IGMPv2, you can specify the period of time before the switch takes over as the querier for the interface. By default, the switch waits twice the query interval period controlled by the ip igmp query-interval interface configuration command. After that time, if the switch has received no queries, it becomes the querier.
1.
enable
4.
ip igmp
querier-timeout
seconds
6.
show ip igmp interface [interface-id]
7.
copy running-config
startup-config
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
enable
Example:
Switch> enable
|
Enables privileged EXEC mode. Enter your password if prompted. | ||
Step 2 | configure
terminal
Example: Switch# configure terminal | |||
Step 3 | interface
interface-id
Example: Switch(config)# interface gigabitethernet 1/0/1 |
Specifies the Layer 3 interface on which you want to enable multicast routing, and enters interface configuration mode. The specified interface must be one of the following:
| ||
Step 4 | ip igmp
querier-timeout
seconds
Example: Switch(config-if)# ip igmp querier-timeout 120 |
Specifies the IGMP query timeout. The default is 60 seconds (twice the query interval). The range is 60 to 300.
| ||
Step 5 | end
Example: Switch(config)# end | |||
Step 6 | show ip igmp interface [interface-id]
Example: Switch# show ip igmp interface | |||
Step 7 | copy running-config
startup-config
Example:
Switch# copy running-config startup-config
|
(Optional) Saves your entries in the configuration file. |
If you are using IGMPv2, you can change the maximum query response time advertised in IGMP queries. The maximum query response time enables the switch to quickly detect that there are no more directly connected group members on a LAN. Decreasing the value enables the switch to prune groups faster.
1.
enable
4.
ip igmp
query-max-response-time
seconds
6.
show ip igmp interface [interface-id]
7.
copy running-config
startup-config
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
enable
Example:
Switch> enable
|
Enables privileged EXEC mode. Enter your password if prompted. | ||
Step 2 | configure
terminal
Example: Switch# configure terminal | |||
Step 3 | interface
interface-id
Example: Switch(config)# interface gigabitethernet 1/0/1 |
Specifies the Layer 3 interface on which you want to enable multicast routing, and enters interface configuration mode. The specified interface must be one of the following:
| ||
Step 4 | ip igmp
query-max-response-time
seconds
Example: Switch(config-if)# ip igmp query-max-response-time 15 |
Changes the maximum query response time advertised in IGMP queries. The default is 10 seconds. The range is 1 to 25.
| ||
Step 5 | end
Example: Switch(config)# end | |||
Step 6 | show ip igmp interface [interface-id]
Example: Switch# show ip igmp interface | |||
Step 7 | copy running-config
startup-config
Example:
Switch# copy running-config startup-config
|
(Optional) Saves your entries in the configuration file. |
At various times, either there is not a group member on a network segment or a host that cannot report its group membership by using IGMP. However, you may want multicast traffic to be sent to that network segment. The following commands are used to pull multicast traffic down to a network segment:
1.
enable
4.
ip igmp
static-group
group-address
6.
show ip igmp interface [interface-id]
7.
copy running-config
startup-config
Command or Action | Purpose | |
---|---|---|
Step 1 |
enable
Example:
Switch> enable
|
Enables privileged EXEC mode. Enter your password if prompted. |
Step 2 | configure
terminal
Example: Switch# configure terminal | |
Step 3 | interface
interface-id
Example: Switch(config)# interface gigabitethernet 1/0/1 |
Specifies the Layer 3 interface on which you want to enable multicast routing, and enters interface configuration mode. The specified interface must be one of the following:
|
Step 4 | ip igmp
static-group
group-address
Example: Switch(config-if)# ip igmp static-group 239.100.100.101 |
Configures the switch as a statically connected member of a group. |
Step 5 | end
Example: Switch(config)# end | |
Step 6 | show ip igmp interface [interface-id]
Example: Switch# show ip igmp interface gigabitethernet 1/0/1 | |
Step 7 | copy running-config
startup-config
Example:
Switch# copy running-config startup-config
|
(Optional) Saves your entries in the configuration file. |
You can display specific statistics, such as the contents of IP routing tables, caches, and databases.
Note | This release does not support per-route statistics. |
You can display information to learn resource usage and solve network problems. You can also display information about node reachability and discover the routing path that packets of your device are taking through the network.
Command |
Purpose |
---|---|
Displays the multicast groups that are directly connected to the switch and that were learned through IGMP. |
|
show ip igmp profile [ profile_number] |
Displays IGMP profile information. |
show ip igmp ssm-mapping [ hostname/IP address ] |
Displays IGMP SSM mapping information. |
show ip igmp static-group {class-map [ interface [ type ] ] |
Displays static group information. |
show ip igmp vrf |
Displays the selected VPN routing/forwarding instance by name. |
Configuration Examples for IGMP
This example shows how to enable the switch to join multicast group 255.2.2.2:
Switch(config)# interface gigabitethernet1/0/1 Switch(config-if)# ip igmp join-group 255.2.2.2 Switch(config-if)#
This example shows how to configure hosts attached to a port as able to join only group 255.2.2.2:
Switch(config)# access-list 1 255.2.2.2 0.0.0.0 Switch(config-if)# interface gigabitethernet1/0/1 Switch(config-if)# ip igmp access-group 1
Related Topic | Document Title |
---|---|
For complete syntax and usage information for the commands used in this chapter. |
Command Reference, Cisco Release 15.2(2)E (Industrial Ethernet 3000 Switch) |
Cisco IOS commands |
|
Cisco IOS IP SLAs commands |
Description | Link |
---|---|
To help you research and resolve system error messages in this release, use the Error Message Decoder tool. |
https://www.cisco.com/cgi-bin/Support/Errordecoder/index.cgi |
Standard/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 |
MIB | MIBs Link |
---|---|
All supported MIBs for this release. |
To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL: |
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. |