The introduction of Internet Group Management Protocol Version 2 (IGMPv2) brings new functionality, including leave group messages. Cisco has added new functionality to CGMP to work with leave group messages: CGMP leave processing.
CGMP leave processing allows switches to detect the IGMPv2 leave group messages. Hosts send leave group messages to the all-router multicast address, 224.0.0.2, when they no longer wish to receive data for that group. The switch supervisor engine module intercepts messages.
When the supervisor engine module detects an IGMPv2 leave group message, it starts a query-response timer, and then sends an IGMP membership query message from the port that received the IGMPv2 leave group message.
If the timer expires before an IGMP membership report message is received on that port, the corresponding port multicast Media Access Control (MAC) address is removed from the switch-forwarding table.
If this port is also the last active port in the multicast group, then the switch forwards the IGMPv2 leave group message to all known router ports.
The router then starts the normal deletion process by sending a group-specific query. If the router receives no response, it removes this group from its multicast routing table for that interface.
The router then sends a CGMP leave to the switch. Upon receipt, the switch erases the group from the static table.
When CGMP leave processing is enabled, The switch needs to intercept IGMP leave group messages. In order to accomplish this, two entries are added as system addresses to the content-addressable memory (CAM) table. These two entries directly relate to the IP addresses used by IGMP. They are igmp leave messages (224.0.0.2) and igmp membership query messages (224.0.0.1.)
You can verify these addresses have been added with the command:
VLAN Dest MAC/Route Des Destination Ports or VCs
---- ------------------ ------------------------------------
Output removed for clarity
2 01-00-5e-00-00-01# 1/3
2 01-00-5e-00-00-02# 1/3
2. How CGMP switches learn router ports--When CGMP leave processing is enabled, Catalyst® switches learn router ports through the Protocol Independent Multicast (PIM)-v1, Hot Standby Router Protocol (HSRP), and CGMP self-join messages. When CGMP leave processing is disabled, switches discover router ports through CGMP self-join messages only.
3. HSRP/CGMP interaction--HSRP uses MAC 01-00-5e-00-00-02. This address is the all-routers address, the same address that IGMP membership report messages use. With CGMP leave enabled, all HSRP packets go to the switch CPU because they are, at a MAC level, identical to IGMP membership report messages. Because these are not IGMP packets, the switch relays them to all known router ports.
4. HSRP and CGMP possible issue--If HSRP and CGMP leave processing are both in use, then in certain topologies, unicast flooding can occur. As stated in point 3, frames addressed to HSRP are not flooded across the virtual LAN (VLAN), but are intercepted and forwarded to the switch CPU. When a packet is identified as not being IGMP, it is forwarded to all router ports, but if a host is not locally connected to the switch where the HSRP routers are located, then unicast flooding can occur.
Because of the way IGMP/HSRP packets are processed, and because they are sent only to known router ports, HSRP frames are not forwarded to Switch B, meaning that Switch B will never learn the location of the HSRP virtual MAC address. Therefore, traffic from the workstation located on Switch B directed to the HSRP virtual MAC address would be flooded across Switch B.
This effect can be resolved by forcing the CGMP leave processing-enabled switch to treat the connecting link as a router link with the following command:
Set multicast router mod_num/port _num
The workaround is to enable and disable CGMP leave processing:
set cgmp leave enable
set cgmp leave disable
Posted: Mon Aug 14 15:33:58 PDT 2000