Thursday, March 29, 2012

IGMP Snooping and Cisco Group Management Protocol (CGMP)

Usually hosts are not directly connected to routers but are connected to switches instead. IGMP is a L3 network layer protocol, and therefore switches that operate at the L2 data link layer do not understand nor participate in IGMP and hence are not aware of which directly connected hosts are members of which particular multicast groups. L2 switches flood multicast frames out to all ports within a VLAN by default (except the port from which the frame is originated); the same way that unknown unicast frames are flooded – even if only a host on a port required the multicast data stream.

A Cisco Catalyst switch can be configured to manually associate a multicast MAC address with multiple ports in which it only forwards multicast frames destined for a particular multicast group. However, this method is not scalable as IP multicast hosts dynamically join and leave groups.

IGMP snooping allows a switch to eavesdrop the IGMP Membership Reports that are originated from hosts to the local multicast routers when they are joining multicast groups, and update its MAC address table or Content Addressable Memory (CAM) table accordingly. The switch must understand IGMP to process IGMP Membership Reports and IGMP Leave Group messages. Catalyst switches that support IGMP snooping always have specific built-in ASIC hardware that enhances the processing of IGMP messages, which in turn directly affect the overall cost.

Note: IGMP snooping is not supported on all Cisco Catalyst switch platforms. Google about Multicast Catalyst Switches Support Matrix for the support of IGMP Snooping and CGMP.

CGMP was developed for Cisco Catalyst switch platforms that do not support IGMP snooping. CGMP is a Cisco-proprietary protocol that operates between a multicast router and a switch. A multicast router informs all its directly connected switches regarding IGMP registrations that were received from hosts through the switches, which in turn forwards multicast frames only to ports on which the requesting hosts are connected rather than flooding the frames out to all ports.
Note: A multilayer switch configured for multicast routing also can be configured for CGMP.

CGMP messages are sent to the well-known address 0100.0cdd.dddd that is flooded everywhere as a special case so that CGMP messages can be propagates across non-CGMP switches. A CGMP that is originated from a multicast router contains the request type (join or leave), the L2 multicast MAC address, and the actual MAC address of the host.


IGMP is used between a host and its local router; while CGMP is used between a router and a switch. CGMP is disabled on all interfaces on multicast routers by default. The ip cgmp interface subcommand enable CGMP on an interface. Only the multicast router must be configured for CGMP. By default, all Catalyst switches and automatically process CGMP messages from routers.

IGMP snooping and CGMP are mutually exclusive – cannot be used at the same time on a switch. IGMP snooping is enabled by default for switches that have IGMP snooping capability; while CGMP is enabled by default for switches that do not support IGMP snooping. Always remember to enable CGMP on upstream multicast router or multilayer switches for networks that have legacy L2 switches for efficient flooding of multicast traffic.

No comments:

Post a Comment