Title: IGMP
1IGMP
- Host Extensions for IP Multicasting, RFC 1112,
Agosto 1989. Define - Modificaciones en los hosts.
- Niveles de conformance.
- IGMPv1.
- Internet Group Management Protocol, Version 2,
RFC 2236, Noviembre 1997. Agrega - Mecanismos para mejorar la eficiencia
- Control de la información de control emitida por
los hosts. - Reacción más rápida de un router al quedar sin
hosts interesados en recibir info para un grupo. - Mecanismo de elección de querier en redes
multiacceso. - Internet Group Management Protocol, Version 3,
draft-ietf-idmr-igmp-v3-00.txt, Noviembre 1997.
Agrega - Capacidad para que las aplicaciones incluyan o
excluyan S de los grupos. - Un API correspondiente.
2Multicast requerimientos en los hosts
- Tipos de compatibilidad de los hosts
- Conformance a nivel 0 no soporta multicast
- Conformance a nivel 1 soporta envÃo multicast
- Conformance a nivel 2 soporta envÃo y recepción
multicast - Extensiones necesarias
- Interface de servicio IP
- Módulo IP
- Interface servicio módulo de red local
- Módulo de red local
3Multicastrequerimientos en los hosts
- Extensiones para envÃo
- Interface del servicio IP
- Se utiliza el send normal con dirección
multicast (niveles 1 y 2) - Debe permitir especificar TTL (niveles 1 y 2)
- Para hosts multihomed debe poder especificarse la
interface (niveles 1 y 2) - Debe poder especificarse si se desea loopback de
multicasts (en caso de que el host sea miembro de
un grupo al que envÃa) (sólo nivel 2) - Módulo IP
- Debe reconocer direcciones multicast
- En función de lo especificado vÃa interface,
- no realizar loopbacks
- Interface del Módulo de red sin cambios
- Módulo de red
- Mapeo de direcciones multicast IP a direcciones
multicast de la red - (en caso de Ethernet, dir Eth multicast con
los 23 últimos bits iguales a - dirección IP)
Algoritmo de envÃo no multicast if
dir_IP_destino es local enviar local a
dir_IP_destino else enviar local a
RouterTo(dir_IP_destin0) Algoritmo de envÃo
multicast if (dir_IP_destino es local o
dir_IP_destino es multicast) enviar local
a dir_IP_destino else enviar local a
RouterTo(dir_IP_destino)
4Multicast requerimientos en los hosts
- Extensiones para recepción
- Interface del servicio IP
- Uso de receive normal
- JoinHostGrp(group_addr, interf) y
LeaveHostGrp(group_addr, interf) - Módulo IP
- Lista de grupos por interface, cuenta de miembros
de cada grupo - Notificación al Módulo de red de altas y bajas de
grupos - Implementación de IGMP
- Interface del Módulo de red
- JoinLocalGroup(IP_group_addr) y
LeaveLocalGroup(IP_group_addr) - Módulo de red
- Filtro de datagrams (no pasa a nivel superior lo
que envÃz) el loopback se realiza a niveles IP o
superior
5IGMPv1
- IGMP (Internet Group Managment Protocol, RFC
1112, Ago 1989) Protocolo utilizado para
propagar información de pertenencia a grupos
entre hosts y routers y routers entre sà - Encapsulado en IP (protocolo 2), pero parte
integral de IP - Formato de frame
VERS Versión del protocolo en este caso,
1. TIPO query (1) enviada por un router
response (0) enviada por un host CHECKSUM
cubre todo el IGMP. Calculado como el de IP DIR.
DE GRUPO Dirección del grupo multicast. Cero en
queries
6IGMPv1 operación
- Todos los hosts pertenecen al grupo 224.0.0.1
los queries IGMP se envÃan con esta dirección
los reports a la dirección de grupo anunciada. - Un host que se incorpora a un grupo, lo anuncia
inmediatamente (report) - Los routers polean periódicamente (1 minuto) a
los hosts (query) - Un host que recibe un query
- Para cada grupo al que pertenece, genera un
tiempo al azar (promedio 10 seg) - Cuando el tiempo se cumple, envÃa el report
correspondiente al grupo - Si antes que se cumpla el tiempo recibe un report
de otro host para el grupo, no envÃa el suyo. - Un host no anuncia su pertenencia al grupo
224.0.0.1 - Si un host recibe un query y tiene un timer
corriendo para algún grupo, no lo resetea - Los routers sólo necesitan conocer los grupos que
están activos en la red, pero no qué hosts
pertenecen a cada grupo - Si luego de varios queries un router no recibe
response para un grupo, lo elimina de su tabla - Los rotures intercambian información de grupos
entre sà (pueden usar IGMP)
7IGMPv1- Diagrama de estados (host)
- Un host mantiene una tabla con una entrada por
grupo
Estados - Non memberEstado inicial. Host no
miembro. - Delaying memberHost miembro del
grupo. Tiene un timer para envÃo de report -
Idle member Host miembro del grupo. Sin timer
corriendo para report.
Timers - timer_rep timer para envÃo de report.
Eventos join group el host comienza a escuchar
en la dirección de grupo (sólo para el primer
proceso) leave groupel host abandona el grupo
(no queda ningún proceso en el grupo)
recepción_report de otro host, para el mismo
grupo recepción_query query del router (general
para cualquier grupo) timeout timer_rep para el
grupo Acciones enviar report envÃo de report
IGMP con dirección de grupo (a dirección del
grupo). arrancar timer_rep con un número al
azar, para el grupo en al interfaz. cancelar
timer_rep.
8IGMPv2
- Frame IGMPv2
- Encapsulado en IP, tipo de protocolo 2
- Enviados con TTL1
- Enviados con opción Router Alert
- Formato
Tipo Incluye versión y tipo de IGMPv1 0X11
Query 0X12 Report v1 0X16 Report v2
0X17 Leave Group MRT Tiempo máximo de respuesta
para que los hosts respondan con report
Utilizado sólo en Queries Checksum igual que
v1 Dirección de grupo Grupo al que va dirigido
el mensaje
9Opción Route Alert
- Opción IP definida en IP Route Alert Option,
RFC 2113, febrero 1997. - Indica a un router examinar un datagram con más
detalle. - El router podrá ejecutar sobre el datagram,
funcionalidad adicional a la normal. - Permite incorporar nueva funcionalidad de ruteo
- Gradualmente.
- Sin cambios en los protocolos.
- Formato
Copied flag 1 (todos los fragmentos) Option
class 00 (control) Núm. Opción 20
(decimal) Longitud 4 Valor opción 0 Router debe
examinar el datagram 1 a
65535 Reservado
10IGMPv2 Operación de hosts
- Inicialmente, al unirse a un grupo
- emisión de report no solicitado si es primer
miembro del grupo (varios). - Recepción de un Query (general)
- planificar envÃo de report en tiempo al azar para
cada grupo (0,MRT) - Recepción de un Query especÃfico
- planificar envÃo de report para el grupo en
tiempo al azar (0, MRT). - Recepción de un report para un grupo
- cancelar envÃo si hay report por enviar para el
grupo - Al salir de un grupo
- Si supone ser el último host en el grupo, enviar
un leave
11IGMPv2- Operación de hosts. Detalle
- Un host mantiene una tabla con una entrada por
grupo
Estados - Non memberEstado inicial. Host no
miembro. - Delaying memberHost miembro del
grupo. Tiene un timer para envÃo de report -
Idle member Host miembro del grupo. Sin timer
corriendo para report.
Timers - timer_r timer para envÃo de report p/el
grupo, al recibir un query Acciones - enviar
report envÃo de report IGMP con dirección de
grupo (a dirección del grupo). V1 o v2 según
estado interfaz. - enviar leave - flag1 si
el host es el último que envió report p/el
grupo. - flag0 si no lo es. - arrancar
timer_r con un número al azar, para el grupo
en la interfaz.(0,MRT) o (0,URT). - reset
timer_r rearrancar timer con nuevo valor.
(0,MRT) - cancelar timer_r .
Eventos - join group el host comienza a
escuchar en la dirección de grupo (sólo para
el primer proceso) - leave groupel host
abandona el grupo (no queda ningún proceso en
el grupo) - recepción_report de otro host, para
el mismo grupo (v1 o v2) - recepción_query
query del router general para
cualquier grupo especÃfico para un
grupo - timeout para el grupo
12IGMPv2- Elección de Querier. Detalle
Timers gen-query indica cuándo transmitir el
próximo query otro-querier-presente indica
cuando considerar que el querier anterior dejó de
funcionar. Estados - Querier El router
transmite Queries en la red - No-Querier No
los transmite Eventos - timeout gen-query vence
tiempo de envÃo de query - recibir query de
router ltip se recibe un query de un router
con prioridad para ser querier. - timeout
otro_querier_presentevence el tiempo para
mantener la información de otro router
actuando como querier Acciones - arrancar
timer gen_query - arrancar timer
otro_querier_presente - enviar gen-query (a
dirección todos los sistemas, 224.0.0.1)
13IGMPv2 Operación del router querier (no querier).
- (Q) Vencimiento de timer para envÃo de Query
general - EnvÃo de Query
- Arranque de timer
- (Q/NQ) Recepción de un report para un grupo
- Nueva entrada en tabla si el grupo no registrado
- Arranque de timer para invalidar entrada (si no
recibe reports) - (Q) Recepción de Leave Group
- EnvÃo de varios queries especÃficos regularmente
- Inhibir transición de Querier a no querier para
el router - Eliminar la entrada si al fin del perÃodo no
recibe report - (NQ) Recepción de un Query especÃfico para un
grupo - Si el tiempo restante para la entrada es mayor
que el que esperará el querier - Actualizar tiempo de vida (Last_Member_Quer_Count
MRT)
14IGMPv2 Operación del router querier. Detalle.
- Timers
- rexmt timer para retransmisión de queries
especÃficos para un grupo. - host v1indica el tiempo de validez para
considerar que aún (desde el último report v1)
hay routers v1 operando en la red - timer_g indica el tiempo de validez de la
entrada para un grupo. (g indica el tiempo de
validez de la entrada para un grupo luego de
recibir un leave) - Estados
- Sin miembros estado inicial, no hay aun hosts
que hayan enviado reports. - Con miembros Existe por lo menos un host que ha
enviado un report para un grupo. - Con miembros v1 Algún host corre v1 y ha enviado
un report de esta versión. - Chequeando miembos El router ha recibido un
leave-group y aún no ha escuchado un report para
el grupo. - Eventos
- Recepción de reporte v2 emitido para un grupo,
por un host operando en v2 - Recepción de reporte v1 igual al anterior, pero
host v1. - Recepción de leave recepción de leave group por
parte de un host v2. - Timeout de timer_g (o g) invalida la entrada
para un grupo al no recibir reports. - Timeout de rexmt timer indica realizar
retransmisión de un query especÃfico para un
grupo. - Timeout host v1 indica ausencia de hosts v1
operando en la red como miembros del grupo
15IGMPv2 Operación del router querier. Detalle.
- Acciones
- Arrancar timer_g Se arranca (o resetea) el timer
que indica el tiempo de validez de la entrada
para un grupo. Valor Group Membership
Interval. - Arrancar timer_g Se arranca (o resetea) el
timer que indica el tiempo de validez de la
entrada para un grupo. Este timer se utiliza en
caso de recibir un leave (querier) o un query
especÃfico (no querier).
Valor para
querier Last Member Query Interval Last
Member Query Count Valor no querier Max
Response Time (del paquete) Last Member
Query Count - Arrancar rexmt timerarranque del timer para
retransmitir un Query especÃfico para un grupo. - Arrancar timer host v1 arranca (y resetea) timer
para hosts v1. Valor Group Membership Interval. - Send Group-specific Query envÃo de un query para
un grupo especÃfico (al recibir un leave para el
grupo). El MRT del paquete es Last Member Query
Interval. - Notify routing indica al protocolo de ruteo que
hay miembros del grupo en la red - Notify-routing- notifica que no hay más miembros
del grupo.
16IGMPv2- Operación del router querier. Detalle.
E recepción report v1 A arrancar timer_g A
arrancar timer host v1 A notify routing
E timeout timer_g A notify routing - A clear
timer rexmt
E timeout timer_g A notify routing -
E recepción report v2 A arrancar timer_g A
notify routing
E recepción leave A arrancar timer_g A
arrancar timer rexmt A enviar query GS
E recepción report v2 A arrancar timer_g
E recepción report v1 A arrancar
timer_g A arrancar timer host v1
E recepción report v2 A arrancar
timer_g
E timeout timer rexmt A enviar query
especÃfico A arrancar timer rexmt
E recepción report v1 A arrancar
timer_g A arrancar timer host v1
E timeout host v1
E timeout timer_g A notify routing -
E recepción report v1 A arrancar
timer_g A arrancar timer host v1
E recepción report v2 A arrancar timer_g
17IGMPv2- Operación de router no Querier. Detalle
18Compatibilidad v1/v2
- Host v2 operando en red con querier v1
- Host detecta querier v1 por Queries con MRT 0
(toma valor 100, 10 segs). - Vence por timer, no por último Query.
- Host envÃa reports v1, puede no enviar leave.
- Router v2 con router v1
- Los routers v2 deben ser explÃcitamente
configurados para funcionar como v1. - Router v2 con host v1
- El router debe detectar miembros v1 en un grupo.
- Debe ignorar leave group mientras haya hosts v1.
- Host v2 con host v1
- El host v2 suprime reports debido tanto a reports
v2 como v1.
19IGMPv2 Tiempos y valores por defecto
- Robustness Variable2. Cantidad de reintentos
menos 1. - Query Interval 125 segs. Intervalo entre dos
queries generales emitidos por el querier. - Query Response Interval 10 segs. Tiempo máximo
de espera en queries generales por reports. - Group Membership Interval Robustness
Variable Query Interval Query Response
Interval. Tiempo luego del cual, al no recibir
reports, el querier decide que no hay mimembros
del grupo. - Other Querier Present Interval Robustness
Variable Query Interval Query Response
Interval / 2. Tiempo transcurrido sin ecscuchar
queries luego del cual un router supone que no
hay querier. - Startup Query Interval Query Interval / 4.
Tiempo entre queries generales enviados por un
router en el inicio. - Startup Query Count Robustness Variable.
Número de queries enviados en el inicio. - Last Member Query Interval 1 seg. MRT colocado
en los queries especÃficos. Tiempo entre
sucesivos queries especÃficos. - Last Member Query Count Robustness Variable.
Número de queries especÃficos enviados al recibir
un leave. - Unsolicited Report Interval 10 seg. Tiempo
entre envÃos sucesivos de un report inicial por
parte de un host. - Verion 1 Router Present Timeout 400 seg.
Tiempo que debe esperar un host, desde el último
query v1, para funcionar como v2.