Cisco Group Management Protocol

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.

Table 9-1. Different Types of GDA

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.)

Example 9-12. System CAM Table for VLAN 2

Switch3 (enable) show cam system 2

* = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry. X = Port

graphics/ccc.gif 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.

Example 9-13. 239.1.1.1 Is Accepted by Ports 3/1 and 7/3

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.

Figure 9-10. CGMP Communication

graphics/09fig10.gif


The following steps outline the CGMP process as Host2 sends a membership report for group 239.1.1.1:

Step 1. Host3 sends a IGMP membership report for 239.1.1.1.

Step 2. The switch forwards a message to the RSM.

Step 3. The RSM receives the unsolicited IGMP membership report. It updates its IGMP group table.

Step 4. RSM then updates the mroute table by creating (*, G) and (S, G) for 239.1.1.1. It also puts VLAN 2 in forwarding state to receive 239.1.1.1 traffic.

Step 5. The router translates the IGMP membership report to a Layer 2 CGMP message and forwards it to the switch using CGMP well-known multicast MAC address, 0100.0CDD.DDDD with SNAP value of 0x2001:

- 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.

Step 6. The switch examines the CGMP packet. If it does not have a CAM entry for the multicast MAC address, it will create a CAM entry for GDA and associate the router port to it. The switch looks at the USA field and again examines the CAM table. The switch will have a CAM entry for the USA field because Host2 initiated the request for the multicast stream. As a result, the switch also adds the Host2 port to the GDA entry.

Step 7. Any subsequent multicast traffic destined to 239.1.1.1 will be forwarded to the RSM and the host port. In this example, the host port is 7/3.

IGMP Leave Process

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.

Local Leave Process

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:

Step 1. Host3 sends a leave group message to all routers, 224.0.0.2, for multicast traffic 239.1.1.1.

Step 2. The switch intercepts the IGMP packet. It sends an IGMP general query out the port 7/3.

Step 3. Because port 7/3 is the last host for the multicast traffic, the switch sources an IGMP leave message to the router.

Step 4. Upon receiving the IGMP leave message, the RSM sends two group specific queries to check for any members for VLAN 2:






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


Step 5. The RSM sends a CGMP message to the switch to delete the GDA from the CAM.