To start implementing
multicasting in the campus network, users must first define who receives the
multicast. The MLD protocol is used by IPv6 devices to discover the presence of
multicast listeners (for example, nodes that want to receive multicast packets)
on their directly attached links, and to discover specifically which multicast
addresses are of interest to those neighboring nodes. It is used for
discovering local group and source-specific group membership. The MLD protocol
provides a means to automatically control and limit the flow of multicast
traffic throughout your network with the use of special multicast queriers and
hosts.
The difference
between multicast queriers and hosts is as follows:
-
A querier is a
network device that sends query messages to discover which network devices are
members of a given multicast group.
-
A host is a
receiver that sends report messages to inform the querier of a host membership.
A set of queriers and
hosts that receive multicast data streams from the same source is called a
multicast group. Queriers and hosts use MLD reports to join and leave multicast
groups and to begin receiving group traffic.
MLD uses the Internet
Control Message Protocol (ICMP) to carry its messages. All MLD messages are
link-local with a hop limit of 1, and they all have the alert option set. The
alert option implies an implementation of the hop-by-hop option header.
MLD has three types
of messages:
-
Query—General,
group-specific, and multicast-address-specific. In a query message, the
multicast address field is set to 0 when MLD sends a general query. The general
query learns which multicast addresses have listeners on an attached link.

Note
|
Group-specific
and multicast-address-specific queries are the same. A group address is a
multicast address.
|
-
Report—In a
report message, the multicast address field is that of the specific IPv6
multicast address to which the sender is listening.
-
Done—In a done
message, the multicast address field is that of the specific IPv6 multicast
address to which the source of the MLD message is no longer listening.
An MLD report must be
sent with a valid IPv6 link-local source address, or the unspecified address
(::), if the sending interface has not yet acquired a valid link-local address.
Sending reports with the unspecified address is allowed to support the use of
IPv6 multicast in the Neighbor Discovery Protocol.
For stateless
autoconfiguration, a node is required to join several IPv6 multicast groups in
order to perform duplicate address detection (DAD). Prior to DAD, the only
address the reporting node has for the sending interface is a tentative one,
which cannot be used for communication. Therefore, the unspecified address must
be used.
MLD states that
result from MLD version 2 or MLD version 1 membership reports can be limited
globally or by interface. The MLD group limits feature provides protection
against denial of service (DoS) attacks caused by MLD packets. Membership
reports in excess of the configured limits is not entered in the MLD cache, and
traffic for those excess membership reports will not be forwarded.
MLD provides support
for source filtering. Source filtering allows a node to report interest in
listening to packets only from specific source addresses (as required to
support SSM), or from all addresses except specific source addresses sent to a
particular multicast address.
When a host using MLD
version 1 sends a leave message, the device needs to send query messages to
reconfirm that this host was the last MLD version 1 host joined to the group
before it can stop forwarding traffic. This function takes about 2 seconds.
This "leave latency" is also present in IGMP version 2 for IPv4 multicast.