6.5. Настройка IGMP snooping

Назначение

IGMP snooping предназначен для ограничения заполнения сети мультикаст-трафиком. L2-интерфейсы могут динамически настраиваться таким образом, чтобы мультикаст-трафик пересылался только на те интерфейсы, которые связаны с коммутаторами, обеспечивающими рассылку на мультикаст-группы.

Описание

После включения IGMP snooping коммутатор начинает анализировать все IGMP-пакеты между подключенными к нему компьютерами-потребителями и маршрутизаторами-поставщиками мультикаст-трафика. Обнаружив сообщение “IGMP Query” потребителя на подключение к мультикаст-группе, коммутатор включает порт, к которому тот подключён, в список ее членов (для ретрансляции группового трафика). И наоборот: получив запрос “IGMP Leave” (покинуть), удаляет соответствующий порт из списка группы. Также коммутатор удаляет запись, если не получает сообщение “IGMP Query” от клиентов рассылки на мультикаст-группы.

Коммутатор, отправляющий мультикаст-трафик группам, периодически отправляет сообщения “IGMP General Query” во все VLAN. Узлы, заинтересованные в этом трафике, отправляют “IGMP Report” и добавляются в таблицу пересылки. Каждое коммутаторо отправляет один “IGMP Report” на группу. Для каждой VLAN коммутатор создает запись в таблице пересылки уровня L2 для каждой группы MAC, от которой получает “IGMP Report”.

Группы L2-рассылки для мультикаст-групп, изученных с помощью IGMP snooping, являются динамическими. Если членство в группе настроено вручную, то настройка заменяет любые автоматические манипуляции IGMP snooping. Списки членства в группах рассылки на мультикаст-группы могут быть настроены вручную или полученными через IGMP snooping.

Ограничения и примечания:

ВНИМАНИЕ!

  • При использовании VRRP, RIP и OSPF следует избегать использовать одинаковые многоадресные IP-адреса, которые имеют тот же многоадресный MAC-адрес, что и зарезервированные адреса VRRP, RIP и OSPF.

  • Если используется IGMP snooping вместе с VRRP, необходимо избегать адресов мультикаст-групп, совпадающих по MAC-адресу с групповым адресом 224.0.0.18, используемым VRRP.

  • При работе с OSPF и IGMP snooping следует избегать использовать многоадресные групповые адреса, совпадающие по MAC-адресу с адресом 224.0.0.5, используемым OSPF.

  • В случае использования RIP и IGMP snooping необходимо избегать адресов мультикаст-групп, совпадающих по MAC-адресу с групповым адресом 224.0.0.9, который использует RIP.

Настройка

Включение IGMP snooping

IGMP snooping может быть включен или выключен глобально, или отдельно для каждой VLAN. Если глобально выключен IGMP snooping, то он не будет работать ни на одной из VLAN, даже если на отдельных VLAN он включен. Если же IGMP snooping глобально включен, его можно отключить на отдельных VLAN. Тем не менее глобальная настройка может переопределить конфигурацию для отдельных VLAN. По умолчанию IGMP snooping включен глобально и для каждой VLAN.

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Включение IGMP snooping глобально и для отдельной VLAN

Switch(config)# ip igmp snooping
Switch(config)# ip igmp snooping vlan 1

Шаг 3: Выход из режима “Global config”

Switch(config)# end

Шаг 4: Проверка

Вывод IGMP snooping на VLAN:

Switch# show ip igmp snooping vlan 1
Global Igmp Snooping Configuration
-------------------------------------------------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Report-Suppression          :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Group Access-list           :N/A
Igmp Snooping Mrouter Port                :
Igmp Snooping Mrouter Port Aging Interval(sec) :255

Настройка быстрого выхода (Fast leave)

Если включена функция “Fast leave”, группа IGMP snooping будет удалена после получения соответствующего IGMP Report. В противном случае, коммутатор отправит “IGMP Query”. Если в указанный период не будет получено ответа, группа будет удалена. По умолчанию функция “Fast leave” отключена как глобально, так и для каждой VLAN.

Шаг 1: вход в режим “Global config”

Switch# configure terminal

Шаг 2: Включение “Fast Leave” глобально и для VLAN

Switch(config)# ip igmp snooping fast-leave
Switch(config)# ip igmp snooping vlan 1 fast-leave

Шаг 3: Выход из режима “Global config”

Switch(config)# end

Шаг 4: Проверка

Switch# show ip igmp snooping vlan 1
Global Igmp Snooping Configuration
-------------------------------------------------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Enabled
Igmp Snooping Report-Suppression          :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Group Access-list           :N/A
Igmp Snooping Mrouter Port                :
Igmp Snooping Mrouter Port Aging Interval(sec) :255
Настройка параметров Queriеr

Настройка параметров Querier’а

Для того чтобы IGMP и, соответственно, IGMP snooping функционировали в сети, требуется маршрутизатор, обеспечивающий рассылку на мультикаст-группы (querier) и генерирующий “IGMP Query”.

Queriеr – это маршрутизатор, который отвечает за отправку мультикаст-трафика в сегмент.

Таблицы, созданные для IGMP snooping (включающие порты-участники для каждой мультикаст-группы), связаны с Querier’ом. Без Querier’а таблицы не формируются, что приводит к неработоспособности IGMP snooping.

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Настройка IGMP snooping глобально

Switch(config)# ip igmp snooping query-interval 100
Switch(config)# ip igmp snooping query-max-response-time 5
Switch(config)# ip igmp snooping last-member-query-interval 2000
Switch(config)# ip igmp snooping discard-unknown

Шаг 3: Настройка IGMP snooping на отдельной VLAN

Switch(config)# ip igmp snooping vlan 1 querier address 10.10.10.1
Switch(config)# ip igmp snooping vlan 1 querier
Switch(config)# ip igmp snooping vlan 1 query-interval 200
Switch(config)# ip igmp snooping vlan 1 query-max-response-time 5
Switch(config)# ip igmp snooping vlan 1 querier-timeout 100
Switch(config)# ip igmp snooping vlan 1 last-member-query-interval 2000
Switch(config)# ip igmp snooping vlan 1 discard-unknown

Шаг 4: Выход из режима “Global config”

Switch(config)# end

Шаг 5: Проверка

Switch# show ip igmp snooping querier
Global Igmp Snooping Querier Configuration
-------------------------------------------------
Version                           :2
Last-Member-Query-Interval (msec) :2000
Last-Member-Query-Count           :2
Max-Query-Response-Time (sec)     :5
Query-Interval (sec)              :100
Global Source-Address             :0.0.0.0
TCN Query Count                   :2
TCN Query Interval (sec)          :10
TCN Query Max Respose Time (sec)  :5
Vlan 1:   IGMP snooping querier status
--------------------------------------------
Elected querier is : 0.0.0.0
--------------------------------------------
Admin state                       :Enabled
Admin version                     :2
Operational state                 :Non-Querier
Querier operational address       :10.10.10.1
Querier configure address         :10.10.10.1
Last-Member-Query-Interval (msec) :2000
Last-Member-Query-Count           :2
Max-Query-Response-Time (sec)     :5
Query-Interval (sec)              :200
Querier-Timeout (sec)             :100

Настройка Mrouter Port

Порт Mrouter предназначен для подключения маршрутизатора, обеспечивающего рассылку на мультикаст-группы. Порт Mrouter может быть настроен на конкретный VLAN или устанавливаться динамически.

Когда пакет “IGMP general query packet” или “PIMv2 hello packet” принимается портом VLAN, этот порт становится Mrouter-портом этой VLAN. Все “IGMP Query”, полученные на этом порту, будут переданы в соответствующий VLAN. Все “IGMP Report” и “IGMP Leave”, полученные на этом VLAN, будут направлены на Mrouter-порт, напрямую или агрегировано, в зависимости от конфигурации. Кроме того, весь мультикаст-трафик на этой VLAN будет перенаправлен на данный Mrouter-порт.

Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Включение функции “Report suppression”
Switch(config)# ip igmp snooping report-suppression
Шаг 3: Настройка Mrouter-порта

Включение функции “report suppression”, установка времени устаревания Mrouter-порта для VLAN:

Switch(config)# ip igmp snooping vlan 1 mrouter interface eth-0-1
Switch(config)# ip igmp snooping vlan 1 report-suppression
Switch(config)# ip igmp snooping vlan 1 mrouter-aging-interval 200
Шаг 4: Выход из режима “Global config”
Switch(config)# end
Шаг 5: Проверка
Switch# show ip igmp snooping vlan 1
Global Igmp Snooping Configuration
-------------------------------------------------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Report-Suppression          :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Group Access-list           :N/A
Igmp Snooping Mrouter Port                :eth-0-1
Igmp Snooping Mrouter Port Aging Interval(sec) :200

Настройка Querier TCN

Система поддерживает адаптацию обучения и обновления многоадресных маршрутизаторов после конвергенции STP путем настройки счетчика TCN и интервала Querier.

Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Настройка счетчика TCN Querier и интервала Querier
Switch(config)# ip igmp snooping querier tcn query-count 5
Switch(config)# ip igmp snooping querier tcn query-interval 20
Шаг 3: Выход из режима “Global config”
Switch(config)# end
Шаг 4: Проверка
Switch# show ip igmp snooping querier
Global Igmp Snooping Querier Configuration
-------------------------------------------------
Version                           :2
Last-Member-Query-Interval (msec) :1000
Max-Query-Response-Time (sec)     :10
Query-Interval (sec)              :125
Global Source-Address             :0.0.0.0
TCN Query Count                   :5
TCN Query Interval (sec)          :20
Vlan 1:   IGMP snooping querier status
--------------------------------------------
Elected querier is : 0.0.0.0
--------------------------------------------
Admin state                       :Disabled
Admin version                     :2
Operational state                 :Non-Querier
Querier operational address       :0.0.0.0
Querier configure address         :N/A
Last-Member-Query-Interval (msec) :1000
Max-Query-Response-Time (sec)     :10
Query-Interval (sec)              :125
Querier-Timeout (sec)             :255

Настройка подавления отчетов (report suppression)

Коммутатотор использует функцию подавления сообщений IGMP report (IGMP Join) для передачи только одного такого сообщения для каждого запроса IGMP Query. Когда функция подавления сообщений IGMP report включена (по умолчанию), коммутатор посылает первое пришедшее сообщение IGMP report от любого из потенциальных клиентов конкретной группы многоадресной рассылки в сторону мультикаст маршрутизаторов. Остальные соообщения IGMP report коммутатор отбрасывает. Эта предотвращает посылку одинаковых запросов IGMP report.

Шаг 1: Вход в режим “Global config”
Switch#configure terminal
Шаг 2: Включение подавления отчетов глобально и для отдельной VLAN
Switch(config)# ip igmp snooping report-suppression
Switch(config)# ip igmp snooping vlan 1 report-suppression
Шаг 3: Выход из режима “Global config”
Switch(config)# end
Шаг 4: Проверка
Switch# show ip igmp snooping
Global Igmp Snooping Configuration
-------------------------------------------------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Report-Suppression          :Enabled
Vlan 1
-----------
Igmp Snooping                             :Enabled
Igmp Snooping Fast-Leave                  :Disabled
Igmp Snooping Report-Suppression          :Enabled
Igmp Snooping Version                     :2
Igmp Snooping Robustness Variable         :2
Igmp Snooping Max-Member-Number           :2048
Igmp Snooping Unknown Multicast Behavior  :Flood
Igmp Snooping Group Access-list           :N/A
Igmp Snooping Mrouter Port                :
Igmp Snooping Mrouter Port Aging Interval(sec) :255

Настройка статической группы

Коммутатор автоматически формирует группу IGMP snooping при получении пакета “IGMP Report” на L2-порте соответствующей VLAN. Кроме того, коммутатор поддерживает настройку статических групп IGMP Snooping. Для выполнения этой настройки необходимо указать группу IGMP, L2-порт и VLAN.

Шаг 1: Вход в режим “Global config”
Switch#configure terminal
Шаг 2: Настройка статической группы
Switch(config)# ip igmp snooping vlan 1 static-group 229.1.1.1 interface eth-0-2
Шаг 3: Выход из режима “Global config”
Switch(config)# end
Шаг 4: Проверка
Switch# show ip igmp snooping groups 
VLAN   Interface      Group-Address      Uptime     Expires-time  
1      eth-0-2        229.1.1.1          00:01:08   stopped