Receivers use IGMP to inform last-hop routers of the groups they would like to become members of. The last-hop multicast routers use the IGMP messages to track group memberships on each of its directly connected LAN segments. The router forwards traffic from the requested group to the LAN segment that contains members of the group. If there are any intermediary switches between the client workstation and router, you can configure Cisco Group Multicast Protocol (CGMP) or IGMP snooping to avoid duplicating the multicast group across Layer 2 networks. There are currently three versions of IGMP: IGMPv1, IGMPv2, and IGMPv3.
Internet Group Management Protocol, Version 1
With IGMPv1, there are only two messages: IGMP Membership Queries and IGMP Membership Reports. Hosts can join multicast groups, using Membership Reports, but cannot explicitly leave the groups that they are members of. To determine if there are any receivers available for a group, routers send IGMP Membership Queries for the group in question to the all-hosts group 220.127.116.11 on its local LAN segments every 60 seconds. If the router does not receive an IGMP Membership Report for three consecutive queries (3 minutes), it stops forwarding traffic to that local LAN segment.
In Figure 5-4, the router first sends a general query to the all-hosts group. When the hosts receive the query from the router, they each start a local countdown timer. The countdown timer is a random time value between the range of 0 and 10 seconds for IGMPv1. When its countdown timer expires, the host sends a membership report to the all-hosts group with a Time To Live (TTL) of 1. If a host receives a report for the desired group within its countdown timer, it suppresses its own report because the router requires only one report per LAN segment.
Figure 5-4. IGMPv1 Operation
Hosts set the TTL in the IP header to 1 to contain the IGMP report to the local LAN segment. Recall that, when a router receives a packet with a TTL of 1, it processes and then discards the packet.
In Figure 5-4, Client B is the first to send a report, and the others therefore suppress their respective reports. The router sends periodic queries to the all-hosts group to ensure that there are still receivers on the LAN, and the process described previously is repeated.
To enable IGMPv1 on last-hop routers, use the interface configuration command ip igmp version 1.
Internet Group Management Protocol, Version 2
IGMPv2, adds Leave messages for receivers to terminate group membership in a timely fashion. The timeout-based group membership termination method described previously for IGMPv1 proves inefficient for groups whose membership is volatile. High-bandwidth groups also suffer from this method because bandwidth continues streaming to LANs with no receivers until the timeout period expires.
With IGMPv2, when a host wants to leave a group, it sends an IGMP Leave message to the all-routers group 18.104.22.168. When the router receives the Leave message, it sends a group-specific query to make sure that there are no other members of the group on the LAN before terminating the stream. You can configure the number of queries the router sends before terminating the stream by using the interface configuration command ip igmp last-member-query-count. You can also configure the time between group-specific queries using the interface configuration command ip igmp last-member-query-interval.
In Figure 5-5, Client B sends an IGMPv2 Leave message, but hosts A and C still require the multicast traffic group for group 22.214.171.124. Therefore, they send group membership reports in response to the router's query.
Figure 5-5. IGMPv2 Operation
IGMPv2 is backward compatible to IGMPv1.
To enable IGMPv2 on the last-hop router, use the interface configuration command ip igmp version 2.
Internet Group Management Protocol, Version 3
IGMPv3 adds source-filtering capabilities to the IGMP protocol. Source filtering enables receivers to specify the list of senders from which they want to receive multicast traffic.
IGMPv3 is backward compatible to IGMPv1 and IGMPv2 and is necessary for SSM, which will be discussed later in this Chapter.
You can configure IGMPv3 on receivers and last-hop routers in your network by using one of the following host signaling mechanisms: