Thursday, March 29, 2012

Internet Group Management Protocol (IGMP)

Hosts use Internet Group Management Protocol (IGMP) to register with their local routers to join and leave specific multicast groups. The routers are then aware that they need to forward the multicast data stream destined to the registered hosts of a specific multicast group. Understanding the IGMP multicast group membership join and leave process is important for configuring and troubleshooting IP multicasting.

RFC 1112 – Host Extensions for IP Multicasting specifies IGMPv1 specifies that multicast routers periodically send Membership Queries (every 60 to 120 seconds) to the All-Hosts multicast address group Hosts that are interested to receive traffic for specific multicast group send Membership Reports to the multicast address of the group they want to join. Hosts send Membership Reports either when they want to first join a multicast group or in response to Membership Queries originated by multicast routers (known as IGMPv1 queriers) to indicate that they want to continue receive traffic destined for the group that they have joined.
Note: The source does not necessarily have to join a multicast group; it only needs to know the multicast address to send traffic to the receivers on the group.

The report suppression process is in which only one member per group responds to a query on each subnet in order to conserve bandwidth on the subnet and minimize processing by hosts.

IGMPv1 specifies that there must be at least an active member of a multicast group on a segment if multicast traffic is to be forwarded to that segment.

IGMPv1 does not define a mechanism for hosts to leave a multicast group; therefore IGMPv1 hosts leave a multicast group silently anytime without notifying the local router. It is OK when there are multiple members remain on a segment, as the multicast traffic must still be delivered to the segment. However, when the last member on a segment leaves the multicast group, the router would still forward multicast traffic into a segment unnecessarily for a period of time (3 minutes) until it timeout the group after 3 consecutive queries without a report from a host. This approach is inefficient when there are many groups or there is a lot of traffic in the groups.

RFC 2236 – Internet Group Management Protocol, Version 2 was introduced to overcome the limitations and restrictions discovered in IGMPv1. IGMPv2 is backward compatible with IGMPv1. IGMPv2 focus upon the issues of leave and join latencies as well as the ambiguities of IGMPv1.

Below summarizes the important changes in IGMPv2:
  • Group-Specific Query that allows a router to query membership for only a single group instead of all groups; an optimized method to quickly find out whether any members are left in a particular group without asking all groups to report. The difference between the General Query and Group-Specific Query is that a General Query is multicast to the All-Host address; whereas a Group-Specific Query for a specific group is multicast to the multicast address of the group.
  • Leave Group message that allows hosts to inform their local routers when leaving a group. This reduces the leave latency for the group when the last member is leaving the group. The specification mentions the timing of when Leave Group message must be sent.
  • Querier Election mechanism that specifies that when there are multiple IGMP routers on the same segment (broadcast domain), the router with the highest IP address is elected as the designated querier.
  • Query intervals and response times that are specified in a general or group-specific query and are used to control the burstiness of membership reports. The query indicates the response time that the members must respond to a query by issuing a report.

IGMPv2 members do not need to wait for a query to join a multicast group; they send an unsolicited Membership Report to indicate the interest to join a group. This process reduces the join latency when there is no other members exist in the group.

The output of the show ip igmp groups EXEC command below indicates that the multicast group has been active on the Fa0/0 interface for 49 seconds, the multicast group expires and will be deleted in 2 minutes and 51 seconds if an IGMP Host Membership Report for the group is not received within that period, and the last host that reported its membership was PC2 ( when it joined the multicast group.
RT1#sh ip igmp groups
IGMP Connected Group Membership
Group Address    Interface                Uptime    Expires   Last Reporter        FastEthernet0/0          00:00:51  00:02:41       FastEthernet0/0          00:01:20  00:02:10

IGMPv1 hosts leave group passively and silently; they just stop reporting their membership upon the membership queries. IGMPv2 introduces explicit Leave Group messages. When an IGMPv2 router receives a Leave Group message, it sends a Group-Specific Query for the multicast group to find out whether there are other hosts that are still interested to receive traffic for the group. This process reduces the leave latency.

IGMPv2 – Leaving a Multicast Group

PC1 and PC2 are members of the multicast group Host PC1 leaves the group and by sending an IGMPv2 Leave Group message to the All-Routers multicast address RT1 receives the Leave Group message and sends a Group-Specific Query to find out whether there are other members are still present in the group. PC2 that has not left the multicast group yet responds with a Membership Report message to inform RT1 that it is still interested to receive traffic destined for and request RT1 to forward traffic for the group. Below shows the output of the show ip igmp groups EXEC command after PC1 has left the group.
RT1#sh ip igmp groups
IGMP Connected Group Membership
Group Address    Interface                Uptime    Expires   Last Reporter        FastEthernet0/0          00:01:41  00:02:20       FastEthernet0/0          00:02:09  00:02:23

When PC2 leaves the multicast group by sending an IGMPv2 Leave Group message, RT1 sends a Group-Specific Query and expect a report from other active group members. However, since PC2 is the last member of the multicast group, RT1 will not receive any Membership Report for, and the group time out and RT1 stops forwarding multicast traffic for the multicast group into the segment (broadcast domain).

RFC 3376 – Internet Group Management Protocol, Version 3 introduced the support for multicast source filtering, in which hosts can determine to receive multicast traffic only from particular sources within a multicast group, results in efficient utilization of routing resources.

A host sends an IGMPv3 Membership Report that may specify a source list that is used for source filtering to (the IGMP multicast address) upon joining a multicast group. A source list is used to indicate the multicast sources that the host will accept (INCLUDE) or will not accept (EXCLUDE) packets from. Multicast routers can now avoid delivering multicast packets from specific sources to networks where there are no interested receivers.

IGMPv3 multicast routers refresh the group membership state of members on a segment by sending General Queries periodically to request group membership information; and all IGMPv3 members respond with IGMPv3 Membership Reports that contain Current-State Group Records.

IGMPv3 is mainly used for Source-Specific Multicast (SSM) that is based on PIM sparse mode, which uses a separate source-distribution tree for each source within each multicast group.

The show ip igmp interface [type num] EXEC command displays multicast-related information for an interface, eg: the IGMP version that is active on an interface.
RT1#sh ip igmp interface
FastEthernet0/0 is up, line protocol is up
  Internet address is
  IGMP is enabled on interface
  Current IGMP host version is 2
  Current IGMP router version is 2
  IGMP query interval is 60 seconds
  IGMP querier timeout is 120 seconds
  IGMP max query response time is 10 seconds
  Last member query count is 2
  Last member query response interval is 1000 ms
  Inbound IGMP access group is not set
  IGMP activity: 2 joins, 0 leaves
  Multicast routing is enabled on interface
  Multicast TTL threshold is 0
  Multicast designated router (DR) is (this system)
  IGMP querying router is (this system)
  Multicast groups joined by this system (number of users):

1 comment: