The book points out that IGMPv3 is a major protocol change, and implementing it is A Very Big Deal. Some major IGMPv3 points:
- IGMPv3 allows hosts to control who is sending traffic to their group by filtering the source address. This is known a Source-Specific Multicast (SSM). This a DoS mitigation control.
- How would a host know what source IP might be sending multicast traffic to the group he just joined? Via protocols such as URL Rendezvous Directory (URD) and IGMPv3lite (an IGMPv3 stopgap while the world catches up with IGMPv3) to aid the application in discovering this information.
- IGMPv3 is compatible with IGMPv1 and v2.
Comparison of IGMPv1, v2 and v3
- First octet value for query message: 0x11 for all versions.
- Group address for the general query: 0.0.0.0 for all versions.
- Destination address for the general query: 22.214.171.124 for all versions.
- Default query interval: v1 – 60 seconds; v2|3 – 125 seconds.
- First octet value for the report: v1 – 0x12; v2 – 0x16; v3 – 0x22.
- Group address for the report: v1|2 – joining multicast group address; v3 – joining multicast group address and source address.
- Destination address for the report: v1|2 – joining multicast group address; v3 – 126.96.36.199.
- Is report suppression mechanism available?: v1|2 – yes; v3 – no.
- Can maximum response time be configured: v1 – no, 10 seconds; v2 – yes, 0 – 25.5 seconds; v3 – yes, 0 – 53 minutes.
- Can a host send a leave group message: v1 – no; v2|3 – yes.
- Destination address for the leave group message: v1 – n/a; v2 – 188.8.131.52; v3 – 184.108.40.206.
- Can a router send a group-specific query: v1 – no; v2|3 -yes.
- Can a host send source and group specific reports: v1|2 – no; v3 – yes.
- Can a router send source and group specific queries: v1|2 – no; v3 – yes.
- Rule for electing a querier: v1 – none, dependent on multicast routing protocol; v2|3 – router with lowest IP address on the subnet.
- Compatible with other IGMP versions: v1 – no; v2 – yes with v1; v3 – yes, with v1 and v2.
Multicast Listener Discovery Protocol (MLD)
- RFC 2710 defines MLD. MLD is like IGMPv2, only for use in an IPv6 environment.
- The major differences betwen IGMPv2 and MLD are as follows:
- All multicast hosts on a subnet use a special IPv6 “link-local” address as the source, preventing the MLD packet from going beyond the local segment.
- MLD hosts send a “Done” message when they want to leave a multicast group, instead of a “Leave” message. The Done message is addresses to the “all-routers” IPv6 link-local scope address of FF02::2.
- MLD router queries are called “Multicast Listener Queries”. General Queries are addressed to the “all-nodes” IPv6 link-local scope address, FF02::1. When a router receives a “Done” message, it responds witha Multicast-Address-Specific-Query, like an IGMPv2 Group-Specific Query.