IGMP – IP Multicast and Network Management
Internet Group Management Protocol (IGMP) is the protocol used in multicast implementations between the end hosts and the local router. RFC 1112 describes the first version of IGMP, RFC 2236 describes IGMP version 2 (IGMPv2), and RFC 3376 describes IGMP version 3 (IGMPv3).
IP hosts use IGMP to report their multicast group memberships to routers. IGMP messages use IP protocol number 2. IGMP messages are limited to the local interface and are not routed.
IGMPv1
The first RFC describing IGMP (RFC 1112), written in 1989, describes the host extensions for IP multicasting. IGMPv1 provides simple message types for communication between hosts and routers. These messages are
- Membership query: Sent by the router to check whether a host wants to join a multicast group
- Membership report: Sent by the host to join a multicast group in the segment
The problem with IGMPv1 is the latency involved for a host to leave a group. With IGMPv1, the router sends membership queries periodically; a host must wait for the membership query message to leave a group. The query interval is 60 seconds, and it takes three query intervals (3 minutes) for a host to leave the group.
IGMPv2
IGMPv2 improves on IGMPv1 by allowing faster termination or leaving of multicast groups.
IGMPv2 has three message types, plus one for backward compatibility:
- Membership query: Sent by the router to check whether a host wants to join a group.
- Version 2 membership report: Sent to the group address with the multicast group members (IP addresses). It is sent by hosts to join and remain in multicast groups on the segment.
- Version 2 leave group: Sent by the hosts to indicate that a host will leave a group; it is sent to destination 224.0.0.2. After the host sends the leave group message, the router responds with a group-specific query.
- Version 1 membership report: For backward compatibility with IGMPv1 hosts.
You enable IGMP on an interface when you configure a multicast routing protocol, such as PIM. You can configure the interface for IGMPv1, IGMPv2, or IGMPv3.
IGMPv3
IGMPv3 provides the extensions required to support Source-Specific Multicast (SSM). It is designed to be backward compatible with the two earlier versions of IGMP.
IGMPv3 has two message types, plus three for backward compatibility:
- Membership query: Sent by the router to check that a host wants to join a group.
- Version 3 membership report: Sent to the group address with the multicast group members (IP addresses). It is sent by hosts to request and remain in multicast groups on the segment. It is always sent to multicast 224.0.0.22.
- Version 2 membership report: Sent to the group address with the multicast group members (IP addresses). It is sent by hosts to request and remain in multicast groups on the segment. It is sent to the multicast group address. This message is used for backward compatibility with IGMPv2 hosts.
- Version 2 leave group: Sent by the hosts to indicate that a host will leave a group, to destination 224.0.0.2. The message is sent without having to wait for the IGMPv2 membership report message. This message is used for backward compatibility with IGMPv2 hosts.
- Version 1 membership report: Used for backward compatibility with IGMPv1 hosts.
You enable IGMP on an interface when you enable a multicast routing protocol, such as PIM. You can configure the interface for IGMPv1, IGMPv2, or IGMPv3.