Настройка 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.
Рисунок 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 Reporter | IP-адрес хоста, с которого был сгенерирован отчет. |
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 Reporter | IP-адрес хоста, с которого был сгенерирован отчет. |
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