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-пакета
Поле Размер (бит) Описание Type 8 Тип сообщения (Query = 0x11, Report = 0x16, Leave = 0x17) Max Response Time 8 Максимальное время ожидания ответа (в 1/10 сек) Checksum 16 Контрольная сумма Group Address 32 Адрес multicast-группы (0.0.0.0 в General Query)
Процесс работы (IGMPv2)
Хост присоединяется к multicast-группе — отправляет Membership Report .
Маршрутизатор принимает отчёт и добавляет запись о группе в свою таблицу.
Периодически маршрутизатор рассылает General Query для проверки, активны ли подписчики.
Один из хостов (выбранный случайно) отвечает Membership Report .
При выходе хост отправляет Leave Group , и маршрутизатор отправляет Group-Specific Query , чтобы уточнить, остались ли активные участники.
Если ответов нет — маршрутизатор прекращает доставку 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-заголовке) 2MAC-адрес назначения 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 Рассылка команд множеству устройств