Перейти к содержанию

Настройка IGMP snooping

Описание и назначение функции

IGMP snooping ограничивает рассылку multicast-трафика на уровне L2. Коммутатор анализирует IGMP-сообщения между хостами и устройством L3, формирует соответствие «группа - порт» и отправляет multicast только на заинтересованные порты, а не во все порты сегмента. Практические рекомендации по поведению таких коммутаторов описаны в RFC 4541.

IGMP используется хостами IPv4 и соседними multicast-маршрутизаторами для сообщения о членстве в multicast-группах. Актуальное описание IGMPv3 опубликовано как RFC 9776 (STD 100), который заменил RFC 3376 в 2025 году.

Основные сценарии использования:

  • Ограничение лишней multicast-рассылки в пользовательских VLAN
  • Подключение абонентских портов с IPTV или другим multicast-сервисом
  • Контроль числа multicast-групп на интерфейсе и ускорение выхода из группы

Используйте IGMP snooping там, где multicast должен доходить только до портов с подписчиками.


Необходимые условия и предварительные требования

Для настройки IGMP snooping требуется:

  • Коммутатор CIT серии L3200
  • Версия ПО: v1.0.2 и выше (серия CIT L3200)
  • Настроенный пользовательский интерфейс, на котором ожидается прием multicast-трафика
  • Наличие VLAN и L2-сегмента, в котором проходит multicast-трафик
  • Наличие источника IGMP query в сегменте: multicast-маршрутизатор, querier или другой подтвержденный источник IGMP-служебных сообщений; без наблюдаемых IGMP query/report таблица членства не будет заполняться динамически так, как ожидается при штатной работе snooping.
  • Для igmp-snooping fast-leave enable - не более одного приемника multicast на порт; при нескольких хостах на одном порту функция может преждевременно удалить членство.

Note

В предоставленных тестах подтверждена глобальная активация igmp-snooping start и интерфейсные команды igmp-snooping ... в режиме интерфейса. Отдельная рабочая VLAN-конфигурация в этой версии ПО не подтверждена, поэтому ниже используется только проверенный глобальный и интерфейсный синтаксис.


Назначение команд конфигурации

Команда Режим Назначение
igmp-snooping start Global config Глобально включает IGMP snooping
interface 10gigaethernet 1/1/0/17 Global config Переходит в режим настройки интерфейса
igmp-snooping enable Interface config Включает IGMP snooping на интерфейсе
igmp-snooping fast-leave enable Interface config Ускоряет удаление членства после Leave
igmp-snooping ctrlmode enable Interface config Включает управляющий режим обработки IGMP на интерфейсе
igmp-snooping query-duplicate-suppress enable Interface config Включает подавление дублирующихся IGMP query на интерфейсе
igmp-snooping group-limit 20 action replace Interface config Ограничивает число multicast-групп на интерфейсе и задает действие при превышении лимита
igmp-snooping drop report Interface config Отбрасывает IGMP Report на интерфейсе
igmp-snooping drop query Interface config Отбрасывает IGMP Query на интерфейсе
igmp-snooping drop both Interface config Отбрасывает и Report, и Query на интерфейсе
no igmp-snooping group-limit Interface config Удаляет ограничение числа групп
no igmp-snooping drop Interface config Удаляет правило отбрасывания IGMP-пакетов
igmp-snooping disable Interface config Выключает IGMP snooping на интерфейсе
show igmp-snooping Privileged EXEC Показывает глобальное состояние и таймеры
show igmp-snooping config Privileged EXEC Показывает итоговую конфигурацию IGMP snooping
show igmp-snooping interface Privileged EXEC Показывает состояние функций по интерфейсам
show igmp-snooping group Privileged EXEC Показывает динамически изученные multicast-группы
show igmp-snooping statistic Privileged EXEC Показывает счетчики IGMP-сообщений

Ниже приведен базовый рабочий пример для абонентского порта. Команды drop report/query/both в основной конфигурации не используются, потому что это уже специализированная политика, а не типовой сценарий включения snooping.


Пример конфигурирования

Пошаговые инструкции

Шаг 1: Перейдите в режим конфигурации и включите IGMP snooping глобально

SW3#configure
SW3(config)#igmp-snooping start

Команда активирует IGMP snooping на устройстве.

Шаг 2: Перейдите в режим нужного интерфейса

SW3(config)#interface 10gigaethernet 1/1/0/17

Команда открывает настройку абонентского порта, на котором будет работать функция.

Шаг 3: Включите IGMP snooping на интерфейсе

SW3(config-10ge1/1/0/17)#igmp-snooping enable

После этого интерфейс участвует в обработке IGMP snooping.

Шаг 4: Включите fast leave

SW3(config-10ge1/1/0/17)#igmp-snooping fast-leave enable

Используйте эту команду на портах с одним приемником multicast.

Шаг 5: Включите ctrlmode

SW3(config-10ge1/1/0/17)#igmp-snooping ctrlmode enable

Команда включает дополнительный режим управления IGMP на интерфейсе. Проверяйте его по полю Ctrlmode.

Шаг 6: Включите подавление дублирующихся query

SW3(config-10ge1/1/0/17)#igmp-snooping query-duplicate-suppress enable

Команда снижает обработку повторяющихся IGMP query на порту.

Шаг 7: Ограничьте число групп на интерфейсе

SW3(config-10ge1/1/0/17)#igmp-snooping group-limit 20 action replace

Команда задает лимит в 20 multicast-групп и действие replace при превышении лимита.

Шаг 8: Выйдите из конфигурации и проверьте результат

1
2
3
4
5
SW3(config-10ge1/1/0/17)#exit
SW3(config)#exit
SW3#show igmp-snooping interface
  Interface       State     Ctrlmode  Fastleave Grouplimit   Drop    Action  GroupPolicy
  10ge1/1/0/17    enable    enable    enable    20           ---     replace ---

Вывод подтверждает, что интерфейс включен и нужные параметры применены.


Полный вывод выполненных конфигураций

Команды для copy-paste в режиме privileged EXEC:

configure
igmp-snooping start
interface 10gigaethernet 1/1/0/17
 igmp-snooping enable
 igmp-snooping fast-leave enable
 igmp-snooping ctrlmode enable
 igmp-snooping query-duplicate-suppress enable
 igmp-snooping group-limit 20 action replace
exit
end

Вывод show running-config:

1
2
3
!
igmp-snooping start
!

Note

На протестированной версии ПО интерфейсные параметры IGMP snooping надежнее проверять командой show igmp-snooping config. В show running-config они могут не отображаться в явном виде.

Вывод show igmp-snooping config:

1
2
3
4
5
6
7
8
9
!
igmp-snooping start
!
interface 10gigaethernet 1/1/0/17
 igmp-snooping enable
 igmp-snooping fast-leave enable
 igmp-snooping ctrlmode enable
 igmp-snooping query-duplicate-suppress enable
 igmp-snooping group-limit 20 action replace

Изучение состояния устройства

Просмотр конфигурации

Проверка активной конфигурации:

SW3#show running-config

Обратите внимание на строки:

  • igmp-snooping start - глобальная активация функции
  • interface 10gigaethernet 1/1/0/17 - сам интерфейс проверяйте дополнительно через show igmp-snooping config

Проверка итоговой конфигурации IGMP snooping:

SW3#show igmp-snooping config

Обратите внимание на строки:

  • igmp-snooping start - функция включена глобально
  • igmp-snooping group-limit 20 action replace - на интерфейсе действует лимит групп и политика replace

Просмотр параметров работы

Проверка глобальных параметров:

1
2
3
4
5
6
7
8
SW3#show igmp-snooping
  Version                        : IGMPSNOOP_VB3.03.00.00
  Igmp-snooping                  : start        <---- функция включена
  Robustness                     : 2
  Query Interval                 : 60 seconds
  Max Response Time              : 10 seconds
  Lastmember Query Interval      : 1 seconds
  V2router Aging Time            : 180 seconds

Проверка интерфейсов:

1
2
3
SW3#show igmp-snooping interface
  Interface       State     Ctrlmode  Fastleave Grouplimit   Drop    Action  GroupPolicy
  10ge1/1/0/17    enable    enable    enable    20           ---     replace ---   <---- профиль применен

Проверка изученных групп:

SW3#show igmp-snooping group
  Total Entry(s) : 0

Нулевое значение означает, что устройство еще не увидело рабочие IGMP-сообщения для динамического построения таблицы.

Проверка статистики IGMP:

SW3#show igmp-snooping statistic
 Receive packet number   : 0
 Receive report v1 number: 0
 Receive report v2 number: 0
 Receive report v3 number: 0
 Receive query number    : 0
 Receive leave number    : 0

 Send packet number      : 0
 Send report v1 number   : 0
 Send report v2 number   : 0
 Send report v3 number   : 0
 Send query number       : 0
 Send leave number       : 0

Если все счетчики равны нулю, проверьте наличие IGMP query/report в сегменте и фактический multicast-трафик. IGMP snooping заполняет состояние по наблюдаемым IGMP-сообщениям, а не «сам по себе».


Рекомендации выполнения команд и настроек

Выбор портов

  • Включайте igmp-snooping enable только на пользовательских портах, где реально есть прием multicast
  • Не добавляйте drop report, drop query или drop both в базовый профиль без отдельного сценария диагностики или фильтрации

Использование fast leave

  • Применяйте igmp-snooping fast-leave enable только там, где на порту один приемник
  • На портах с несколькими приемниками fast leave может слишком рано удалить членство и оборвать multicast-поток.

Ограничение числа групп

  • Подбирайте group-limit по профилю сервиса, а не «с запасом без границ»
  • Перед использованием action replace проверьте поведение на тестовом порту под реальной нагрузкой

Проверка после включения

  • Сразу проверяйте show igmp-snooping interface, show igmp-snooping group и show igmp-snooping statistic
  • Если интерфейс включен, а счетчики и группы пустые, ищите проблему не в конфигурации порта, а в отсутствии IGMP-служебного обмена или querier.

История возникновения команды

Команды в данной главе применимы для:

  • Аппаратных платформ CIT серии L3200 с установленной версией ПО v1.0.2 и выше
  • Являются актуальными с версии ПО v1.0.2

Версия ПО

По предоставленным данным глобальная активация и интерфейсная настройка IGMP snooping работают на ПО V1.0.2.


Ссылка на внешнюю документацию

Стандарт

Для общей теории и поведения коммутаторов L2 с IGMP snooping используйте RFC 4541. Для актуального описания IGMPv3 используйте RFC 9776 (STD 100), который заменил RFC 3376. При возникновении вопросов обратитесь в техническую поддержку.