IGMP Snooping
IGMP Snooping
1. Function Overview
IGMP snooping is a function to suppress consumption of network bandwidth in a VLAN environment, by controlling any surplus multicast flooding.
On an L2 switch, since multicast packets are distributed per VLAN, if there is even one device in the VLAN that wants to receive the multicast packet, the packet will be distributed to all ports within the same VLAN.
-
Operations during multicast distribution (no IGMP snooping)
When using the IGMP snooping function, the IGMP messages exchanged between the receiving device and the multicast router are monitored (snooped), the packet from the relevant group will only be distributed to the port, to which the device that wants to receive the multicast packet is connected.
-
Operations during multicast distribution (using IGMP snooping)
2. Definition of Terms Used
IGMP (Internet Group Management Protocol)
This is a protocol to control multicast groups.
The multicast router can determine which hosts on the LAN are members of the multicast group, and the hosts can communicate which multicast group they belong to.
There are three protocol versions, respectively defined by IGMPv1 (RFC1112), IGMPv2 (RFC2236) and IGMPv3 (RFC3376).
Multicast Router Port
This is the LAN/SFP port to which the multicast router is connected.
The LAN/SFP port that receives the IGMP general query is automatically acquired as the multicast router port.
IGMP Report Suppression Function
This is a function where the switch controls the data transmission load between the multicast router and the hosts.
The messages gathered by this product to perform control are shown below.
-
IGMP reports replied to IGMP general queries by hosts, sent from the multicast router
-
IGMP leave messages notified by the host
The report suppression function works with IGMPv1/v2/v3.
Fast Leave Function
If a LAN/SFP port receives an IGMPv2/v3 leave message, this function immediately disconnects the port from ports receiving multicast traffic (deletes the FDB entry necessary for transmission).
Normally, when processing IGMPv2/v3 messages, if a leave message is received, a group-specific query is transmitted to that port to confirm that the receiver exists, but if the fast leave function is enabled, that action is not performed.
For this reason, the fast leave function is effective only when there is a single receiver under the control of the LAN/SFP port.
The fast leave function operates only when an IGMPv2/v3 leave message is received.
If the fast leave function is enabled and the auto-assignment option is specified, the port to which the switch is connected under the control of the LAN/SFP port will confirm that a receiver exists when a leave message is received.
The auto-assignment option allows you to use the fast leave function in a cascaded switch configuration.
IGMP Query Transmission Function (IGMP Querier)
This is a function to send IGMP general and specific queries.
It is used to enable the IGMP snooping function in an environment without a multicast router.
Data Transfer Suppression Function for Multicast Router Ports
This function controls multicast data being forwarded to the multicast router port.
Normally, all multicast group data already acquired by the product is forwarded to the multicast router port, but if this function is enabled, then only multicast group data acquired by receiving an IGMP report via the multicast router port is forwarded.
If unnecessary multicast data flow between switches is restricting bandwidth, the problem can be mitigated by enabling this function in combination with the l2-unknown-mcast discard command.
IGMP Report Forwarding Function
This function forwards IGMP Join/Leave messages to ports to which a switch is connected under the control of the LAN/SFP port.
By enabling this function, IGMP Join/Leave messages will be forwarded to non-querier switches in a cascaded switch configuration.
When using the data transfer suppression function for multicast router ports in an environment where multiple multicast data flow, we recommend that this function be enabled.
3. Function Details
The operating specifications for IGMP snooping are shown below.
-
This product offers snooping functions compatible with IGMP v1/v2/v3.
You can use the ip igmp snooping version command to make later versions operate on this product.
Version settings are made for the VLAN interface, and initial settings are for v3.
The difference in operations between the configured version and received frame versions are shown in the table below.-
If an IGMP query whose version is higher than the settings is received, the version will be lowered to the version that was configured, and the query will be forwarded.
-
If an IGMP report whose version is higher than the configured version is received, the relevant report will be discarded without being forwarded.
-
If an IGMP query and report of a lower version than the specified version is received, it is forwarded unmodified as the received version.
-
-
The settings to enable/disable IGMP snooping are made for the VLAN interface.
The default value is disabled. -
The IGMP snooping function can handle the following six operations.
-
Multicast router port setting
-
IGMP report suppression
-
Fast leave
-
IGMP query transmission
-
Suppression of data forwarding to multicast router port
-
IGMP report forwarding
-
-
Although the multicast router port is automatically acquired on VLAN interfaces where IGMP snooping is set to “enable”, the ip igmp snooping mrouter interface command can also be used to make static settings.
The show ip igmp snooping mrouter command is used to check multicast router ports that are set for the VLAN interface. -
The IGMP report suppression function is specified for VLAN interfaces using the ip igmp snooping report-suppression command.
The default value is enabled.
When transmitting an IGMP report or IGMP leave message using the report suppression function, the IPv4 address allocated to the VLAN interface will be used for the source IPv4 address.
(The address will be set and transmitted as “0.0.0.0” if it has not been allocated.) -
The fast leave function is set for the VLAN interface using the ip igmp snooping fast-leave command.
The default value is disabled.
If the fast leave function is enabled and the auto-assignment option is specified, and a switch is connected under the control of the LAN/SFP port, the fast leave function is automatically disabled on that port.
To determine whether or not a switch is connected under the control of the LAN/SFP port, the basic management TLV “System Capabilities” of the LLDP frame received on that port is checked to see if “Bridge” is contained in the TLV.
Therefore, when using the auto-assignment option, enable LLDP transmission and reception on both this product and the counterpart switch. If LLDP is enabled on this product, the basic management TLV will always be sent. -
The IGMP query transmission function is supported in order to allow use of IGMP snooping in environments that do not have a multicast router.
The IGMP query transmission function is controlled with the following two parameters.-
IGMP query transmission function Enable/disable
-
The ip igmp snooping querier command is used for VLAN interfaces.
-
The default value is disabled.
-
-
IGMP query transmission interval
-
This is executed using the ip igmp snooping query-interval command.
-
The transmission interval can be set from 20–18,000 sec., and the default value is 125 sec.
-
-
-
When multiple devices transmit queries within a VLAN, the query is sent by the device with the lowest IPv4 address within the VLAN.
When this product receives a query from a device whose IPv4 address is lower than its own, the query transmission function will be halted.
The source IPv4 address that is set when a query is transmitted uses the IPv4 address allocated to the VLAN interface. If an IPv4 address has not been allocated, an IPv4 address allocated to a different VLAN interface is used instead. -
This product features a function that forces the TTL value of a received IGMP packet to change to “1” if the TTL value is invalid (a value other than “1”), instead of discarding the packet.
This is defined as the “TTL check function”, and it can be configured for a VLAN interface by using the ip igmp snooping check ttl command.
The default setting value for the TTL check function is enabled (packets with invalid TTL values are discarded). -
This product features a function that adds the RA (Router Alert) option to an IP header of a received IGMPv2/IGMPv3 packet that does not contain the RA option and forwards it instead of discarding.
This is defined as the “RA check function”, and it can be configured for a VLAN interface by using the ip igmp snooping check ra command.
The default value of the RA check function is set to Disabled (forward packets that do not contain the RA option). -
This product features a function that forces the ToS (Type of field) value of a received IGMPv3 packet to change to “0xc0” if the ToS value is invalid (a value other than “0xc0”), instead of discarding the packet.
This is defined as the “ToS check function”, and it can be configured for a VLAN interface by using the ip igmp snooping check tos command.
The default value of ToS check function is set to Disabled (forward packets with invalid ToS values). -
The data transfer suppression function for multicast router ports is specified for VLAN interfaces using the ip igmp snooping mrouter-port data-suppression command.
The default value is disabled. -
The IGMP report forwarding function is specified using the ip igmp snooping report-forward command for VLAN interfaces.
The default value is disabled.
When this function is enabled and a switch is connected under the control of the LAN/SFP port, IGMP Join/Leave messages will be forwarded to that port.
To determine whether or not a switch is connected under the control of the LAN/SFP port, the basic management TLV “System Capabilities” of the LLDP frame received on that port is checked to see if “Bridge” is contained in the TLV.
Therefore, when using this function, enable LLDP transmission and reception on both this product and the counterpart switch. If LLDP is enabled on this product, the basic management TLV will always be sent.
4. Related Commands
Related commands are indicated below.
For command details, refer to the command reference.
Operations | Operating commands |
---|---|
Enable/disable IGMP snooping |
ip igmp snooping |
Set IGMP snooping fast-leave |
ip igmp snooping fast-leave |
Multicast router port setting |
ip igmp snooping mrouter interface |
Set the query transmission function |
ip igmp snooping querier |
Set IGMP query transmission interval |
ip igmp snooping query-interval |
Set IGMP snooping TTL check |
ip igmp snooping check ttl |
Set IGMP snooping RA check |
ip igmp snooping check ra |
Set IGMP snooping ToS check |
ip igmp snooping check tos |
Set IGMP version |
ip igmp snooping version |
Set IGMP report suppression function |
ip igmp snooping report-suppression |
Set the data transfer suppression function for multicast router ports |
ip igmp snooping mrouter-port data-suppression |
Set IGMP report forwarding function |
ip igmp snooping report-forward |
Set the processing method for unknown multicast frames in the system |
l2-unknown-mcast |
Set forwarding of linked local multicasting addresses in the system |
l2-unknown-mcast forward link-local |
Set the processing method for unknown multicast frames at VLAN interfaces |
l2-unknown-mcast |
Set forwarding of multicasting frames at VLAN interfaces |
l2-mcast flood |
Show multicast router port information |
show ip igmp snooping mrouter |
Show IGMP multicast receiver information |
show ip igmp snooping groups |
Show IGMP related information for an interface |
show ip igmp snooping interface |
Clear IGMP group membership entries |
clear ip igmp snooping |
5. Examples of Command Execution
5.1. IGMP snooping settings (with multicast router)
In an environment with a multicast router, enable the IGMP snooping function and join a multicast group. Data is distributed only to PC1 and PC3.
-
Set LAN ports #1–#4 as access ports and associate them with VLAN #10.
-
Since there is a multicast router, leave the IGMP query transmission function as “disabled”.
-
Set multicast router port acquisition to automatic acquisition only. (A static setting is not used.)
-
Enable the fast leave function.
-
Define VLAN #10, and set IGMP snooping.
Yamaha(config)# vlan database Yamaha(config-vlan)#vlan 10 (1) Yamaha(config-vlan)#exit Yamaha(config)#interface vlan10 Yamaha(config-if)#ip igmp snooping enable (2) Yamaha(config-if)#no ip igmp snooping querier (3) Yamaha(config-if)#ip igmp snooping fast-leave (4)
1 Define VLAN #10 2 Enable IGMP Snooping for VLAN #10 3 Disable the IGMP query transmission function for VLAN #10 4 Enable the IGMP fast leave function for VLAN #10 -
The IGMP query transmission function is disabled in default settings, so there is no need to specify those settings.
-
-
Set LAN ports #1–#4 as access ports, and associate them with VLAN #10.
Yamaha(config)# interface port1.1 Yamaha(config-if)# switchport mode access Yamaha(config-if)# switchport access vlan 10 (1)
1 Configure the settings above for LAN ports #2–#4 as well. -
Confirm the multicast router port information. (It should be connected to LAN port #1.)
Yamaha#show ip igmp snooping mrouter vlan10 VLAN Interface IP-address Expires 10 port1.1(dynamic) 192.168.100.216 00:00:49
-
Confirm the information for the multicast recipient.
Yamaha#show ip igmp snooping groups IGMP Snooping Group Membership Group source list: (R - Remote, S - Static) Vlan Group/Source Address Interface Flags Uptime Expires Last Reporter Version 10 239.0.0.1 port1.2 R 00:00:13 00:00:41 192.168.100.2 V3 10 239.0.0.1 port1.4 R 00:00:02 00:00:48 192.168.100.4 V3
5.2. IGMP snooping settings (without multicast router)
In an environment without a multicast router, enable the IGMP snooping function and join a multicast group. Data is distributed only to PC1 and PC3.
-
Switch #A
-
Set LAN ports #1–#2 as access ports and associate them with VLAN #10.
-
Enable the IGMP query transmission function.
Set the IGMP query transmission interval to 20 sec.
-
-
Switch #B
-
Set LAN ports #1–#4 as access ports and associate them with VLAN #10.
-
Set multicast router port acquisition to automatic acquisition only. (A static setting is not used.)
-
Enable the fast leave function.
-
Since there is a device that sets invalid TTL values in IGMP packets, disable the TTL check function.
-
-
[Switch #A] Define VLAN #10, and set IGMP snooping.
Yamaha(config)# vlan database Yamaha(config-vlan)#vlan 10 (1) Yamaha(config-vlan)#exit Yamaha(config)#interface vlan10 Yamaha(config-if)#ip igmp snooping enable (2) Yamaha(config-if)#ip igmp snooping querier (3) Yamaha(config-if)#ip igmp snooping query-interval 20 (4)
1 Define VLAN #10 2 Enable IGMP Snooping for VLAN #10 3 Enable the IGMP query transmission function for VLAN #10 4 Set the IGMP query transmission interval for VLAN #10 to 20 sec.
-
[Switch #A] Set LAN ports #1–#2 as access ports, and associate them with VLAN #10.
Yamaha(config)# interface port1.1 Yamaha(config-if)# switchport mode access Yamaha(config-if)# switchport access vlan 10 (1)
1 Configure the settings above for LAN port #2 as well. -
[Switch #B] Define VLAN #10, and set IGMP snooping.
Yamaha(config)# vlan database Yamaha(config-vlan)#vlan 10 (1) Yamaha(config-vlan)#exit Yamaha(config)#interface vlan10 Yamaha(config-if)#ip igmp snooping enable (2) Yamaha(config-if)#no ip igmp snooping querier (3) Yamaha(config-if)#no ip igmp snooping check ttl (4) Yamaha(config-if)#ip igmp snooping fast-leave (5)
1 Define VLAN #10 2 Enable IGMP Snooping for VLAN #10 3 Disable the IGMP query transmission function for VLAN #10 4 Disable the TTL check function for VLAN #10 5 Enable the IGMP fast leave function for VLAN #10 -
The IGMP query transmission function is disabled in default settings, so there is no need to specify those settings.
-
-
[Switch #B] Set LAN ports #1–#4 as access ports, and associate them with VLAN #10.
Yamaha(config)# interface port1.1 Yamaha(config-if)# switchport mode access Yamaha(config-if)# switchport access vlan 10 (1)
1 Configure the settings above for LAN ports #2–#4 as well. -
[Switch #B] Check the multicast router port information. (It should be connected to LAN port #1.)
Yamaha#show ip igmp snooping mrouter vlan10 VLAN Interface IP-address Expires 10 port1.1(dynamic) 192.168.100.216 00:00:49
-
[Switch #B] Check the multicast receiver information.
Yamaha#show ip igmp snooping groups IGMP Snooping Group Membership Group source list: (R - Remote, S - Static) Vlan Group/Source Address Interface Flags Uptime Expires Last Reporter Version 10 239.0.0.1 port1.2 R 00:00:13 00:00:41 192.168.100.2 V3 10 239.0.0.1 port1.4 R 00:00:02 00:00:48 192.168.100.4 V3
5.3. IGMP snooping settings (If distributing data in both directions)
In a configuration with two switches, both switches are connected to a multicast server and computer.
Each computer frequently switches between participating multicast groups to minimize the interruption time.
-
Switch #A
-
Set LAN ports #1–#4 as access ports and associate them with VLAN #10.
-
Enable the IGMP query transmission function.
Set the IGMP query transmission interval to 20 sec. -
Enable the fast leave function and, in order to confirm the existence of multiple multicast receivers connected to the counterpart switch, enable LLDP transmission and reception and enable the auto-assignment option.
-
Disable the IGMP report suppression function.
-
Increasing the number of multicast servers or data distributions could cause port bandwidth restrictions, so the data transfer suppression function for multicast router ports is enabled to only forward the minimum data necessary.
Also, unknown multicast frames are set to be discarded. -
To forward IGMP reports to non-queriers, enable LLDP transmission and reception and also enable the IGMP report forwarding function.
-
-
Switch #B
-
Set LAN ports #1–#4 as access ports and associate them with VLAN #10.
-
Set multicast router port acquisition to automatic acquisition only. (A static setting is not used.)
-
Enable the fast leave function and, in order to confirm the existence of multiple multicast receivers connected to the counterpart switch, enable LLDP transmission and reception and enable the auto-assignment option.
-
Disable the IGMP report suppression function.
-
Increasing the number of multicast servers or data distributions could cause port bandwidth restrictions, so the data transfer suppression function for multicast router ports is enabled to only forward the minimum data necessary.
Also, unknown multicast frames are set to be discarded.
-
-
[Switch #A] Define VLAN #10, and set IGMP snooping.
Yamaha(config)# vlan database Yamaha(config-vlan)#vlan 10 (1) Yamaha(config-vlan)#exit Yamaha(config)#interface vlan10 Yamaha(config-if)#ip igmp snooping enable (2) Yamaha(config-if)#ip igmp snooping querier (3) Yamaha(config-if)#ip igmp snooping query-interval 20 (4) Yamaha(config-if)#ip igmp snooping fast-leave auto-assignment (5) Yamaha(config-if)#ip igmp snooping report-suppression disable (6) Yamaha(config-if)#ip igmp snooping mrouter-port data-suppression enable (7) Yamaha(config-if)#ip igmp snooping report-forward enable (8)
1 Define VLAN #10 2 Enable IGMP Snooping for VLAN #10 3 Enable the IGMP query transmission function for VLAN #10 4 Set the IGMP query transmission interval for VLAN #10 to 20 sec. 5 Enable the fast leave function and auto-assignment option for VLAN #10 6 Disable the report suppression function for VLAN #10 7 Enable the data transfer suppression function for multicast router ports for VLAN #10 8 Enable the report forwarding function for VLAN #10
-
[Switch #A] Set LAN ports #1–#4 as access ports, and associate them with VLAN #10.
Yamaha(config)# interface port1.1 Yamaha(config-if)# switchport mode access Yamaha(config-if)# switchport access vlan 10 (1)
1 Configure the settings above for LAN ports #2–#4 as well. -
[Switch #A] Discard unknown multicast frames.
Yamaha(config)#l2-unknown-mcast discard
-
[Switch #A] Enable LLDP transmission and reception on LAN port #1.
Yamaha(config)# lldp run Yamaha(config)# interface port1.1 Yamaha(config-if)# lldp-agent Yamaha(lldp-agent)# set lldp enable txrx
-
[Switch #B] Define VLAN #10, and set IGMP snooping.
Yamaha(config)# vlan database Yamaha(config-vlan)#vlan 10 (1) Yamaha(config-vlan)#exit Yamaha(config)#interface vlan10 Yamaha(config-if)#ip igmp snooping enable (2) Yamaha(config-if)#no ip igmp snooping querier (3) Yamaha(config-if)#ip igmp snooping fast-leave (4) Yamaha(config-if)#ip igmp snooping report-suppression disable (5) Yamaha(config-if)#ip igmp snooping mrouter-port data-suppression enable (6) Yamaha(config-if)#ip igmp snooping report-forward enable (7)
1 Define VLAN #10 2 Enable IGMP Snooping for VLAN #10 3 Disable the IGMP query transmission function for VLAN #10 4 Enable the fast leave function and auto-assignment option for VLAN #10 5 Disable the report suppression function for VLAN #10 6 Enable the data transfer suppression function for multicast router ports for VLAN #10 7 Enable the report forwarding function for VLAN #10 -
The IGMP query transmission function is disabled in default settings, so there is no need to specify those settings.
-
-
[Switch #B] Set LAN ports #1–#4 as access ports, and associate them with VLAN #10.
Yamaha(config)# interface port1.1 Yamaha(config-if)# switchport mode access Yamaha(config-if)# switchport access vlan 10 (1)
1 Configure the settings above for LAN ports #2–#4 as well. -
[Switch #B] Discard unknown multicast frames.
Yamaha(config)#l2-unknown-mcast discard
-
[Switch #B] Enable LLDP transmission and reception on LAN port #1.
Yamaha(config)# lldp run Yamaha(config)# interface port1.1 Yamaha(config-if)# lldp-agent Yamaha(lldp-agent)# set lldp enable txrx
-
[Switch #A] Check the multicast receiver information.
Yamaha#show ip igmp snooping groups IGMP Snooping Group Membership Group source list: (R - Remote, S - Static) Vlan Group/Source Address Interface Flags Uptime Expires Last Reporter Version 10 239.0.0.1 port1.1 R 00:00:02 00:00:48 192.168.100.3 V3 10 239.0.0.2 port1.1 R 00:00:02 00:00:48 192.168.100.4 V3 10 239.0.0.3 port1.3 R 00:00:04 00:00:46 192.168.100.1 V3 10 239.0.0.1 port1.4 R 00:00:03 00:00:47 192.168.100.2 V3
-
[Switch #B] Check the multicast router port information. (It should be connected to LAN port #1.)
Yamaha#show ip igmp snooping mrouter vlan10 VLAN Interface IP-address Expires 10 port1.1(dynamic) 192.168.100.240 00:00:25
-
[Switch #B] Check the multicast receiver information.
Yamaha#show ip igmp snooping groups IGMP Snooping Group Membership Group source list: (R - Remote, S - Static) Vlan Group/Source Address Interface Flags Uptime Expires Last Reporter Version 10 239.0.0.1 port1.1 R 00:00:03 00:00:47 192.168.100.2 V3 10 239.0.0.3 port1.1 R 00:00:04 00:00:46 192.168.100.1 V3 10 239.0.0.1 port1.3 R 00:00:02 00:00:48 192.168.100.3 V3 10 239.0.0.2 port1.4 R 00:00:02 00:00:48 192.168.100.4 V3
6. Points of Caution
If you want to change the handling of unknown multicast frames, use the l2-unknown-mcast command.