Протокол управления интернет-группами
Набор интернет-протоколов |
---|
Прикладной уровень |
Транспортный уровень |
Интернет-слой |
Слой связи |
Протокол управления группами Интернета ( IGMP ) — это протокол связи, используемый хостами и соседними маршрутизаторами в сетях IPv4 для установления членства в группах многоадресной рассылки. IGMP является неотъемлемой частью многоадресной IP-рассылки и позволяет сети направлять многоадресную передачу только тем хостам, которые ее запросили.
IGMP может использоваться для сетевых приложений типа «один ко многим», таких как потоковое онлайн-видео и игры , и позволяет более эффективно использовать ресурсы при поддержке этих типов приложений.
IGMP используется в сетях IPv4 . Управление многоадресной рассылкой в сетях IPv6 осуществляется с помощью функции обнаружения прослушивателей многоадресной рассылки (MLD), которая является частью ICMPv6, в отличие от простой инкапсуляции IP в IGMP.
Архитектура
[ редактировать ]Сеть, предназначенная для предоставления услуг многоадресной рассылки с использованием IGMP, может использовать следующую базовую архитектуру:
IGMP работает между хостом и локальным многоадресным маршрутизатором. Коммутаторы , поддерживающие отслеживание IGMP, также получают полезную информацию, наблюдая за этими транзакциями IGMP. Независимая от протокола многоадресная рассылка (PIM) затем используется между локальными и удаленными маршрутизаторами многоадресной рассылки для направления многоадресного трафика от хостов, отправляющих многоадресные рассылки, на хосты, которые зарегистрировались через IGMP для их получения.
IGMP работает на сетевом уровне (уровень 3), так же, как и другие протоколы управления сетью, такие как ICMP . [ 1 ]
Протокол IGMP реализован на хостах и в маршрутизаторах . Хост запрашивает членство в группе через свой локальный маршрутизатор, в то время как маршрутизатор прослушивает эти запросы и периодически отправляет запросы на подписку. Для выполнения этой функции запроса выбирается один маршрутизатор в каждой подсети. Некоторые многоуровневые коммутаторы включают возможность запроса IGMP, позволяющую функциям отслеживания IGMP работать при отсутствии маршрутизатора с поддержкой IGMP в сети уровня 2.
IGMP уязвим для некоторых атак, [ 2 ] [ 3 ] [ 4 ] [ 5 ] а брандмауэры обычно позволяют пользователю отключить его, если в этом нет необходимости.
Версии
[ редактировать ]Существует три версии IGMP. [ 6 ] IGMPv1 был определен в 1989 году. [ 7 ] IGMPv2, определенный в 1997 году, [ 8 ] улучшает IGMPv1, добавляя возможность хосту сигнализировать о желании покинуть группу многоадресной рассылки.
В 2002 году IGMPv3 улучшил IGMPv2, поддерживая многоадресную рассылку для конкретного источника. [ 9 ] и вводит агрегирование отчетов о членстве. [ 10 ] Поддержка многоадресной рассылки для конкретного источника была улучшена в 2006 году. [ 11 ]
Три версии IGMP обратно совместимы. Маршрутизатор, поддерживающий IGMPv3, может поддерживать клиентов, использующих IGMPv1, IGMPv2 и IGMPv3. IGMPv1 использует модель запроса-ответа. Запросы отправляются на адрес 224.0.0.1 . Отчеты о членстве отправляются на многоадресный адрес группы. IGMPv2 ускоряет процесс выхода из группы и корректирует другие таймауты. Сообщения о выходе из группы отправляются на адрес 224.0.0.2 . Введен групповой запрос. Запросы, специфичные для группы, отправляются на групповой адрес группы. Представлены средства, позволяющие маршрутизаторам выбирать запрос IGMP для сети. IGMPv3 обеспечивает возможность многоадресной рассылки для конкретного источника . Отчеты о членстве отправляются на адрес 224.0.0.22 .
Сообщения
[ редактировать ]Существует несколько типов сообщений IGMP:
- Общие вопросы о членстве
- Отправляется маршрутизаторами многоадресной рассылки, чтобы определить, какие адреса многоадресной рассылки представляют интерес для систем, подключенных к сети (сетям), которые они обслуживают, для обновления состояния членства в группе для всех систем в ее сети.
- Запросы на участие в группах
- Используется для определения состояния приема для конкретного адреса многоадресной рассылки.
- Запросы, специфичные для группы и источника
- Разрешить маршрутизатору определять, желают ли какие-либо системы получать сообщения, отправленные в группу многоадресной рассылки с исходного адреса, указанного в списке одноадресных адресов.
- Отчеты о членстве
- Отправляется получателями многоадресной рассылки в ответ на запрос членства или асинхронно при первой регистрации в группе многоадресной рассылки.
- Оставлять сообщения группы
- Отправляется получателями многоадресной рассылки, когда указанная многоадресная передача больше не требуется на получателе.
Сообщения IGMP передаются в виде простых IP-пакетов с номером IP-протокола 2. [ 10 ] : §4 Как и в случае с протоколом управляющих сообщений Интернета , при обмене сообщениями IGMP не используется транспортный уровень .
Сообщения IGMPv2
[ редактировать ]битовое смещение | 0–7 | 8–15 | 16–31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Тип | Макс. Респ. Время | Контрольная сумма | |||||||||||||||||||||||||||||
32 | Адрес группы |
Где:
- Тип
- Указывает тип сообщения следующим образом
Значения типов сообщений IGMP Сообщение Введите значение Запрос на членство 0x11 Отчет о членстве в IGMPv1 0x12 Отчет о членстве в IGMPv2 0x16 Отчет о членстве в IGMPv3 0x22 Покинуть группу 0x17
- Макс. Респ. Время
- Указывает требуемую скорость ответа на запрос членства (0x11). Это поле имеет смысл только в запросе на членство; в других сообщениях он устанавливается в 0 и игнорируется получателем. В поле указывается время в единицах 0,1 секунды (значение поля 10 соответствует 1 секунде). Большие значения уменьшают пульсацию трафика IGMP, а меньшие значения улучшают реакцию протокола, когда последний хост покидает группу. [ 8 ] : §2.2
- Адрес группы
- Это адрес многоадресной рассылки, который запрашивается при отправке запроса, специфичного для группы или для группы и источника. Поле обнуляется при отправке общего запроса.
Сообщение отправляется с использованием следующих IP-адресов назначения:
Тип сообщения | Многоадресный адрес |
---|---|
Общий запрос | Все хосты (224.0.0.1) |
Групповой запрос | Группа, опрашиваемая |
Отчет о членстве (все версии IGMP) | Группа, о которой сообщается |
Покинуть группу | Все роутеры (224.0.0.2) |
Запрос членства в IGMPv3
[ редактировать ]битовое смещение | 0–3 | 4 | 5–7 | 8–15 | 16–31 | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Тип: 0x11 | Макс. Респ. Код | Контрольная сумма | |||||||||||||||||||||||||||||
32 | Адрес группы | |||||||||||||||||||||||||||||||
64 | Резв. | С | QRV | QQIC | Количество источников (N) | |||||||||||||||||||||||||||
96 | Адрес источника [1] | |||||||||||||||||||||||||||||||
128 | Исходный адрес [2] | |||||||||||||||||||||||||||||||
... | ... | |||||||||||||||||||||||||||||||
64 + 32 н. | Адрес источника [ n ] |
Где:
- Макс. Респ. Код
- В этом поле указывается максимальное время (с шагом 1/10 секунды), допустимое перед отправкой ответного отчета. Если число меньше 128, значение используется напрямую. Если значение равно 128 или более, оно интерпретируется как показатель степени и мантисса.
- Контрольная сумма
- Это 16-битное дополнение к сумме дополнений всего сообщения IGMP. Т.е. 16-битная сумма дополнения до единицы пакета равна нулю.
- Адрес группы
- Это адрес многоадресной рассылки, который запрашивается при отправке запроса, специфичного для группы или для группы и источника. Поле обнуляется при отправке общего запроса.
- Резв.
- Это поле зарезервировано. Его следует обнулить при отправке и игнорировать при получении.
- Флаг подавления обработки на стороне маршрутизатора (S)
- Когда этот флаг установлен, он указывает принимающим маршрутизаторам, что они должны подавлять обычные обновления таймера.
- Переменная устойчивости Querier (QRV)
- Если оно не равно нулю, оно содержит значение переменной устойчивости, используемое отправителем запроса. Маршрутизаторы должны обновить свою переменную устойчивости, чтобы она соответствовала последнему полученному запросу, если только ее значение не равно нулю.
- Код интервала запроса Querier (QQIC)
- Этот код используется для указания значения интервала запроса (в секундах), используемого запрашивающим. Если число меньше 128, значение используется напрямую. Если значение равно 128 или более, оно интерпретируется как показатель степени и мантисса.
- Количество источников (N)
- В этом поле указывается количество адресов источника, присутствующих в запросе. Для общих и групповых запросов это значение равно нулю. Для запросов, специфичных для группы и источника, это значение не равно нулю, но ограничено MTU сети.
- Адрес источника [i]
- Поля «Адрес источника» [i] представляют собой вектор из n одноадресных IP-адресов, где n — значение в поле «Количество источников (N)».
Реализации
[ редактировать ]FreeBSD , [ примечание 1 ] Линукс [ примечание 2 ] и Windows поддерживают IGMP на стороне хоста.
См. также
[ редактировать ]Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ Форузан, Бехруз А. (2012). Передача данных и сети (5-е изд.). Нью-Йорк, штат Нью-Йорк: МакГроу-Хилл. п. 658. ИСБН 978-0073376226 .
- ^ Поддельный отчет IGMP об уязвимости отказа в обслуживании.
- ^ «Фрагментированный пакет IGMP может способствовать атаке «отказ в обслуживании»» . 20 декабря 2004 г. Архивировано из оригинала 13 февраля 2005 г.
- ^ Положение о проблеме безопасности IGMP и требования. Архивировано 13 октября 2006 г. в Wayback Machine .
- ^ «Уязвимость TCP/IP может привести к отказу в обслуживании (MS06-007, 913446))» . 14 февраля 2006 г. Архивировано из оригинала 5 февраля 2007 г.
- ^ Руководство по настройке многоадресной IP-маршрутизации , Cisco , стр. 25–28 , получено 27 мая 2017 г.
- ^ С. Диринг (август 1989 г.). Расширения хоста для многоадресной IP-рассылки . Сетевая рабочая группа. дои : 10.17487/RFC1112 . СТД 5. RFC 1112 . Интернет-стандарт 5. Устарел. RFC 988 and 1054. Updated by РФК 2236 .
- ^ Jump up to: а б с д В. Феннер (ноябрь 1997 г.). Протокол управления интернет-группами, версия 2 . Сетевая рабочая группа. дои : 10.17487/RFC2236 . РФК 2236 . Предлагаемый стандарт. Обновления RFC 1112. Updated by РФК 3376 .
- ^ «Обзор протокола управления группами Интернета» . Джаввин. Архивировано из оригинала 10 ноября 2010 г. Проверено 18 ноября 2010 г.
- ^ Jump up to: а б с Б. Каин; С. Диринг ; И. Кувелас; Б. Феннер; А. Тьягараджан (октябрь 2002 г.). Протокол управления группами Интернета, версия 3 . Сетевая рабочая группа. дои : 10.17487/RFC3376 . РФК 3376 . Предлагаемый стандарт. Обновления RFC 2236. Updated by РФК 4604 .
- ^ Х. Холбрук; Б. Каин; Б. Хаберман (август 2006 г.). Использование протокола управления группами Интернета версии 3 (IGMPv3) и протокола обнаружения прослушивателей многоадресной рассылки версии 2 (MLDv2) для многоадресной рассылки с указанием источника . Сетевая рабочая группа. дои : 10.17487/RFC4604 . РФК 4604 . Предлагаемый стандарт. Обновления RFC 3376 и 3810 .