What is MLD and how does it relate to IGMP?
Show the answer
Say this first
Multicast Listener Discovery is how IPv6 hosts tell routers which multicast groups they want, the IPv6 version of IGMP. MLDv1 matches IGMPv2 and MLDv2 matches IGMPv3, including source-specific multicast. It runs inside ICMPv6, sent from link-local addresses with hop limit 1 and a Router Alert option. Even a network with no multicast applications uses MLD, because hosts report the solicited-node groups NDP depends on.
Go deeper
Messages
| ICMPv6 type | Message |
|---|---|
| 130 | Multicast Listener Query |
| 131 | MLDv1 Report |
| 132 | MLDv1 Done |
| 143 | MLDv2 Report (sent to ff02::16) |
Mapping to IGMP
| IPv4 | IPv6 |
|---|---|
| IGMPv2 | MLDv1 (RFC 2710) |
| IGMPv3 | MLDv2 (RFC 3810) |
| IGMP snooping | MLD snooping |
How it plays out
- A router on the link acts as querier; the one with the lowest IPv6 address wins.
- Hosts answer queries with reports for every group they want, including their solicited-node groups.
- The Router Alert option in a Hop-by-Hop header makes routers look at reports for groups they are not members of.
On switches
MLD snooping lets a switch forward each group only to ports that asked for it. Like IGMP snooping it needs a querier on the VLAN to keep its state fresh. Enable snooping and a querier together, or leave both off.
They will ask next
Why does MLD use hop limit 1?
Group membership is a per-link matter. Hop limit 1 guarantees the reports never get forwarded.
Do you need to allow MLD through host firewalls?
Yes, at least on the local link. Blocking MLD reports breaks solicited-node delivery when the switches snoop, which then breaks address resolution.
Traps
- Saying MLD is a separate IP protocol. It is ICMPv6.
- Thinking a network without multicast applications has no MLD traffic.