Из Википедии, бесплатной энциклопедии
  (Перенаправлено из IGMP )
Перейти к навигации Перейти к поиску

Management Protocol Internet Group ( 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 [ править ]

Где:

Тип
Указывает тип сообщения следующим образом
Максимальное время дыхания
Задает требуемую скорость отклика ответов на запрос о членстве (0x11). Это поле имеет значение только в запросе на членство; в других сообщениях он установлен в 0 и игнорируется получателем. В поле указывается время в единицах 0,1 секунды (значение поля 10 означает 1 секунду). Большие значения уменьшают пиковую скорость трафика IGMP, а меньшие значения улучшают реакцию протокола, когда последний хост покидает группу. [9] : §2.2
Адрес группы
Это адрес многоадресной рассылки, который запрашивается при отправке запроса, специфичного для группы или для группы и источника. Поле обнуляется при отправке общего запроса.

Сообщение отправляется с использованием следующих IP-адресов назначения:

Запрос на участие в IGMPv3 [ править ]

Где:

Максимальный код ответа
В этом поле указывается максимальное время (с шагом 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 на стороне хоста.

См. Также [ править ]

  • Протокол управления интернет-группами с контролем доступа

Заметки [ править ]

  1. ^ IGMPv3 был добавлен во FreeBSD в версии 8.0.
  2. ^ IGMPv3 был добавлен в серию ядер Linux 2.5.

Ссылки [ править ]

  1. ^ Forouzan, Behrouz А. (2012). Передача данных и сети (5-е изд.). Нью-Йорк, штат Нью-Йорк: Макгроу-Хилл. п. 658. ISBN 978-0073376226.
  2. ^ Поддельный отчет IGMP об уязвимости отказа в обслуживании .
  3. ^ «Фрагментированный пакет IGMP может способствовать« атаке отказа в обслуживании » . 20 декабря, 2004. Архивировано из оригинала на 2005-02-13.
  4. ^ Заявление о проблеме безопасности IGMP и требования, заархивированные 13 октября 2006 г. на Wayback Machine .
  5. ^ «Уязвимость в TCP / IP делает возможным отказ в обслуживании (MS06-007, 913446))» . 14 февраля 2006 года Архивировано из оригинала на 2007-02-05.
  6. ^ Руководство по настройке многоадресной IP-маршрутизации , Cisco , стр. 25–28 , получено 27 мая 2017 г.
  7. ^ «Обзор протокола управления группами Интернета» . Яввин. Архивировано из оригинала на 2010-11-10 . Проверено 18 ноября 2010 .
  8. ^ a b Протокол управления группами Интернета, версия 3 . DOI : 10,17487 / RFC3376 . RFC 3376 .
  9. ^ a b c Протокол управления группами Интернета, версия 2 . DOI : 10,17487 / RFC2236 . RFC 2236 .