12.5 Настройка IGMP Snooping
12.5.1 Обзор
Введение в функциональность
Коммутаторы уровня 2 могут использовать IGMP Snooping для ограничения распространения мультикастового трафика, динамически настраивая интерфейсы уровня 2 так, чтобы мультикастовый трафик передавался только на те интерфейсы, которые связаны с устройствами, использующими IP-мультикаст.
Как следует из названия, IGMP Snooping требует, чтобы LAN-коммутатор "прослушивал" передачи IGMP между хостами и маршрутизатором, отслеживая мультикастовые группы и порты участников.
- При получении IGMP-отчета от хоста для конкретной мультикастовой группы коммутатор добавляет номер порта хоста в запись таблицы пересылки.
- При получении сообщения IGMP Leave Group от хоста порт удаляется из записи таблицы.
- Если коммутатор не получает отчеты IGMP о членстве от клиентов мультикастов, он удаляет соответствующие записи.
Мультикастовый маршрутизатор периодически отправляет общие запросы всем VLAN. Хосты, заинтересованные в данном мультикастовом трафике, отправляют отчеты IGMP, на основе которых они добавляются в таблицу пересылки.
Коммутатор пересылает только один отчет для каждой мультикастовой группы IP к маршрутизатору мультикастов. Для каждой MAC-группы, от которой был получен IGMP-отчет, создается одна запись на VLAN в таблице пересылки уровня 2.
Динамические и статические группы
Мультикастовые группы уровня 2, изученные с помощью IGMP Snooping, являются динамическими. Если для адреса мультикастовой группы задано статическое членство, оно имеет приоритет над динамическими настройками IGMP Snooping. Списки членства в мультикастовых группах могут включать как статически заданные пользователем, так и автоматически изученные через IGMP Snooping настройки.
Ограничения и замечания
Протоколы VRRP, RIP и OSPF используют мультикастовые IP-адреса, поэтому следует избегать конфликта MAC-адресов, связанных с этими IP-адресами:
- VRRP использует мультикастовый IP-адрес
224.0.0.18. При одновременной работе IGMP Snooping и VRRP избегайте использования групп, чей MAC-адрес совпадает с этим IP-адресом. - OSPF использует мультикастовый IP-адрес
224.0.0.5. При одновременной работе IGMP Snooping и OSPF избегайте совпадения MAC-адресов. - RIP использует мультикастовый IP-адрес
224.0.0.9. Аналогично, избегайте конфликта MAC-адресов при одновременной работе IGMP Snooping и RIP.
12.5.2 Конфигурация
Включение IGMP Snooping
IGMP Snooping может быть включен как глобально, так и на уровне отдельных VLAN.
- Если IGMP Snooping отключен глобально, он не может быть активен ни на одном VLAN, даже если он включен для конкретного VLAN.
- Если IGMP Snooping включен глобально, его можно отключить на уровне отдельных VLAN.
- Глобальная конфигурация имеет приоритет над настройками на уровне VLAN.
По умолчанию IGMP Snooping включен как глобально, так и на уровне VLAN.
Шаг 1: Вход в режим конфигурации
Switch# configure terminal
Шаг 2: Включение IGMP Snooping глобально и на VLAN
Switch(config)# ip igmp snooping
Switch(config)# ip igmp snooping vlan 1
Шаг 3: Выход из режима конфигурации
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
Когда IGMP Snooping Fast Leave включен, группа IGMP Snooping будет удалена сразу после получения соответствующего IGMP-отчета.
Если Fast Leave не включен, коммутатор отправляет специальный запрос IGMP. Если в установленный период времени ответ не получен, группа будет удалена.
По умолчанию IGMP Snooping Fast Leave отключен как глобально, так и на уровне VLAN.
Шаг 1: Вход в режим конфигурации
Switch# configure terminal
Шаг 2: Включение Fast Leave глобально и на VLAN
Switch(config)# ip igmp snooping fast-leave
Switch(config)# ip igmp snooping vlan 1 fast-leave
Шаг 3: Выход из режима конфигурации
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
Настройка параметров Querier
Для работы IGMP и, соответственно, IGMP Snooping, в сети должен быть мультикастовый маршрутизатор, который генерирует запросы IGMP.
Таблицы, создаваемые для IGMP Snooping (содержащие порты участников для каждой мультикастовой группы), ассоциируются с запрашивающим устройством (querier).
Если запрашивающее устройство отсутствует, таблицы не создаются, и IGMP Snooping не функционирует.
Шаг 1: Вход в режим конфигурации
Switch# configure terminal
Шаг 2: Установка глобальных параметров
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: Установка параметров на 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: Выход из режима конфигурации
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
Порт IGMP Snooping Mrouter — это порт коммутатора, предполагающий подключение к мультикастовому маршрутизатору.
- Настройка: Порт Mrouter может быть настроен вручную для конкретного VLAN или изучен динамически.
- Определение порта Mrouter: Если на порт указанного VLAN поступает общий запрос IGMP или сообщение PIMv2 Hello, этот порт становится Mrouter-портом для данного VLAN.
Функции порта Mrouter:
- Все запросы IGMP, полученные на этом порту, будут распространяться по указанному VLAN.
- Все отчеты IGMP и сообщения Leave, полученные на этом VLAN, будут направляться на Mrouter-порт, либо напрямую, либо в агрегированном виде, в зависимости от конфигурации подавления отчетов (Report Suppression).
- Весь мультикастовый трафик на этом VLAN будет перенаправляться на порт Mrouter.
Шаг 1: Вход в режим конфигурации
Switch# configure terminal
Шаг 2: Включение подавления отчетов IGMP Snooping
Switch(config)# ip igmp snooping report-suppression
Шаг 3: Настройка порта Mrouter, включение подавления отчетов IGMP Snooping и установка времени устаревания динамического порта 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: Выход из режима конфигурации
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 (Spanning Tree Protocol) путем настройки количества запросов TCN (Topology Change Notification) и интервала между ними.
Шаг 1: Вход в режим конфигурации
Switch# configure terminal
Шаг 2: Настройка количества запросов TCN и интервала
Switch(config)# ip igmp snooping querier tcn query-count 5
Switch(config)# ip igmp snooping querier tcn query-interval 20
Шаг 3: Выход из режима конфигурации
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 для пересылки только одного IGMP-отчета от каждого запроса маршрутизатора мультикастов устройствам мультикаста.
При включенном подавлении отчетов (по умолчанию) коммутатор отправляет первый IGMP-отчет от всех хостов для группы всем мультикастовым маршрутизаторам.
Оставшиеся отчеты IGMP для группы не пересылаются, что предотвращает дублирование отчетов.
Шаг 1: Вход в режим конфигурации
Switch# configure terminal
Шаг 2: Включение подавления отчетов глобально и для VLAN
Switch(config)# ip igmp snooping report-suppression
Switch(config)# ip igmp snooping vlan 1 report-suppression
Шаг 3: Выход из режима конфигурации
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
Настройка Static group
Коммутатор может создавать группы IGMP Snooping при получении пакета IGMP Report на порту уровня 2 для указанного VLAN.
Также поддерживается настройка статических групп IGMP Snooping путем указания IP-адреса IGMP-группы, порта уровня 2 и VLAN.
Шаг 1: Вход в режим конфигурации
Switch# configure terminal
Шаг 2: Создание статической группы
Switch(config)# ip igmp snooping vlan 1 static-group 229.1.1.1 interface eth-0-2
Шаг 3: Выход из режима конфигурации
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