# Overview

The IPv6 address scheme uses hexadecimal FF at the start of an address for IPv6 multicast. MLD is a protocol that uses these addresses. The following addresses have specific functions:

- You can assign only multicast addresses of global-scope (that is, containing an FFxE prefix, where x is the flags field) to a multicast group.
- FF02::1 is the link-scope all-nodes address—A packet sent to this address reaches all nodes on a subnetwork.
- FF02::2 is the link-scope all-routers address—A packet sent to this address reaches all routers on a subnetwork.
- FF02::16 is the link-scope all-MLDv2 routers address—A packet sent to this address reaches all MLDv2 routers on a subnetwork.

This implementation of MLD complies with MLD versions 1 and 2. MLDv2 allows for source-specific join and leave messages and is backward compatible with MLDv1. Configuring MLDv1 with the SSM mapping feature provides support for source-specific joins.

MLDv1 mode interfaces exchange the following types of messages between routers and hosts:

- Multicast listener queries
- Multicast listener reports
- Multicast listener done messages

MLDv2 mode interfaces exchange the following types of messages with MLDv2 hosts:

- Multicast listener queries
- MLDv2 multicast listener reports

## Multicast Listener Queries

A multicast router can be a querier or a nonquerier. There is only one querier on a network at any time. Multicast routers monitor queries from other multicast routers to determine the status of the querier. If the querier hears a query from a router with a lower IPv6 address, it relinquishes its role to that router.

MLDv1 and MLDv2 mode interfaces send two types of multicast listener queries to hosts on the network:

- General queries to the all-nodes address (FF02::1)
- Specific queries to the appropriate multicast group address

MLDv2 mode interfaces send the following type of queries to MLDv2 hosts:

- General queries
- Group-specific queries
- Source-specific queries

The purpose of a membership group query is to discover the multicast groups to which a host belongs.

MLDv1 and MLDv2 multicast listener queries have a Max Response Time field. This response time is the maximum that a host can take to reply to a query.

## Multicast Listener Reports

When a host receives a multicast listener query, it identifies the groups associated with the query and determines to which groups it belongs. The host then sets a timer, with a value less than the Max Response Time field in the query, for each group to which it belongs.

When the timer expires, the host sends a multicast listener report to the group address. When a multicast router receives a report, it adds the group to the membership list for the network and sets a timer to the multicast address listening interval. If this timer expires before the router receives another multicast listener report, the router determines that the group has no members left on the network.

If the router does not receive any reports for a specific multicast group within the maximum response time, it determines that the group has no members on the network. The router does not forward subsequent multicasts for that group to the network.

MLDv2 supports an extended report format that allows you to report multiple groups and source lists in a single report. These reports are addressed to the all-MLDv2 router's multicast address (FF02::16).

## Multicast Listener Done Messages

When an MLDv1 host leaves a group, it sends a multicast listener done message to multicast routers on the network. A host generally addresses multicast listener done messages to the all-routers address, FF02::2.

When an MLDv2 host leaves a group, it sends a multicast listener report. This report includes an empty source list for that group.