IGMP | это... Что такое IGMP? (original) (raw)

IGMP

Название: Internet Group Management Protocol
Уровень (по модели OSI): Сетевой
Семейство: TCP/IP
Назначение протокола: Управление групповой маршрутизацией
Спецификация: RFC 3376

IGMP (англ. Internet Group Management Protocol — протокол управления группами Интернета) — протокол управления групповой (multicast) передачей данных в сетях, основанных на протоколе IP. IGMP используется маршрутизаторами и IP-узлами для организации сетевых устройств в группы.

Этот протокол является частью спецификации групповой передачи пакетов в IP-сетях. IGMP расположен на сетевом уровне.[1] Он во многом аналогичен ICMP для односторонней передачи. IGMP может использоваться для поддержки потокового видео и онлайн-игр, для этих типов приложений он позволяет использовать сетевые ресурсы более эффективно. IGMP уязвим к некоторым атакам[2][3][4][5], и брандмауэры обычно позволяют пользователю отключить этот протокол, если в нем нет необходимости.

IGMP используется только в сетях IPv4, так как в IPv6 групповая передача пакетов реализована через протокол Multicast Listener Discovery.

Содержание

Архитектура

Сеть, предоставляющая услуги групповой передачи данных (например, видео) с использованием IGMP, может иметь следующую базовую архитектуру:

Пример архитектуры IGMP

IGMP используется клиентским компьютером и соседними коммутаторами для соединения клиента и локального маршрутизатора, осуществляющего групповую передачу. Далее между локальным и удаленным маршрутизаторами используется протокол Protocol Independent Multicast (PIM), с его помощью групповой трафик направляется от видеосервера к многочисленным клиентам групповой передачи.

Стандарты

Согласно Request for Comments (RFC), документу сообщества Internet Engineering Task Force (IETF), существует три версии IGMP. IGMPv1 определен в RFC 1112, IGMPv2 — в RFC 2236 и IGMPv3 — в RFC 3376.

Основным улучшением в IGMPv3 относительно IGMPv2 является поддержка фильтрации IP-адресов. С помощью этого механизма узел может сообщить, с каких адресов он хочет получать пакеты, а с каких нет.

Реализация

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

Операционные системы FreeBSD, Linux и Windows поддерживают клиентскую часть протокола. В системе Linux IGMPv3 был добавлен в версии ядра 2.5. Для FreeBSD IGMPv3 был добавлен в версии 8.0.

Для реализации серверной части IGMP в Linux используются демоны, например, mrouted может действовать как IGMP маршрутизатор. Существуют также целые программные комплексы (такие, как XORP), позволяющие превратить обычный компьютер в полнофункциональный маршрутизатор групповой передачи.

Структура пакетов IGMPv3

Определена стандартом RFC 3376.

Запрос принадлежности (Membership Query Message)

Запросы принадлежности рассылаются маршрутизаторами для того, чтобы для каждого узла определить его принадлежность к каким-либо группам (group membership state) и список источников информации, от которых данный узел хочет получать сообщения (reception state). Существует три типа таких запросов:

Октет 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0—3 Type = 0x11 Max Resp Code Checksum
4—7 Group Address
8—11 Resv S QRV QQIC Number of Sources (N)
12—15 Source Address [1]
Source Address [N]

Отчёт о принадлежности (Membership Report Message)

Октет 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0—3 Type = 0x22 Reserved Checksum
4—7 Reserved Number of Group Record (M)
8—11 Group Record [1]
Group Record [M]
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Record Type Aux Data Len Number of Sources (N)
Multicast Address
Source Address [1]
Source Address [N]
Auxilary Data

Другие типы пакетов

Тип Наименование Описание
0x12 Version 1 Membership report Должны поддерживаться для совместимости с предыдущими версиями
0x16 Version 2 Membership report
0x17 Version 2 Leave Group
0x13 Distance Vector Multicast Routing Protocol Экспериментальный протокол

См. также

Примечания

  1. Network Sorcery — IGMP
  2. Spoofed IGMP report denial of service vulnerability.
  3. Fragmented IGMP packet may promote «Denial of Service» attack.
  4. IGMP Security Problem Statement and Requirements.
  5. Microsoft Security Bulletin MS06-007: Vulnerability in TCP/IP Could Allow Denial of Service (913446).

Ссылки

Просмотр этого шаблона Основные протоколы TCP/IP по уровням модели OSI (Список портов TCP и UDP)
Физический EthernetRS-232EIA-422RS-449RS-485
Канальный EthernetPPPoEPPPL2F802.11 Wi-Fi802.16 WiMaxToken ringARCNETFDDIHDLCSLIPATMCANDTMX.25Frame relaySMDSSTPERPS
Сетевой IPv4IPv6IPsecICMPIGMPARPRARPRIP2OSPF
Транспортный TCPUDPSCTPDCCP • RDP/RUDPRTPGRE
Сеансовый ADSPH.245iSNSNetBIOSPAPRPCL2TPPPTPRTCPSMPPSCP • ZIP • SDP
Представления XDRSSLTLS
Прикладной BGPHTTPHTTPSDHCPIRCSNMPDNSDNSSECNNTPXMPPSIPIPPNTPSNTPЭлектронная почта (SMTPPOP3IMAP4) • Передача файлов (FTPTFTPSFTP) • Удалённый доступ (rloginTelnetSSHRDP)
Другие прикладные OSCARCDDBMulticast FTPMultisource FTPBitTorrentGnutellaSkype