Multicast

Anuncio
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.
Descargar