IGMP (Internet Group Management Protocol) — это вспомогательный протокол сетевого уровня (Layer 3) модели OSI, предназначенный для управления членством в IPv4-мультикаст-группах (multicast groups).
Он используется хостами и маршрутизаторами для присоединения, выхода и контроля состояния multicast-групп в пределах локальной сети.
В модели TCP-IP IGMP входит в сетевой уровень (Internet Layer) наряду с IP и ICMP. IGMP не передаёт пользовательские данные — он служит для координации доставки многоадресного трафика (например, видео или IPTV).


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

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

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

  • Протокол: IGMP
  • Номер в IP-заголовке: Protocol = 2
  • Диапазон multicast-адресов: 224.0.0.0 – 239.255.255.255
  • Работает только с IPv4. Для IPv6 используется Multicast Listener Discovery (ICMPv6).
  • Тип передачи: только в пределах локального сегмента.
  • Типичные применения: IPTV, потоковое вещание, видеоконференции, корпоративные multicast-приложения.

Версии IGMP

  • IGMPv1 (RFC 1112) 1989 г. - Базовые функции Join и Query.
  • IGMPv2 (RFC 2236) 1997 г. - Добавлен Leave Group, уточнены таймеры.
  • IGMPv3 (RFC 3376) 2002 г. - Поддержка Source-Specific Multicast (SSM), фильтрация источников.

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

ТипНазначениеОтправитель
Membership QueryЗапрос от маршрутизатора для проверки активных группМаршрутизатор
Membership ReportСообщение о присоединении к группеХост
Leave GroupУведомление о выходе из группыХост

Формат IGMPv2-пакета

ПолеРазмер (бит)Описание
Type8Тип сообщения (Query = 0x11, Report = 0x16, Leave = 0x17)
Max Response Time8Максимальное время ожидания ответа (в 1/10 сек)
Checksum16Контрольная сумма
Group Address32Адрес multicast-группы (0.0.0.0 в General Query)

Процесс работы (IGMPv2)

  1. Хост присоединяется к multicast-группе — отправляет Membership Report.
  2. Маршрутизатор принимает отчёт и добавляет запись о группе в свою таблицу.
  3. Периодически маршрутизатор рассылает General Query для проверки, активны ли подписчики.
  4. Один из хостов (выбранный случайно) отвечает Membership Report.
  5. При выходе хост отправляет Leave Group, и маршрутизатор отправляет Group-Specific Query, чтобы уточнить, остались ли активные участники.
  6. Если ответов нет — маршрутизатор прекращает доставку multicast-трафика в этот сегмент.

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

Host A → Router: IGMP Membership Report (Join 239.1.1.1)
Router → LAN: Multicast data forwarded to group 239.1.1.1
Router → LAN: IGMP Query (every 125 sec)
Host A → Router: Membership Report (still interested)
Host A → Router: Leave Group (239.1.1.1)
Router → LAN: Group-Specific Query (239.1.1.1)
Router: No reply → stops forwarding multicast 239.1.1.1

IGMPv3 (Source-Specific Multicast)

  • Позволяет подписываться только на определённые источники (Include mode) или исключать некоторые (Exclude mode).
  • Вводит новый формат отчёта, содержащий список источников.
  • Используется для SSM (Source-Specific Multicast) — избирательного получения трафика только от нужных отправителей.

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

ПараметрЗначение
Протокол верхнего уровня (в IP-заголовке)2
MAC-адрес назначения01:00:5e:xx:xx:xx (соответствует IP-мультикаст адресу)
Типичные служебные адреса224.0.0.1 (все хосты), 224.0.0.2 (все маршрутизаторы), 224.0.0.22 (IGMPv3)

Диагностика и анализ

УтилитаНазначение
ip maddr showПросмотр multicast-групп на интерфейсе
netstat -gОтображение членства в группах
tcpdump -n igmpПросмотр IGMP-пакетов
smcrouteУправление статическими multicast-маршрутами
mtraceТрассировка multicast-пути
ssmpingПроверка работы Source-Specific Multicast

Пример:

$ sudo tcpdump -n -i eth0 igmp
IP 192.168.1.10 > 224.0.0.22: IGMPv3 Membership Report
IP 192.168.1.1 > 224.0.0.1: IGMPv2 Membership Query

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

  • Возможны атаки: IGMP flooding, spoofed report, multicast amplification.
  • IGMP не имеет аутентификации или шифрования.
  • В продакшн-сетях рекомендуется:
    • Ограничивать multicast-трафик на уровне VLAN.
    • Использовать IGMP Snooping на коммутаторах для предотвращения широковещательной рассылки.
    • Фильтровать подозрительные IGMP-пакеты на маршрутизаторах и брандмауэрах.

Применение в сетях

ОбластьПример
IPTVУправление подписками на потоки телеканалов
ВидеоконференцииПередача видео по multicast-группам
Корпоративные сетиСинхронизация и рассылка обновлений
IoT / Sensor NetworksРассылка команд множеству устройств