MLD (Multicast Listener Discovery) — это вспомогательный протокол сетевого уровня (Layer 3) модели OSI, предназначенный для управления членством узлов в multicast-группах в IPv6-сетях.
MLD используется хостами и маршрутизаторами для обмена сообщениями о присоединении и выходе из IPv6-мультикаст-групп, аналогично тому, как IGMP работает в IPv4.

В модели TCP-IP MLD входит в сетевой уровень (Internet Layer) и реализован как часть ICMPv6 (Protocol = 58).


Основные функции

  • Регистрация хоста в multicast-группе (Join).
  • Уведомление маршрутизатора о выходе из группы (Leave).
  • Проверка активности участников (Query / Report цикл).
  • Контроль доставки multicast-трафика в пределах IPv6-линка.

Основные характеристики

  • Основан на ICMPv6 (в отличие от IGMP, который — отдельный протокол поверх IP).
  • Используется только с IPv6.
  • Работает в пределах локального сегмента (link-local scope).
  • Версии:
    • MLDv1 (RFC 2710) — базовая функциональность, аналог IGMPv2.
    • MLDv2 (RFC 3810) — поддержка Source-Specific Multicast (SSM), аналог IGMPv3.
  • Адрес назначения: ff02::16 — все маршрутизаторы, поддерживающие MLD.

Основные типы сообщений

Тип ICMPv6НазваниеНазначениеОтправитель
130Multicast Listener QueryЗапрос маршрутизатора об активных группахМаршрутизатор
131Multicast Listener ReportСообщение о присоединении к группеХост
132Multicast Listener DoneУведомление о выходе из группыХост
143Multicast Listener Report v2Расширенный отчёт (MLDv2, SSM)Хост

Формат пакета MLDv1

ПолеРазмер (бит)Описание
Type8Тип сообщения (130–132)
Code8Всегда 0
Checksum16Контрольная сумма ICMPv6
Maximum Response Delay16Максимальная задержка ответа
Reserved16Зарезервировано
Multicast Address128IPv6 multicast-адрес группы

Принцип работы

  1. Маршрутизатор периодически отправляет Multicast Listener Query на ff02::1 (все узлы).
  2. Хосты, подписанные на multicast-группы, отвечают Multicast Listener Report с адресом своей группы.
  3. Если хост покидает группу, он отправляет Multicast Listener Done.
  4. Маршрутизатор отправляет Group-Specific Query, чтобы проверить, остались ли другие слушатели.
  5. Если ответов нет — доставка multicast-трафика для этой группы прекращается.

Пример взаимодействия

Host A → Router: MLD Report (Join ff15::1234)
Router → LAN: IPv6 multicast data forwarded to ff15::1234
Router → LAN: MLD Query (ff02::1)
Host A → Router: MLD Report (still interested)
Host A → Router: MLD Done (ff15::1234)
Router → LAN: Group-Specific Query (ff15::1234)
Router: No response → stops forwarding

MLDv2 (RFC 3810)

  • Поддерживает Source-Specific Multicast (SSM).
  • Хост может указать список источников, от которых хочет или не хочет получать поток.
  • Два режима фильтрации:
    • Include mode — принимать только от указанных источников.
    • Exclude mode — принимать от всех, кроме указанных источников.
  • Использует Multicast Listener Report v2 (Type = 143), содержащий список групп и источников.

Инкапсуляция и адресация

ПараметрЗначение
Протокол верхнего уровняICMPv6 (Protocol = 58)
IPv6-адрес источникаLink-local адрес (fe80::/10)
IPv6-адрес назначенияff02::1 (все узлы) или ff02::16 (все маршрутизаторы)
MAC-адрес multicast33:33:xx:xx:xx:xx (низшие 32 бита IPv6 multicast-адреса)

Диагностика и управление

УтилитаНазначение
ip -6 maddr showПросмотр IPv6 multicast-групп
netstat -gСписок multicast-групп IPv4 и IPv6
tcpdump -n icmp6 and ip6[40]==130Анализ MLD Query
tcpdump -n icmp6 and ip6[40]==143Анализ MLDv2 Report
ssmping6Проверка Source-Specific Multicast по IPv6
smcrouteУправление статическими multicast-маршрутами

Пример:

$ sudo tcpdump -n -i eth0 icmp6 and ip6[40]==130
fe80::1 > ff02::1: [icmp6 sum ok] MLD Query (max resp delay 10.0s)

Безопасность

  • MLD не содержит аутентификации — возможны spoofed Report/Done-пакеты.
  • Возможны DoS-атаки путём создания большого количества multicast-групп.
  • Рекомендуется:
    • Использовать MLD Snooping на коммутаторах.
    • Ограничивать TTL (Hop Limit = 1).
    • Применять фильтрацию multicast-трафика на границе VLAN/подсетей.

Применение

ОбластьПример
IPv6 IPTVУправление потоками каналов
Multimedia streamingРаспространение контента по SSM
Служебные протоколы IPv6ND, DHCPv6, Router Advertisement используют multicast
IoT / Smart devicesСинхронное обновление или командная рассылка

Сравнение IGMP и MLD

ХарактеристикаIGMPMLD
ПротоколОтдельный (IP Protocol = 2)Часть ICMPv6 (Protocol = 58)
Версииv1, v2, v3v1, v2
Поддержка SSMIGMPv3MLDv2
IP-версияIPv4IPv6
Адреса управления224.0.0.xff02::x
Аналог на L2IGMP SnoopingMLD Snooping

Связь с другими компонентами IPv6

  • MLD — основа IPv6 multicast membership management.
  • ICMPv6 — базовый транспортный механизм.
  • Neighbor Discovery (ND) и Router Discovery также используют multicast, но с другими типами ICMPv6-сообщений.