IP multicast Grupo de Sistemas y Comunicaciones (GSyC) Bibliografía: outing in the Internet, C. Huitema, Ed: Prentice Hall Introducción Multicast: Envío de un mensaje a un grupo de receptores (grupo multicast). En vez de forzar al emisor a realizar N copias (una por cada receptor), el emisor envía un único mensaje a un conjunto de receptores (dirección del grupo multicast) y es la red la que se encarga de hacer llegar ese paquete IP a los destinatarios. Sólo tiene sentido en UDP. E E 4 copias Multicast edes de Área Local 2007 2 1
Motivación Mejor aprovechamiento del ancho de banda cuando se envían los mismos datos a un conjunto de receptores. No es necesario conocer las direcciones IP de los receptores. Aplicaciones: Videoconferencia Distribución de software/noticias. edes de Área Local 2007 3 Multicast: en las aplicaciones y en las redes Aplicación emisora a un grupo multicast UDP IP (ICMP, IGMP) Enlace Protocolo multicast a nivel de aplicación (ej. Videoconferencia) Puertos: origen y destino Direccionamiento: Dirección unicast de origen, dirección multicast de destino Aplicación receptora de un grupo multicast UDP IP (ICMP, IGMP) Enlace ed con encaminamiento multicast edes de Área Local 2007 4 2
Modelo de servicio ofrecido por IP multicast (I) El emisor envía datagramas IP a un grupo de máquinas que han mostrado su interés en pertenecer a dicho grupo. Un grupo de máquinas está identificado por una dirección IP de clase D (de 224.0.0.0 a 239.255.255.255). 1 1 1 0 ID Grupo Multicast 28 bits Los miembros de un grupo multicast pueden estar geográficamente distribuidos en cualquier punto de la red. edes de Área Local 2007 5 Modelo de servicio ofrecido por IP multicast (II) Las máquinas utilizan el protocolo IGMP (Internet Group Management Protocol) para entrar a pertenecer a un grupo multicast (join) y para salir de un grupo multicast (leave). Las máquinas notifican a un router en su misma red local su deseo de pertenecer/salir de un grupo multicast. Un emisor no tiene por qué pertenecer al grupo multicast al que está enviando datos. La pertenencia a grupos puede cambiar dinámicamente. Un receptor puede pertenecer a varios grupos. Los grupos multicast pueden tener un número cualquiera de miembros. Los routers escuchan todas las direcciones de multicast y usan protocolos de encaminamiento multicast para mantener información de cómo reenviar los paquetes de multicast que reciben, edes de Área Local 2007 6 3
Direcciones IP multicast Direcciones reservadas por IANA (Internet Assigned Numbers Authority). : 224.0.0.0 a 224.0.0.255, para ser utilizadas por protocolos de comunicaciones en un segmento local de red, siempre se transmiten con TTL=1: 224.0.0.1: todos los hosts en la misma LAN. 224.0.0.2: todos los routes en la misma LAN. Ej: OSPF utiliza 224.0.0.5 y 224.0.0.6 para intercambiar información de encaminamiento del estado del enlace. Ámbito de las direcciones: GLOBAL: 224.0.1.0 a 238.255.255.255 Algunas de ellas reservadas: 224.0.1.1 para NTP. LIMITADO: 239.255.0.0 a 239.255.255.255 No se propagan fuera de un dominio. eutilización de direcciones. edes de Área Local 2007 7 Multicast en Ethernet (I) Ethernet es un medio broadcast, una trama puede ser recibida por cada una de las máquinas que están conectadas a una misma red Ethernet. Máquina1 Máquina2 Máquina3 Máquina4 IP IP IP IP Ethernet Ethernet Ethernet Ethernet Una máquina sólo procesa: Tramas que llevan la dirección Ethernet destino de su tarjeta de red. Tramas dirigidas a la dirección broadcast de Ethernet ff:ff:ff:ff:ff:ff Tramas dirigidas a los grupos de multicast a los que está suscrita la máquina. El rango de las direcciones de multicast en Ethernet es de: 01:00:5e:00:00:00 => 01:00:5e:0 000 0000:00:00 01:00:5e:7f:ff:ff => 01:00:5e:0 111 1111:ff:ff 23 bits edes de Área Local 2007 8 4
Multicast en Ethernet (II) Convertir direcciones de clase D en direcciones Ethernet dentro del rango de multicast. Dirección IP multicast: 1110 xxxx x Dirección Ethernet multicast: 0000 0001 0000 0000 0101 1110 0 23 bits menos significativos de la dirección IP 23 bits menos significativos de la dirección Ethernet Existen 2 5 direcciones IP multicast que se convierten en la misma dirección Ethernet multicast. Ejemplo: 224.0.9.9 y 224.128.9.9 se convierten en 01:00:5e:00:09:09 Es necesario que la máquina filtre a nivel IP, los paquetes multicast de los grupos a los que está suscrita. edes de Área Local 2007 9 Terminología Árbol de distribución: árbol construido por el protocolo de encaminamiento multicast para unir receptores y fuentes Upstream (flujo de subida): desde los receptores hacia la fuente. Downstream (flujo de bajada): Desde la fuente a los receptores Hoja: subred con, al menos, un receptor ama: se añaden al árbol cuando aparecen nuevas hojas. Se podan cuando ya no tienen hojas. E edes de Área Local 2007 10 5
Multicast Dos aspectos fundamentales: Núcleo de la red Hojas de la red 1. Cómo se gestiona la información de pertenencia de una máquina a un grupo? IGMP: Internet Group Management Protocol 2. Cómo se encaminan los paquetes desde el origen a los miembros de un grupo? Protocolos de encaminamiento multicast E Protocolos de encaminamiento multicast IGMP edes de Área Local 2007 11 IGMP: Internet Group Management Protocol IGMP se propuso en 1989 (FC-1112) y desde entonces ha sufrido varias revisiones, IGMP-v2 (FC-2236) e IGMP-v3 (FC-3376). IGMP es un protocolo utilizado entre una máquina de una subred (Ethernet) y un router que pertenece a dicha subred. Una máquina utiliza IGMP para informar al router de que desea pertenecer a un grupo multicast. El router necesita conocer si hay alguna máquina interesada en recibir la información destinada a un cierto grupo multicast (no necesita saber cuáles son las máquinas concretas que están suscritas). En caso afirmativo, el router realizará una serie de acciones para conseguir que la información destinada a dicho grupo llegue a la subred donde existe al menos una máquina interesada en recibirla. edes de Área Local 2007 12 6
Funcionamiento de IGMP (I) 1. Un router envía periódicamente mensajes a IP 224.0.0.1 (IGMP Host- Membership Query) en su subred para consultar qué máquinas desean recibir tráfico multicast. 2. Si hay alguna máquina que desea recibir el tráfico de un grupo, activa un temporizador con tiempo aleatorio para enviar un mensaje (IGMP Host- Membership eport) a los miembros de ese grupo que informa de que esa máquina está interesada en recibir dicho tráfico. 3. Cuando el temporizador expira: El router (que está suscrito a todos los grupos) se entera de que existe una máquina que está interesada en ese grupo. Otras máquinas de la misma subred, suscritas ya a ese grupo cancelarán sus temporizadores y no será necesario que envíen su mensaje de informe (IGMP Host-Membership eport). En IGMP-v3 se añade filtrado por fuente a IGMP, las máquinas pueden indicar: las direcciones IP de fuentes concretas de las que desean recibir (sólo esas fuentes) Las direcciones IP de fuentes concretas de las que no desean recibir (todas las fuentes, salvo ésas). edes de Área Local 2007 13 Funcionamiento de IGMP (II) 4. Si una máquina quiere suscribirse a más de un grupo, debe enviar un mensaje de informe por cada uno de los grupos a los que desea suscribirse. 5. Por fiabilidad, la máquina envía el mismo informe 3 veces espaciado en el tiempo por unos segundos. 6. Una máquina no necesita informar explícitamente de que desea dejar de pertenecer a un grupo. Cuando el router envía el mensaje IGMP de consulta, alguna de las otras máquinas de la misma subred enviará el informe. Si no hubiera más máquinas interesadas en ese grupo, el router no recibiría ningún informe y sabría que ninguna de las máquinas de esa subred está interesada en recibir información destinada a dicho grupo. En IGMP-v2 se modificó este paso para que las máquinas enviarán explícitamente un mensaje para salirse de un grupo (IGMP Host- Membership Leave) a 224.0.0.2. De esta forma se reduce la latencia en la salida de los grupos. Los routers que reciben este mensaje envían consultas específicas de grupo (IGMP Group-Specific Query) para comprobar si queda alguien en ese grupo. edes de Área Local 2007 14 7
Algoritmos de encaminamiento multicast Con IGMP un router vecino de un nodo que quiere recibir multicast sabe que tiene que encaminar tráfico para cierto grupo multicast en una subred. Necesitamos que el tráfico multicast llegue hasta ese router => Protocolos de encaminamiento multicast. Los protocolos de encaminamiento están basados en: Inundación. Árbol de expansión. everse-path forwarding (PF) Árbol de Steiner Árbol compartido (CBT) edes de Área Local 2007 15 Inundación Inundación es el algoritmo de encaminamiento multicast más simple. Un router que recibe un paquete multicast: Si es la primera vez que lo recibe: lo envía por todos los enlaces salvo por el que le ha llegado. Cómo se sabe si es la primera vez: Los routers almacenan los paquetes recibidos durante los últimos 2 minutos (máximo tiempo de vida de un paquete) Lista muy larga en redes de alta velocidad. La lista garantiza que el router no reenvía 2 veces el mismo paquete, pero no garantiza que un router reciba un paquete una única vez. edes de Área Local 2007 16 8
Árbol de expansión (spanning tree) Conecta todos los nodos de la red siguiendo una topología en árbol, sin bucles. No se van a recibir duplicados Topología de red Árbol de expansión Inconvenientes: No considera los grupos (ej: grupo formado por C, D y E). El tráfico multicast se concentra en un conjunto de enlaces. edes de Área Local 2007 17 everse Path Forwarding (PF) I Algoritmo: Cuando se recibe un paquete de multicast se anota el emisor (E) y la interfaz de entrada (I). Si I pertenece al árbol de camino más corto desde E hacia el router (Shortest Path Tree, SPT), el router reenvía el paquete por todas las interfaces salvo por I. Si no, el paquete se descarta. Árbol PF desde A Árbol PF desde C Árbol PF desde E edes de Área Local 2007 18 9
everse Path Forwarding (PF) II Hay un árbol de expansión diferente (implícito) por cada fuente. Los paquetes de multicast viajan por el camino más corto entre el origen y los destinos. Los paquetes de multicast se reparten por todos los enlaces. Invonveniente: no se tiene en cuenta la pertenencia a grupos, se hace inundación siguiendo el árbol PF de cada emisor. Utilizando IGMP los routers de las hojas saben si tienen que reenviar el tráfico en su subred, esta mejora se le denomina truncated broadcast, sin embargo sólo se realiza en el último paso y no evita que un paquete viaje por una rama del árbol aunque no haya ningún destino en dicha rama. edes de Área Local 2007 19 PF y poda (I) Sólo se reenvía un paquete por la rama del árbol PF si hay algún miembro del grupo en dicha rama. También se denomina inundación y poda: Inicialmente los paquetes de un emisor viajan por inundación siguiendo su árbol PF. Los routers hoja saben si tienen a alguna máquina local unida a dicho grupo (IGMP). Si no tienen a nadie envían un mensaje hacia el router vecino que envió ese paquete multicast avisándole de que no hay ningún receptor por dicha rama y que por tanto no tiene que reenviar los paquetes de multicast de esa fuente y ese grupo por esa interfaz de red. Si un router recibe mensajes de poda por todas las interfaces por las que envió el paquete multicast y no hay ninguna máquina local interesada en ese tráfico, el router enviará mensaje de poda a su router vecino, padre dentro del árbol PF. edes de Área Local 2007 20 10
PF y poda (II) Transcurrido un cierto período transitorio, se habrá construido un árbol PF sólo con los routers interesados en recibir el tráfico multicast desde un emisor. Inconvenientes: Inicialmente se hace inundación. Los routers mantienen estado de cada grupo multicast y el emisor. Los estados tienen un tiempo de expiración transcurrido el cuál se comienza de nuevo con inundación. No escala a toda Internet, sólo redes experimentales MBONE. edes de Área Local 2007 21 Árbol de Steiner PF utiliza el árbol de camino más corto entre la fuente y el resto de los nodos. Sin embargo no se considera minimizar el uso de los recursos de la red. Supongamos que C emite a 2 receptores A y D. Árbol PF y poda desde C con A y D como receptores Grafo que conecta C, A y D con sólo 3 enlaces edes de Área Local 2007 22 11
Árbol de Steiner Es el árbol que minimiza el número de enlaces necesarios para conectar todos los miembros de un grupo. Este árbol es difícil de calcular e inestable, se modifica con cada entrada/salida de un miembro. Árbol de Steiner desde C con A y D receptores Árbol de Steiner desde C con A,D y E receptores Árbol de Steiner desde C con A,D,E y B receptores edes de Área Local 2007 23 Árbol compartido (CBT, Core- Based Tree) I Se elige un nodo como núcleo que será el centro del grupo multicast. Los routers que reciban mensajes IGMP para la pertenencia a un grupo, enviarán a ese núcleo mensajes de pertenencia al grupo. Esos mensajes serán procesados por todos los nodos intermedios que anotarán para ese grupo multicast, la interfaz por la que han recibido ese mensaje, para realizar posteriormente el reenvío del tráfico multicast. Si en el nodo intermedio es el primer mensaje de unión que recibe de ese grupo, lo reenviará hacia el núcleo. Si no, ya se lo habrá notificado anteriormente y no será necesario reenviarlo. edes de Área Local 2007 24 12
Árbol compartido (CBT) II Si un emisor no pertenece al grupo, no será miembro del árbol CBT y sus paquetes serán encaminados hacia el núcleo donde serán distribuidos por el árbol compartido. Ventaja: sólo un árbol por grupo Desventaja: los paquetes no siempre siguen el mejor camino hacia los destinos edes de Área Local 2007 25 Protocolos de encaminamiento multicast MOSPF: Extensión de multicast para OSPF, que usa encaminamiento basado en estado de los enlaces calculando SPT con Dijkstra. A los mensajes de estado del enlace se añade información de pertenencia a grupos multicast. Se incorpora a la imagen de toda la red que tienen los routers el árbol de distribución para el tráfico multicast, computando PF y poda. PIM (Protocol Independent Multicast) Independiente del protocolo de encaminamiento unicast. Modo Denso: emisores y receptores próximos, ancho de banda grande y constante. Inundación y poda. Modo Disperso: emisores y receptores alejados, ancho de banda moderado y variable. Técnica basada en CBT. edes de Área Local 2007 26 13