IGMP snooping is appropriate when you are not an end-to-end Cisco shop. Remember that CGMP is Cisco proprietary, although many Cisco switches support IGMP snooping as well as CGMP. A switch engaged in IGMP snooping does what it sounds like – it eavesdrops on the IGMP conversion between hosts and routers.
IGMP Snooping – The General Process
- The switch determines whether multiple rotuers are connected to the same subnet by listening to routing protocol messages. When the switch detects routers on these ports, the ports are added to the port list for the group destination address (GDA) in the CAM table.
- IGMP general query messages with group destination address of 0100.5e00.0001.
- OSPF messages with GDA 0100.5e00.0005 or 0100.5e00.0006.
- Protocol Independent Multicast (PIM) v1 and HSRP Hello messages with GDA 0100.5e00.0002.
- PIMv2 hello messages with GDA 0100.5e00.000d.
- Distance Vector Multicast Routing Protocol (DVMRP) probe messages with GDA 0100.5e00.0004.
- When the switch sees an IGMP report, it looks at the GDA as the frame goes by, and adds the port to the CAM list for that GDA. The router port is also added.
- When the switch sees an IGMP leave, it removes the port from the CAM listing for that GDA. The switch then check itself to see if that was the last non-router port for that GDA. If so, the switch will forward the frame to the router. If not (i.e., there are hosts remaining that are participating in that multicast group), the switch will discard the frame.
Although CGMP is somewhat more efficient, CGMP is fading in popularity when compared with IGMP snooping as modern switches have enough CPU and/or hardware ASICs capable of inspecting multicast packets for IGMP content without overburdening the switch.