Cisco Group Management Protocol (CGMP) is another widely used protocol to forward multicast traffic to appropriate ports. CGMP is a Cisco proprietary protocol. The router communicates IGMP information with the switch via the CGMP protocol at Layer 2. Unlike IGMP snooping, CGMP-enabled switches do not have any insight into the Layer 3 IGMP packet types. All IGMP information is forwarded to the router, which in turn sends a Layer 2 message informing the switch regarding client participation for multicast traffic. The router translates the IGMP report into a CGMP message and forwards it to the switch. Based on what is contained in the CGMP packet, the switch will either add or delete port(s) for the multicast stream. Some of the switches that support CGMP are the 3500XL, 2924XL, and Catalyst 5500 without a NetFlow Feature Card (NFFC) card. The packet type of CGMP is defined as follows:
Version (4 bits): | 1 and 2 |
Type (4 bits): | 0= Join 1= Leave |
Reserved (2 bytes): Not used and is set to 0 | |
Count (1 byte): GDA/USA pairs in the CGMP packet | |
GDA (6 byte): The translated multicast IP group address | |
USA (6 bytes): MAC address of the client that initiated the IGMP report |
Table 9-1 lists the possible CGMP messages. Entry 3 is used by the router to inform the switch of its location. Hence, when a multicast flow gets created, the router port automatically is associated with the multicast stream. Entry 4 is used by the router to leave a multicast stream. Entries 5 and 6 are used to clear multicast CAM entries.
Entry | GDA | USA | Join/Leave | Meaning |
---|---|---|---|---|
1 | Multicast MAC | Client MAC | Join | Add port to group |
2 | Multicast MAC | Client MAC | Leave | Delete port from group |
3 | 00-00-00-00-00-00 | Router MAC | Join | Assign router port |
4 | 00-00-00-00-00-00 | Router MAC | Leave | Remove router port |
5 | Multicast MAC | 00-00-00-00-00-00 | Leave | Delete group |
6 | 00-00-00-00-00-00 | 00-00-00-00-00-00 | Leave | Delete all group |
When CGMP is enabled for a VLAN, the switch will automatically associate the CGMP MAC address 01-00-0c-dd-dd-dd with the system CAM entry for that VLAN. (See Example 9-12.)
Switch3 (enable) show cam system 2 * = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port Security Entry VLAN Dest MAC/Route Des Destination Ports or VCs / [Protocol Type] ---- ------------------ ---------------------------------------------------- 2 00-10-f6-b3-48-00R 3/1 2 01-00-0c-cc-cc-cc# 1/9 2 01-00-0c-cc-cc-cd# 1/9 2 01-00-0c-dd-dd-dd# 1/9 2 01-80-c2-00-00-00# 1/9 2 01-80-c2-00-00-01# 1/9
Use the show cam static command to view the Layer 2 forwarding table for the multicast traffic on the Catalyst 5000 switches. In Example 9-13, the output from the switch illustrates that Host3 and route switch module (RSM) ports are the only ports accepting the multicast traffic destined to 239.1.1.1 on VLAN 2.
Switch3 (enable) show cam static 2
* = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = P
ort Security Entry
VLAN Dest MAC/Route Des Destination Ports or VCs / [Protocol Type]
---- ------------------ ----------------------------------------------------
2 01-00-5e-01-01-01* 3/1,7/3
Figure 9-10 shows Host2 connected to Switch3, a Catalyst 5509 device, which also has an RSM blade. Switch3 is configured for CGMP.
The following steps outline the CGMP process as Host2 sends a membership report for group 239.1.1.1:
- The GDA field will have the translated MAC address of 239.1.1.1= 0010.5e01.0101.
- The User Source Address (USA) will be the MAC address of the client (Host3) that sent the IGMP membership report.
The leave process works the same. The router receives the IGMP leave message from the host and translates the information to CGMP and forwards it to the switch. The switch then removes the client port from the CAM entry for that GDA.
With more recent implementations, the Catalyst 4000 and 5000 family can actually handle the IGMP leave process locally rather than forwarding it to the router. To enable this feature, use the following command:
Switch3 (enable) set cgmp leave <enable | disable>
This command will create two multicast MAC entries in the systems CAM table: 01-00-5e-00-00-01 and 01-00-5e-00-00-02. Now, when a host sends an IGMP leave message, the switch intercepts the packet, similar in process to IGMP snooping.
The local leave process is as follows:
IGMP: Received Leave from 10.1.2.1 (Vlan2) for 239.1.1.1 IGMP: Send v2 Query on Vlan2 to 239.1.1.1 IGMP: Send v2 Query on Vlan2 to 239.1.1.1