Перейти к основному содержимому

Настройка IGMP

В этой главе описывается, как настроить протокол управления группами Интернета (IGMP).

Протокол управления группами Интернета (IGMP) используется IP-хостами для сообщения о своем участии в мультикаст-группах любым соседним мультикаст-маршрутизаторам.

Используя информацию, полученную через IGMP, маршрутизатор поддерживает список мультикаст-групп для каждого интерфейса. Маршрутизаторы, которые получают эти пакеты IGMP, отправляют мультикаст-данные, которые они получают для запрошенных групп, в сегмент сети известных получателей.

По умолчанию, когда PIM включен на интерфейсе, включается IGMP версии 3. IGMP может быть включен на интерфейсе явно.

Версии IGMP

PRSP поддерживает IGMPv2 и IGMPv3, а также прием отчетов IGMPv1. По умолчанию PRSP включает IGMPv3, когда PIM включен на интерфейсе.

IGMPv3 включает следующие ключевые изменения по сравнению с IGMPv2:

  • Поддержка Source-Specific Multicast (SSM), который строит деревья кратчайшего пути от каждого получателя к источнику, через следующие функции:
    • Сообщения хоста, которые могут указывать как группу, так и источник.
    • Мультикаст-состояние, которое поддерживается для групп и источников, а не только для групп, как в IGMPv2.
  • Хосты больше не выполняют подавление отчетов, что означает, что хосты всегда отправляют отчеты о членстве в IGMP при получении сообщения запроса IGMP.
Работа IGMP

IGMP работает на основе трех основных обменов пакетами между маршрутизаторами и хостами, которые хотят присоединиться к определенной группе.

Операция запроса IGMP

Как только IGMP включен или PIM включен (что включает IGMPv3) на любом интерфейсе, он начинает отправлять сообщение запроса, называемое общим запросом, в мультикаст-группу всех хостов по адресу 224.0.0.1 с определенной периодичностью, чтобы определить, хотят ли какие-либо хосты получать мультикаст-данные.

PRSP выбирает маршрутизатор в качестве IGMP-запрашивающего на подсети, если у него самый низкий IP-адрес. Пока маршрутизатор продолжает получать сообщения запроса от маршрутизатора с более низким IP-адресом, он сбрасывает таймер, основанный на значении времени ожидания запрашивающего. Если таймер запрашивающего маршрутизатора истекает, он становится назначенным запрашивающим. Если этот маршрутизатор позже получает сообщение запроса хоста от маршрутизатора с более низким IP-адресом, он отказывается от своей роли назначенного запрашивающего и снова устанавливает свой таймер запрашивающего.

На рисунке ниже Router-1 eth2 отправляет запросы с интервалом, равным query-interval. Поскольку IP-адрес Router1-eth2 меньше, чем у Router2 eth2, Router-1 eth2 становится запрашивающим на LAN.

Операция отчета о членстве IGMP

Когда хост получает запрос от локального маршрутизатора, он отправляет отчет о членстве хоста для всех мультикаст-групп, для которых он хочет получать мультикаст-трафик. Это называется запрошенным отчетом о членстве.

Когда хост присоединяется к новой группе, он немедленно отправляет отчет о членстве, чтобы сообщить локальному маршрутизатору, что он хочет получать мультикаст-трафик для группы, к которой он только что присоединился, не дожидаясь получения запроса. Это называется незапрошенным отчетом о членстве.

На рисунке ниже Host-1 и Host-2 отправляют отчеты о членстве на Router-1 eth2 для всех мультикаст-групп, для которых они хотят получать мультикаст-трафик. После получения отчета о членстве Router-1 поддерживает таблицу групп IGMP, содержащую мультикаст-адрес группы и имя интерфейса, на котором он получил отчет.

Операция выхода IGMP

Когда мультикаст-хост покидает группу, хост, работающий на IGMPv2 или более поздней версии, отправляет сообщение о выходе IGMP. Чтобы проверить, является ли этот хост последним, покидающим группу, маршрутизатор отправляет сообщение запроса IGMP (называемое Group-specific-query) и запускает таймер, который можно настроить, называемый last member query response interval. Если отчеты не получены до истечения таймера, программное обеспечение удаляет состояние группы. Маршрутизатор продолжает отправлять мультикаст-трафик для группы, пока ее состояние не будет удалено.

На рисунке ниже Host-1 и Host-2 отправляют сообщения о выходе на Router-1 eth2 для всех мультикаст-групп, для которых они больше не хотят получать мультикаст-трафик. В ответ на сообщение о выходе Router-1 eth2 отправляет сообщение group-specific-query перед удалением мультикаст-адреса группы из таблицы IGMP.

Топология

Процедуры в этом разделе используют топологию, показанную на рисунке 1-32.

Image

Рисунок 1-32: Топология IGMP

Настройка IGMP

Следующий пример показывает настройку IGMP на Router1.

Настройка версии IGMP

Конфигурация ниже показывает, как можно настроить версию IGMP.

#configure terminalПерейти в режим конфигурации.
(config)#ip multicast-routingВключить маршрутизацию IP-мультикаста.
(config)#interface eth2Перейти в режим интерфейса.
(config-if)#ip address 10.1.1.10/24Назначить IP-адрес интерфейсу.
(config-if)#ip igmp version 2Включить IGMP версии 2.
(config-if)#exitВыйти из режима интерфейса.
(config)#exitВыйти из режима конфигурации.
Проверка

Введите команды, перечисленные в этом разделе, чтобы подтвердить предыдущие настройки.

#show  running-config
!
no service password-encryption
!
hostname rtr1
!
ip multicast-routing
!
!
interface eth2
ip address 10.1.1.10/24
no shutdown
ip igmp version 2
Настройка параметров IGMP

Конфигурация ниже показывает, как можно настроить параметры IGMP.

#configure terminalПерейти в режим конфигурации.
(config)#ip multicast-routingВключить маршрутизацию IP-мультикаста.
(config)#interface eth2Перейти в режим интерфейса.
(config-if)#ip igmp access-group 1Настроить политику access-list для управления мультикаст-группами, к которым хосты в подсети, обслуживаемой интерфейсом, могут присоединяться.
(config-if)#ip igmp immediate-leave group-list 1Включить немедленное удаление записи группы из таблицы маршрутизации мультикаста при получении сообщения о выходе для группы.
(config-if)#ip igmp  join-group 224.1.1.1Статически привязать мультикаст-группу к исходящему интерфейсу.
(config-if)#ip igmp  last-member-querycount 7Установить количество запросов, используемых при запуске программного обеспечения.
(config-if)#ip igmp  last-member-queryinterval 25500Установить интервал запросов, используемый при запуске программного обеспечения.
(config-if)#ip igmp limit 100Настроить максимальное количество состояний на этом интерфейсе.
(config-if)#ip igmp querier-timeout 300Установить время ожидания запрашивающего, которое маршрутизатор использует при принятии решения о взятии на себя роли запрашивающего.
(config-if)#ip igmp  query-interval 200Установить частоту отправки маршрутизатором сообщений запроса хоста IGMP.
(config-if)#ip igmp  query-max-response-time 150Установить время ответа, указанное в запросах IGMP.
(config-if)#ip igmp  ra-optionВключить ra-option.
(config-if)#ip igmp  robustness-variable 4Установить переменную надежности.
(config-if)#ip igmp startup-query-count 4Установить количество запросов, используемых при запуске маршрутизатора.
(config-if)#ip igmp startup-query-interval 50Установить интервал запросов, используемый при запуске маршрутизатора.
(config-if)#ip igmp static-group 225.1.1.1Статически привязать мультикаст-группу к исходящему интерфейсу.
(config-if)#exitВыйти из режима интерфейса.
(config)#exitВыйти из режима конфигурации.
Проверка

Введите команды, перечисленные в этом разделе, чтобы подтвердить предыдущие настройки.

Rtr1#show  running-config
!
no service password-encryption
!
hostname rtr1
!
!
ip multicast-routing
!
!
interface eth2
ip address 10.1.1.10/24
no shutdown
ip igmp access-group 1
ip igmp immediate-leave group-list 1
ip igmp last-member-query-count 7
ip igmp limit 100
ip igmp join-group 224.1.1.1
ip igmp static-group 225.1.1.1
ip igmp last-member-query-interval 25500
ip igmp querier-timeout 300
ip igmp query-interval 200
ip igmp query-max-response-time 150
ip igmp startup-query-interval 50
ip igmp startup-query-count 4
ip igmp robustness-variable 4
ip igmp ra-option
ip igmp version 2
!
!
Rtr1#show  ip igmp   interface  eth2
Interface eth2 (Index 4)
IGMP Enabled, Active, Querier, Configured for version 2
Internet address is 10.1.1.10
IGMP interface limit is 100
IGMP interface has 2 group-record states
IGMP Interface statistics: v1-reports: 0 v2-reports: 0, v2-leaves: 0 v3-reports: 0
IGMP query interval is 200 seconds
IGMP Startup query interval is 50 seconds
IGMP Startup query count is 4
IGMP querier timeout is 300 seconds
IGMP max query response time is 150 seconds
Group Membership interval is 950 seconds
IGMP Last member query count is 7
Last member query response interval is 25500 milliseconds
Here is the sample configuration on Router-1 with all the IGMP related commands configured.
Rtr1#show  running-config
!
no service password-encryption
!
hostname rtr1
!
!
ip domain-lookup
!
ip multicast-routing
!
ip pim register-rp-reachability
ip pim crp-cisco-prefix
!
interface lo
ip address 127.0.0.1/8
ip address 1.1.1.57/32 secondary
ipv6 address ::1/128
no shutdown
!
interface eth0
ip address 10.12.48.179/24
no shutdown
!
interface eth1
ip address 192.168.1.27/24
no shutdown
ip igmp version 2
!
interface eth2
ip address 10.1.1.10/24
no shutdown
ip igmp access-group 1
ip igmp immediate-leave group-list 1
ip igmp last-member-query-count 7
ip igmp limit 100
ip igmp join-group 224.1.1.1
ip igmp static-group 225.1.1.1
ip igmp last-member-query-interval 25500
ip igmp querier-timeout 300
ip igmp query-interval 200
ip igmp query-max-response-time 150
ip igmp startup-query-interval 50
ip igmp startup-query-count 4
ip igmp robustness-variable 4
ip igmp ra-option
ip igmp version 2
!
line con 0
login line vty 0 16
exec-timeout 0 0
login line vty 17 39
login
!
End
Таблица групп IGMP после получения отчета о членстве IGMPv2

Таблица групп IGMP заполняется на маршрутизаторе либо за счет статической настройки присоединения на интерфейсе, либо за счет получения динамического отчета на интерфейсе.

Команда show ip igmp group отображает таблицу групп IGMP. В этой таблице определены следующие поля.

Таблица 1-177: Таблица групп IGMP после получения отчета о членстве IGMPv2

Group addressОтображает мультикаст-группу, для которой получен отчет.
InterfaceИмя интерфейса, на котором получен отчет о членстве.
UptimeВремя с момента получения отчета.
ExpiryВременной интервал, через который мультикаст-группа истечет.
Last ReporterIP-адрес хоста, с которого был сгенерирован отчет.
Rtr1#show  ip igmp groups
IGMP Connected Group Membership
Group Address    Interface      Uptime     Expires      Last Reporter
224.0.1.3            eth2       00:10:06   00:03:43     10.1.1.52
224.1.1.1            eth2       01:54:53   static         0.0.0.0
225.1.1.1            eth2       00:17:22   static         0.0.0.0
Rtr1#show ip igmp groups detail
IGMP Connected Group Membership Details
Flags: (M - SSM Mapping, R - Remote, L - Local,
SG - Static Group, SS - Static Source)`
Interface:      eth2
Group:          224.0.1.3
Flags:          R
Uptime:         00:10:06
Group mode:     Exclude (Expires: 00:03:43)
State: Active
Last reporter:  10.1.1.52
Source list is empty
`Flags: (M - SSM Mapping, R - Remote, L - Local,
SG - Static Group, SS - Static Source)
Interface:      eth2
Group:          224.1.1.1
Flags:          L
Uptime:         01:54:59
Group mode:     Exclude (Static)
State: Active
Last reporter:  0.0.0.0
Source list is empty
Flags: (M - SSM Mapping, R - Remote, L- Local,`
SG - Static Group, SS - Static Source)
Interface:      eth2
Group:          225.1.1.1
Flags:          SG
Uptime:         00:17:28
Group mode:     Exclude (Static)
State: Active
Last reporter:  0.0.0.0
Source list is empty
Таблица групп IGMP после получения отчета о членстве IGMPv3

Таблица групп IGMP заполняется на маршрутизаторе либо за счет статической настройки присоединения на интерфейсе, либо за счет получения динамического отчета на интерфейсе. Здесь IGMPv3 должен быть настроен на интерфейсе (по умолчанию IGMPv3 будет включен, если PIM настроен на интерфейсе).

Команда show ip igmp group отображает таблицу групп IGMP. В этой таблице определены следующие поля.

Таблица 1-178: Таблица групп IGMP после получения отчета о членстве IGMPv3

Group addressОтображает мультикаст-группу, для которой получен отчет.
InterfaceИмя интерфейса, на котором получен отчет о членстве.
UptimeВремя с момента получения отчета.
ExpiryВременной интервал, через который мультикаст-группа истечет.
Last ReporterIP-адрес хоста, с которого был сгенерирован отчет.
rtr6#show  ip igmp  groups IGMP Connected Group Membership
Group Address    Interface            Uptime   Expires  Last Reporter
224.0.1.3        eth2                 00:08:50 00:02:10 192.168.10.52
rtr6#show  ip igmp  groups detail
IGMP Connected Group Membership Details
Flags: (M - SSM Mapping, R - Remote, L - Local,
SG - Static Group, SS - Static Source)
Interface:      eth2
Group:          224.0.1.3
Flags:          R
Uptime:         00:08:50
Group mode:     Exclude (Expires: 00:04:57)
Last reporter:  192.168.10.52
Group source list: (R - Remote, M - SSM Mapping, S - Static, L - Local)
Exclude Source List :
Source Address  Uptime    v3 Exp    Fwd  Flags
1.2.3.4         00:08:50  stopped   No   R
For IGMPV3 report source list specifies which source to be included or exclude based on the membership report sent by the hosts.
In the above show command, Source address 1.2.3.4 is excluded to send
Multicast data  for group 224.0.1.3