Multicast Conceptos básicos WALC 2010 Track 4 Guillermo Cicileo Multicast - Temario Concepto de Multicast. Unicast, broadcast y multicast Concepto de grupo. Direccionamiento. IGMP Arboles de distribucion. RP. Multicast forwarding - RPF. PIM: DM, SM y SDM. Multicast en capa 2. CGMP e IGMP snooping. Multicast entre dominios: MBGP y MSDP Multicast - Concepto Es un mecanismo eficiente para transmitir los mismos datos a multiples receptores. Unicast: por cada receptor un stream de datos Broadcast: se replican los datos a todos los puntos de la red Multicast: solo se gasta el BW minimo, solo aquellos interesados reciben los datos. Diferencia con unicast 6 Diferencia con unicast Unicast 6 Diferencia con unicast Unicast 6 Diferencia con unicast Multicast Unicast 6 Diferencia con unicast Multicast Unicast 6 Grupo multicast Un grupo arbitrario de receptores pide recibir un stream de datos particular. Este grupo no tiene limites fisicos o geograficos Los interesados se suman a un grupo (join) mediante IGMP Los hosts deben ser miembros de un grupo para recibir los datos. Direccionamiento: Clase D IANA asigno para Multicast el bloque 224.0.0.0-239.255.255.255 Cada IP de estos representa un grupo Los paquetes destinados a un IP de la clase D son recibidos por todos los suscriptos a ese grupo La direccion fuente es un IP unicast Dentro de este bloque tenemos distintos usos, como veremos. Direcciones reservadas de link-local Rango 224.0.0.0 - 224.0.0.255 Reservadas para ser usadas por protocolos de red en el segmento de red local (link-local). Nunca deben ser forwardeados por un router. Permanecen locales a la subnet Se transmiten siempre con TTL=1 Ejemplo (link-local): 224.0.0.1 --> indica todos los sistemas en la subnet 224.0.0.2 --> todos los routers en la subnet 224.0.0.5 --> routers OSPF 224.0.0.6 --> OSPF "designated routers" 224.0.0.10 --> Todos los routers IGRP De alcance global (globally scoped) Rango 224.0.1.0 - 238.255.255.255 Usadas para enviar por multicast entre organizaciones, a traves de la Internet. Algunas direcciones son reservadas (ej. 224.0.1.1 reservada para NTP). Alcance limitado (limited scope) Rango 239.0.0.0 - 239.255.255.255 Restringidas a ser usadas dentro de una organizacion Similares en concepto a las IP privadas (10.0.0.0/8) Los routers deben tener filtros para prevenir que el trafico hacia estos grupos salga del AS. Direcciones GLOP Rango 233.0.0.0/8 Para ser usadas por organizaciones que tienen un sistema autonomo El sistema autonomo se codifica entre el 2do y 3er byte Ej: 4270 --> 233.16.174.0 27822 --> 233.108.174.0 Algunas direcciones reservadas Direcciones y proposito: 224.0.0.1 All hosts on a subnet 224.0.0.2 All routers on a subnet 224.0.0.4 All DVMRP routers 224.0.0.5 All MOSPF routers 224.0.0.9 Routing Information Protocol (RIP)-Version 2 224.0.1.1 Network Time Protocol (NTP) 224.0.1.2 SGI Dogfight 224.0.1.7 Audio news 224.0.1.11 IETF audio 224.0.1.12 IETF video 224.0.0.13 Protocol Independent Multicasting IGMP - Internet Group Management Protocol Usado por los hosts y los routers para identificar pertenencia a un grupo multicast Los hosts indican que pertenecen a un grupo enviando un IGMP a su router Los routers escuchan IGMP y periodicamente "descubren" que grupos estan activos o inactivos en la subnet. IGMP version 1 Descrito por RFC1112 Dos tipos de Mensaje: membership query y report Los hosts envian membership reports para indicar join a un grupo El router periodicamente (60 segs) envia membership query para verificar que al menos un host en la subnet sigue interesado en el grupo Despues de 3 pasadas consecutivas sin respuesta, el router dejara de forwardear trafico para ese grupo por esa interfaz IGMP version 2 Definido por RFC2236 4 tipos de mensaje: membership query v1 membership report v2 membership report leave group Principal diferencia: los hosts pueden indicar "leave group". El router pregunta una vez y si no hay otros interesados en ese grupo, suspende ese trafico (en la interfaz correspondiente). Ventaja: trafico innecesario se detiene antes. IGMP version 3 Definido por RFC3376 Incorpora la posibilidad de especificar emisores (sources) Utilizado para SSM 2 tipos de mensaje nuevos: Group-source Report: permite a los hosts especificar de que emisores pueden recibir datos Group-Source Leave: permite que un host pueda especificar la dirección IP de un emisor y grupo que quiere abandonar IGMP Versión 3 Membership Query Message 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = 0x11 | Max Resp Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Group Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Resv |S| QRV | QQIC | Number of Sources (N) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address [1] | +-+ | Source Address [2] | +. -+ . . . . . . +-+ | Source Address [N] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Arboles de distribucion Los routers que soportan multicast crean "arboles de distribucion", que controlan el camino que los paquetes IP multicast deben tomar. Estos arboles se arman manteniendo informacion de "estados" en los routers (estados => memoria) Dos tipos basicos de arboles de distribucion: fuentes y compartidos (source trees y shared trees). Source trees Es un arbol que como raiz tiene a la fuente emisora y como hojas a los receptores Por usar el camino mas corto, tambien se les llama "shortest path tree" (SPT). Notacion: (S, G), donde S indica la fuente y G el grupo. Ejemplo: (200.10.202.3, 224.14.13.25). Implica que hay un SPT separado para cada fuente (memoria en los routers!!!) Shared trees A diferencia de los source trees, la raiz es un punto comun puesto en algun lugar determinado de la red Varias fuentes emisoras pueden compartir el arbol de distribucion. La raiz del arbol se llama RP (Rendezvous Point) Los emisores envian el trafico al RP y de ahi se usa el arbol compartido para llegar a los receptores. Shared trees (cont.) Se usa la notacion (*,G) para indicar un arbol compartido para el grupo G. Ejemplo: (*, 224.14.13.25) El * indica cualquier fuente El RP puede ser unico o varios, en funcion de los grupos. El RP es generalmente un router (configuracion). RP – Rendezvous Point • • Permite árboles compartidos ademas de fuente • • Raíz del árbol compartido • Los RP se configuran: Es el punto donde se encuentran los emisores y receptores Posee la información de las fuentes de contenido de la red - En forma estática Auto-RP Consideraciones Los arboles de distribucion son dinamicos: cuando todos los receptores de una rama dejan de recibir trafico, el router hace un "prune" de esa rama (cambia el arbol). Si un receptor de esa rama se activa, el router debe modificar el arbol SPT: camino optimo entre S y G. Latencia minima. Los routers deben tener informacion de path para cada source. Miles de fuentes y miles de grupos => problemas... Shared trees: minima cantidad de estados en cada router (memoria). Desventaja: los caminos pueden no ser optimos (bastante malos en realidad!). Importancia de ubicar bien el RP! Multicast forwarding Olviden lo aprendido de ruteo "unicast"! Multicast hace forwarding tomando en cuenta de donde viene el paquete Se verifica que el paquete haya entrado por la interfaz que llevaria hacia la fuente (up stream) De esta forma se comprueba que el paquete esta siguiendo el arbol de distribucion. Si no es asi, el paquete se descarta. Esto se llama Reverse Path Forwarding (RPF) RPF - Reverse Path Forwarding Algoritmo: El router mira el src del paquete y verifica en su tabla de ruteo (unicast, multicast) si la ruta a "src" apunta a la interfaz por la cual entro el paquete Si es asi, se forwardea por todas las otras interfaces que corresponda (todas? No!) Si no, se descarta silenciosamente PIM - Protocol Independent Multicast Trabaja en base a la informacion de ruteo de los algoritmos tradicionales, de ahi su nombre Usa la tabla unicast de ruteo para realizar RPF check en vez de llevar una tabla multicast de ruteo propia. No se envia informacion de ruteo entre routers Dos modos: dense mode y sparse mode PIM - Dense Mode Usa un modelo "push" para inundar con trafico multicast toda la red. Metodo de fuerza bruta: solo en ciertas ocasiones puede ser util Inicialmente se envia el trafico a toda la red. Los routers que no tienen "downstream" neighbors podan el trafico no deseado. Este proceso se repite cada 3 minutos!!! Mediante este metodo de "inundar y podar" (flood & prune) es como los routers acumulan su informacion de estado. PIM-DM solo soporta source trees (S,G), no se pueden construir shared trees. PIM - Sparse Mode Utiliza un modelo pull: solo los segmentos de red que tienen interesados reciben el trafico (deben haber pedido los datos explicitamente) Se usa un shared tree para distribuir la info. Implementa el concepto de RP, que se debe configurar administrativamente. En algunos casos, el trafico puede pasar del arbol compartido a un SPT. PIM - Sparse Mode Los routers hacen eso: el trafico comienza en un (*,G) y cuando determinan un mejor camino envian un "join" al source para indicarle el nuevo camino (S,G). Para que no pase esto, poner: ip pim spt-threshold infinity (evita superpoblar de estados los routers) Escala bien, los "join" explicitos garantizan no inundar la red con trafico no deseado. Cisco: sparse-dense mode Importante: sparse o dense se deben elegir en funcion del grupo y no de la interfaz! Cisco permite configurar las interfaces como "sparse-dense" y en ese caso el modo de PIM dependera del grupo. CLAVE: si se configura un RP para un grupo, se usara SM. Si el router no encuentra el RP, usa DM!!!! Algunos grupos son solo DM: 224.0.0.x Multicast en capa 2 El standard 802.3 (Ethernet) preveia direcciones multicast, que son las que tienen el bit 0 del primer octeto en 1 (01:xx:xx:xx:xx:xx). IANA tiene un bloque de ethernets propio: 01:00:5e:xx:xx:xx, del cual la mitad se usa para multicast: 01:00:5e:00:00:00 a 01:00:5e:7f:ff:ff Esto deja 23 bits en la direccion ethernet para que se correspondan con el grupo IP multicast. Mapeo de grupo a MAC MAC: estan fijos los primeros 25 bits: 01:00:5e:ab:cd:ef, donde ab en binario va de 0000.0000 a 0111.1111 (00:00:00 a 7F:FF:FF). Quedan entonces 23 bits. En la direccion multicast: los primeros 4 bits son fijos (1110, clase D), los 28 restantes definen el grupo. Problema: 5 bits de perdida de informacion! Ambigüedad en el mapeo, relacion 32:1. Consejo: evitar usar grupos que coincidan con los reservados (224.0.0.x, etc) Multcast en capa 2 Que pasa con los switches? Si forwardean para todos lados, pierden el sentido de switch! Tienen que tener un metodo de saber a que ports enviar el trafico y a cuales no. Esta informacion solo la saben los routers, es a nivel de capa 3, no 2. Entonces? 2 metodos: CGMP (Cisco propietario) e IGMP Snooping. CGMP - Cisco Grp Mgmt Proto Permite a los Catalyst obtener info de los routers Basicamente: cuando un host manda un join a un router (para sumarse a un grupo multicast), el router ademas de lo habitual envia un CGMP join al switch. El switch agrega el port del host (y del router) a su CAM (Content Addresable Memory, la tabla de "ruteo" de un switch) junto con la direccion MAC multicast. A partir de alli, solo se enviara el trafico a los ports que hayan manifestado interes IGMP Snooping El switch entiende los mensajes IGMP (capa 3) Cuando hay un join o un leave, se agrega/borra el port correspondiente El switch debe examinar todos los paquetes multicast, para saber si son IGMP o no! En switches chicos, esto se vuelve muy pesado. Solo valido con ASICs que chequeen IGMP en hardware! Multicast entre dominios Hasta ahora vimos multicast dentro de un sistema autonomo o un dominio. Para vincular dominios multicast distintos se usa: MBGP - Multiprotocol BGP MSDP - Multicast Source Discovery Protocol MBGP Se acuerdan de RPF? Es el mecanismo fundamental para forwarding en multicast MBGP provee un metodo para determinar que prefijos (redes) se usaran para realizar el RPF check. Es una extension del BGP para permitir una familia distinta a la de unicast Esto permite tablas y topologias no congruentes entre unicast y multicast. Posibilidad de tener distintas politicas para cada caso. MSDP En PIM-SM, emisores y receptores deben registrarse con su RP (el router mas cercano a estos es el que lo hace). Los RP tienen toda la informacion acerca de emisores y receptores dentro de un dominio. Pero como vincular los RP de dominios distintos? Para eso se usa MSDP: cuando un RP recibe informacion de un nuevo emisor dentro de su dominio, manda un SA (source active) a todos sus MSDP peers. Esta informacion se propaga hasta alcanzar todos los dominios multicast interconectados (eventualmente la Internet completa). MSDP Si el MSDP peer es un RP y tiene un (*,G) para el grupo que llego en el SA (es decir, hay un interesado en recibir ese grupo), ese RP hace un join con el emisor y comienza a recibir el trafico a traves de un SPT. Ese trafico es reenviado a traves del (*,G). MSDP permite que ISPs distintos que no quieren compartir un RP puedan intercambiar trafico multicast. Resumen final Fundamentos: concepto de grupo vinculado a las direcciones de clase D. Arboles de distribucion: (S,G) vs. (*,G) IGMP: hosts informan a los routers su interes en formar parte de un grupo o no. Forwarding: RPF check PIM: sparse mode y dense mode, algoritmo usado para ruteo dentro de un dominio. Resumen final (cont.) Multicast en capa 2: perdida de informacion al mapear IP a MAC. CGMP e IGMP snooping para los switches. MBGP: ruteo entre dominios, extension al BGP para familia multicast MSDP: vincula RP de dominios distintos, permite pasar trafico entre dominios.