IGMP Snooping
Fundamentals
IGMP snooping is a basic Layer 2 multicast function that forwards and controls multicast traffic at Layer 2. IGMP snooping runs on a Layer 2 multicast device and analyzes IGMP messages exchanged between a Layer 3 device and hosts to set up and maintain a Layer 2 multicast forwarding table. The Layer 2 multicast device forwards multicast packets based on the Layer 2 multicast forwarding table.
As shown in Figure 9-2, after receiving multicast packets from a Layer 3 device Router, Switch at the edge of the access layer forwards the multicast packets to receiver hosts. If Switch does not run IGMP snooping, it broadcasts multicast packets at Layer 2. After IGMP snooping is configured, Switch forwards multicast packets only to specified hosts.
With IGMP snooping configured, Switch listens on IGMP messages exchanged between Router and hosts. It analyzes packet information (such as packet type, group address, and receiving interface) to set up and maintain a Layer 2 multicast forwarding table, and forwards multicast packets based on the Layer 2 multicast forwarding table.
Concepts
As shown in Figure 9-3, Router (Layer 3 device) receives multicast data from the multicast source and forwards the data to downstream devices. IGMP snooping is configured on SwitchA and SwitchB. HostA, HostB, and HostC are receiver hosts.
Figure 9-3 shows IGMP snooping ports. The following table describes these ports.
Port Role |
Function |
Generation |
---|---|---|
Router port Ports marked as blue points on SwitchA and SwitchB. NOTE:
A router port is a port on a Layer 2 multicast device and connects to an upstream multicast router. "Router port" mentioned in this document does not refer to a port on a router. |
A router port receives multicast packets from a Layer 3 multicast device such as a designated router (DR) or IGMP querier. |
|
Member port Ports marked as green points on SwitchA and SwitchB. |
A member port is a user-side port connecting to group members. A Layer 2 multicast device sends multicast data to the receiver hosts through member ports. |
|
A router port and a member port are outbound interfaces in Layer 2 multicast forwarding entries. A router port functions as an upstream interface, while a member port functions as a downstream interface. Port information learned through protocol packets is saved as dynamic entries, and port information manually configured is saved as static entries.
Besides the outbound interfaces, each entry includes multicast group addresses and VLAN IDs.
Implementation
After IGMP snooping is configured, the Layer 2 multicast device processes the received IGMP protocol packets in different ways and sets up Layer 2 multicast forwarding entries.
IGMP Working Phase |
IGMP Message Received on a Layer 2 Device |
Processing Method |
---|---|---|
General query The IGMP querier periodically sends General Query messages (with destination address 224.0.0.1) to all hosts and routers on the local network segment, to check which multicast groups have members on the network segment. |
IGMP General Query message |
A Layer 2 multicast device forwards IGMP General Query messages to all ports excluding the port receiving the messages in a VLAN. The Layer 2 multicast device processes the receiving port as follows:
NOTE:
By default, the Layer 2 multicast device sets the aging time to 180 seconds when the router port receives an IGMP General Query message. You can set the aging time using a command. |
Membership report Membership Report messages are used in two scenarios:
|
IGMP Report message |
A Layer 2 multicast device forwards an IGMP Report message to all router ports in a VLAN. The Layer 2 multicast device obtains the multicast group address from the Report message and performs the following operations on the port receiving the message:
NOTE:
After a group member port receives an IGMP Report message, its aging time is calculated using the following formula: Aging time = Robustness variable x General query interval + Maximum response time for General Query messages |
Leave of multicast members There are two phases:
|
IGMP Leave message |
The Layer 2 multicast device determines whether the multicast group matches a forwarding entry and whether the port that receives the message is in the outbound interface list.
The following assumes that the port receiving an IGMP Leave message is a dynamic member port. Within the aging time of the member port:
NOTE:
After a group member port receives an IGMP Leave message, its aging time is calculated using the following formula: Aging time = Robustness variable x Group-Specific query interval |
IGMP Group-Specific/Group-Source-Specific Query message |
An IGMP Group-Specific/Group-Source-Specific Query message is forwarded to the ports connected to members of specific groups. An IGMP Group-Specific/Group-Source-Specific Query message is forwarded to the ports connected to members of specific groups. |
- If the port is included in the router port list, the Layer 2 multicast device resets the aging timer of the router port.
- If the port is not in the router port list, the Layer 2 multicast device adds it to the list and starts the aging timer.
When the Layer 2 multicast device receives a PIM Hello message, it sets the aging time of the router port to the Holdtime value in the Hello message.
If a static router port is configured, the Layer 2 multicast device forwards received IGMP Report and Leave messages to the static router port. If a static member port is configured for a multicast group, the Layer 2 multicast device adds the port to the outbound interface list for the multicast group.
After a Layer 2 multicast forwarding table is set up, the Layer 2 multicast device searches the multicast forwarding table for outbound interfaces of multicast data packets according to the VLAN IDs and destination addresses (group addresses) of the packets. If outbound interfaces are found for a packet, the Layer 2 multicast device forwards the packet to the matching member ports and router ports. If no outbound interface is found, the Layer 2 multicast device drops the packet or broadcasts the packet in the VLAN.