Протокол управления интернет-группами - Internet Group Management Protocol
Набор интернет-протоколов |
---|
Уровень приложения |
Транспортный уровень |
Интернет-уровень |
Связующий слой |
В Протокол управления интернет-группами (IGMP) это протокол связи использован хозяева и прилегающие маршрутизаторы на Сети IPv4 для установления членства в группах многоадресной рассылки. IGMP является неотъемлемой частью Многоадресная IP-рассылка и позволяет сети направлять многоадресные передачи только тем хостам, которые их запросили.
IGMP можно использовать для сетевых приложений типа "один ко многим", таких как онлайн потоковое видео и игра, и позволяет более эффективно использовать ресурсы при поддержке этих типов приложений.
IGMP используется на IPv4 сети. Управление многоадресной рассылкой включено IPv6 сети обрабатываются Обнаружение многоадресного прослушивателя (MLD), которая является частью ICMPv6 в отличие от инкапсуляции IP-адреса IGMP.
Архитектура
Сеть, предназначенная для доставки многоадресной службы с использованием IGMP, может использовать эту базовую архитектуру:
IGMP работает между хостом и локальным многоадресным маршрутизатором. Переключатели с участием Отслеживание IGMP также получить полезную информацию, наблюдая за этими транзакциями IGMP. Независимая от протокола многоадресная передача Затем (PIM) используется между локальным и удаленным маршрутизаторами многоадресной рассылки для направления многоадресного трафика от хостов, отправляющих многоадресные рассылки на хосты, которые зарегистрировались через IGMP для их приема.
IGMP работает на сетевой уровень, так же, как и другие протоколы управления сетью, такие как ICMP.[1]
Протокол IGMP реализован на хостах и внутри маршрутизаторы. Хост запрашивает членство в группе через свой локальный маршрутизатор, в то время как маршрутизатор прослушивает эти запросы и периодически отправляет запросы подписки. Для выполнения этой функции запроса выбирается один маршрутизатор на подсеть. Немного многослойные переключатели включить функцию запроса IGMP, чтобы их функции отслеживания IGMP работали в отсутствие возможности многоадресной IP-рассылки в более крупной сети.
IGMP уязвим для некоторых атак,[2][3][4][5] а брандмауэры обычно позволяют пользователю отключить его, если он не нужен.
Версии
Существует три версии IGMP.[6] IGMPv1 определяется RFC 1112, IGMPv2 определяется RFC 2236 и IGMPv3 изначально был определен RFC 3376 и был обновлен RFC 4604 который определяет как IGMPv3, так и MLDv2. IGMPv2 улучшает IGMPv1, добавляя возможность хосту сигнализировать о желании покинуть группу многоадресной рассылки. IGMPv3 улучшает IGMPv2, поддерживая многоадресная рассылка для конкретного источника[7] и вводит агрегирование отчетов о членстве.
Эти версии обратно совместимы. Маршрутизатор, поддерживающий 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.[8]:§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, а меньшие значения улучшают реакцию протокола, когда последний хост покидает группу.[9]:§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 | Resv | S | QRV | QQIC | Количество источников (N) | |||||||||||||||||||||||||||
96 | Исходный адрес [1] | |||||||||||||||||||||||||||||||
128 | Исходный адрес [2] | |||||||||||||||||||||||||||||||
. . . | ||||||||||||||||||||||||||||||||
Исходный адрес [N] |
Где:
- Максимальный код ответа
- В этом поле указывается максимальное время (с шагом 1/10 секунды), разрешенное перед отправкой ответного отчета. Если число меньше 128, значение используется напрямую. Если значение равно 128 или больше, оно интерпретируется как показатель степени и мантисса.
- Контрольная сумма
- Это 16-битное дополнение суммы дополнений до одного всего сообщения IGMP.
- Адрес группы
- Это адрес многоадресной рассылки, который запрашивается при отправке запроса для конкретной группы или для группы и источника. Поле обнуляется при отправке общего запроса.
- Resv
- Это поле зарезервировано. Он должен быть обнулен при отправке и игнорироваться при получении.
- Флаг S (подавление обработки на стороне маршрутизатора)
- Когда этот флаг установлен, он указывает принимающим маршрутизаторам, что они должны подавить нормальные обновления таймера.
- QRV (переменная надежности Querier)
- Если оно не равно нулю, оно содержит значение переменной надежности, используемое отправителем запроса. Маршрутизаторам следует обновить свою переменную надежности, чтобы она соответствовала последнему полученному запросу, если значение не равно нулю.
- QQIC (код интервала запроса запрашивающего)
- Этот код используется для указания значения интервала запроса (в секундах), используемого запрашивающей стороной. Если число меньше 128, значение используется напрямую. Если значение 128 или больше, оно интерпретируется как показатель степени и мантисса.
- Количество источников (N)
- В этом поле указывается количество адресов источника, присутствующих в запросе. Для общих запросов и запросов для групп это значение равно нулю. Для запросов, специфичных для группы и источника, это значение не равно нулю, но ограничено MTU сети.
- Исходный адрес [i]
- Поля Source Address [i] представляют собой вектор из n IP-адресов одноадресной рассылки, где n - значение в поле Number of Sources (N).
Реализации
В FreeBSD,[примечание 1] Linux[заметка 2] и Windows операционные системы поддержка IGMP на стороне хоста.
Смотрите также
Примечания
Рекомендации
- ^ Форузан, Бехруз А. (2012). Передача данных и сети (5-е изд.). Нью-Йорк, штат Нью-Йорк: Макгроу-Хилл. п. 658. ISBN 978-0073376226.
- ^ Подделанный IGMP сообщает об отказе в обслуживании уязвимость.
- ^ «Фрагментированный пакет IGMP может способствовать атаке типа« отказ в обслуживании ». 20 декабря 2004 г. Архивировано с оригинал на 13 февраля 2005 г.
- ^ Описание проблемы безопасности IGMP и требования В архиве 2006-10-13 на Wayback Machine.
- ^ «Уязвимость в TCP / IP делает возможным отказ в обслуживании (MS06-007, 913446))». 14 февраля 2006 г. Архивировано с оригинал на 2007-02-05.
- ^ Руководство по настройке многоадресной IP-маршрутизации, Cisco, стр. 25–28, получено 2017-05-27
- ^ «Обзор протокола управления интернет-группами». Яввин. Архивировано из оригинал 10-11-2010. Получено 2010-11-18.
- ^ а б Протокол управления группами Интернета, версия 3. Дои:10.17487 / RFC3376. RFC 3376.
- ^ а б c Протокол управления группами Интернета, версия 2. Дои:10.17487 / RFC2236. RFC 2236.