El Protocolo de administración de grupos de Internet ( IGMP ) es un protocolo de comunicaciones utilizado por hosts y enrutadores adyacentes en redes IPv4 para establecer membresías de grupos de multidifusión. IGMP es una parte integral de la multidifusión IP y permite que la red dirija las transmisiones multidifusión solo a los hosts que las han solicitado.
IGMP se puede utilizar para aplicaciones de red de uno a varios, como juegos y video en línea , y permite un uso más eficiente de los recursos al admitir este tipo de aplicaciones.
IGMP se utiliza en redes IPv4 . La gestión de multidifusión en redes IPv6 es manejada por Multicast Listener Discovery (MLD), que es parte de ICMPv6 en contraste con la encapsulación IP desnuda de IGMP.
Arquitectura
Una red diseñada para ofrecer un servicio de multidifusión mediante IGMP podría utilizar esta arquitectura básica:
IGMP opera entre un host y un enrutador de multidifusión local. Los conmutadores que cuentan con espionaje IGMP también obtienen información útil al observar estas transacciones IGMP. La multidifusión independiente del protocolo (PIM) se utiliza entre los enrutadores de multidifusión locales y remotos para dirigir el tráfico de multidifusión desde los hosts que envían multidifusión a los hosts que se han registrado a través de IGMP para recibirlos.
IGMP opera en la capa de red , al igual que otros protocolos de administración de red como ICMP . [1]
El protocolo IGMP se implementa en hosts y en enrutadores . Un host solicita la pertenencia a un grupo a través de su enrutador local, mientras que un enrutador escucha estas solicitudes y envía periódicamente consultas de suscripción. Se elige un solo enrutador por subred para realizar esta función de consulta. Algunos conmutadores multicapa incluyen una capacidad de consulta IGMP para permitir que sus funciones de rastreo IGMP funcionen en ausencia de una capacidad de multidifusión IP en la red más grande.
IGMP es vulnerable a algunos ataques, [2] [3] [4] [5] y los firewalls comúnmente permiten al usuario desactivarlo si no es necesario.
Versiones
Hay tres versiones de IGMP. [6] IGMPv1 está definido por RFC 1112 , IGMPv2 está definido por RFC 2236 e IGMPv3 fueron inicialmente definidos por RFC 3376 y ha sido actualizado por RFC 4604 que define IGMPv3 y MLDv2. IGMPv2 mejora IGMPv1 al agregar la capacidad de un host para señalar el deseo de abandonar un grupo de multidifusión. IGMPv3 mejora IGMPv2 al admitir multidifusión específica de la fuente [7] e introduce la agregación de informes de membresía.
Estas versiones son compatibles con versiones anteriores. Un enrutador compatible con IGMPv3 puede admitir clientes que ejecuten IGMPv1, IGMPv2 e IGMPv3. IGMPv1 utiliza un modelo de consulta-respuesta. Las consultas se envían a 224.0.0.1. Los informes de membresía se envían a la dirección de multidifusión del grupo. IGMPv2 acelera el proceso de salida de un grupo y ajusta otros tiempos de espera. Los mensajes de grupo de abandono se envían al 224.0.0.2. Se introduce una consulta específica de grupo. Las consultas específicas de grupo se envían a la dirección de multidifusión del grupo. Se introduce un medio para que los enrutadores seleccionen un interrogador IGMP para la red. IGMPv3 introduce la capacidad de multidifusión específica de la fuente . Los informes de membresía se envían al 224.0.0.22.
Mensajes
Hay varios tipos de mensajes IGMP:
- Consultas generales sobre miembros
- Enviado por enrutadores de multidifusión para determinar qué direcciones de multidifusión son de interés para los sistemas conectados a la (s) red (es), sirven para actualizar el estado de pertenencia al grupo para todos los sistemas en su red.
- Consultas de membresía específicas de grupo
- Se utiliza para determinar el estado de recepción de una dirección de multidifusión particular
- Consultas específicas de grupo y fuente
- Permitir que el enrutador determine si algún sistema desea recibir mensajes enviados a un grupo de multidifusión desde una dirección de origen especificada en una lista de direcciones de unidifusión.
- Informes de membresía
- Enviado por receptores de multidifusión en respuesta a una consulta de membresía o de forma asincrónica cuando se registra por primera vez en un grupo de multidifusión
- Dejar mensajes grupales
- Enviado por receptores de multidifusión cuando las transmisiones de multidifusión especificadas ya no son necesarias en el receptor
Los mensajes IGMP se transportan en paquetes IP desnudos con el protocolo IP número 2. [8] : §4 Similar al Protocolo de mensajes de control de Internet , no se utiliza una capa de transporte con la mensajería IGMP.
Mensajes IGMPv2
desplazamiento de bits | 0–7 | 8-15 | 16–31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Tipo | Tiempo máximo de respuesta | Suma de comprobación | |||||||||||||||||||||||||||||
32 | Dirección de grupo |
Dónde:
- Tipo
- Indica el tipo de mensaje de la siguiente manera
Valores de tipo de mensaje IGMP Mensaje Valor de tipo Consulta de membresía 0x11 Informe de membresía IGMPv1 0x12 Informe de membresía IGMPv2 0x16 Informe de membresía IGMPv3 0x22 Salir del grupo 0x17
- Tiempo máximo de respuesta
- Especifica la capacidad de respuesta requerida de las respuestas a una consulta de pertenencia (0x11). Este campo solo es significativo en Consulta de miembros; en otros mensajes, se establece en 0 y el receptor lo ignora. El campo especifica el tiempo en unidades de 0,1 segundo (un valor de campo de 10 especifica 1 segundo). Los valores más grandes reducen la ráfaga de tráfico IGMP y los valores más pequeños mejoran la capacidad de respuesta del protocolo cuando el último host abandona un grupo. [9] : §2.2
- Dirección de grupo
- Esta es la dirección de multidifusión que se consulta al enviar una consulta específica de grupo o específica de grupo y origen. El campo se pone a cero cuando se envía una consulta general.
El mensaje se envía utilizando las siguientes direcciones IP de destino:
Tipo de mensaje | Dirección de multidifusión |
---|---|
Consulta general | Todos los hosts (224.0.0.1) |
Consulta específica de grupo | El grupo que está siendo consultado |
Informe de membresía (todas las versiones de IGMP) | El grupo que se informa |
Salir del grupo | Todos los enrutadores (224.0.0.2) |
Consulta de membresía IGMPv3
desplazamiento de bits | 0-3 | 4 | 5-7 | 8-15 | 16–31 | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Tipo = 0x11 | Código de respuesta máxima | Suma de comprobación | |||||||||||||||||||||||||||||
32 | Dirección de grupo | |||||||||||||||||||||||||||||||
64 | Resv | S | QRV | QQIC | Número de fuentes (N) | |||||||||||||||||||||||||||
96 | Dirección de origen [1] | |||||||||||||||||||||||||||||||
128 | Dirección de origen [2] | |||||||||||||||||||||||||||||||
. . . | ||||||||||||||||||||||||||||||||
Dirección de origen [N] |
Dónde:
- Código de respuesta máxima
- Este campo especifica el tiempo máximo (en incrementos de 1/10 de segundo) permitido antes de enviar un informe de respuesta. Si el número es inferior a 128, el valor se utiliza directamente. Si el valor es 128 o más, se interpreta como exponente y mantisa.
- Suma de comprobación
- Este es el complemento a uno de 16 bits de la suma del complemento a uno del mensaje IGMP completo.
- Dirección de grupo
- Esta es la dirección de multidifusión que se consulta al enviar una consulta específica de grupo o específica de grupo y origen. El campo se pone a cero cuando se envía una consulta general.
- Resv
- Este campo está reservado. Debe ponerse a cero cuando se envía e ignorar cuando se recibe.
- Indicador S (Suprimir procesamiento del lado del enrutador)
- Cuando se establece esta bandera, indica a los enrutadores receptores que deben suprimir las actualizaciones normales del temporizador.
- QRV (Variable de robustez del interrogador)
- Si no es cero, contiene el valor de la Variable de robustez utilizado por el remitente de la consulta. Los enrutadores deben actualizar su variable de robustez para que coincida con la consulta recibida más recientemente, a menos que el valor sea cero.
- QQIC (código de intervalo de consulta del consultante)
- Este código se utiliza para especificar el valor del intervalo de consulta (en segundos) que utiliza el interrogador. Si el número es inferior a 128, el valor se utiliza directamente. Si el valor es 128 o más, se interpreta como exponente y mantisa.
- Número de fuentes (N)
- Este campo especifica el número de direcciones de origen presentes en la consulta. Para consultas generales y específicas de grupo, este valor es cero. Para consultas específicas de grupo y origen, este valor no es cero, pero está limitado por la MTU de la red.
- Dirección de origen [i]
- Los campos Dirección de origen [i] son un vector de n direcciones de unidifusión IP, donde n es el valor en el campo Número de fuentes (N).
Implementaciones
Los sistemas operativos FreeBSD , [nota 1] Linux [nota 2] y Windows admiten IGMP en el lado del host.
Ver también
- Protocolo de administración de grupos de Internet con control de acceso
Notas
- ^ IGMPv3 se agregó a FreeBSD en la versión 8.0.
- ^ IGMPv3 se agregó en la serie del kernel de Linux 2.5.
Referencias
- ^ Forouzan, Behrouz A. (2012). Comunicaciones de datos y redes (5ª ed.). Nueva York, NY: McGraw-Hill. pag. 658. ISBN 978-0073376226.
- ^ Vulnerabilidad de denegación de servicio de informe IGMP falsificado.
- ^ "El paquete IGMP fragmentado puede promover un" ataque "de denegación de servicio" . 20 de diciembre de 2004. Archivado desde el original el 13 de febrero de 2005.
- ^ Declaración del problema de seguridad IGMP y requisitos archivados el 13 de octubre de 2006 en Wayback Machine .
- ^ "Vulnerabilidad en TCP / IP podría permitir la denegación de servicio (MS06-007, 913446))" . 14 de febrero de 2006. Archivado desde el original el 5 de febrero de 2007.
- ^ Guía de configuración de enrutamiento de multidifusión IP , Cisco , págs. 25–28 , consultado el 27 de mayo de 2017
- ^ "Descripción general del protocolo de administración de grupos de Internet" . Javvin. Archivado desde el original el 10 de noviembre de 2010 . Consultado el 18 de noviembre de 2010 .
- ^ a b Protocolo de administración de grupos de Internet, versión 3 . doi : 10.17487 / RFC3376 . RFC 3376 .
- ^ a b c Protocolo de administración de grupos de Internet, versión 2 . doi : 10.17487 / RFC2236 . RFC 2236 .