jueves, 11 de octubre de 2007

MULTICAST

Overview :
En una red tenemos 3 tipos de trafico IP:
-Unicast
-Broadcast
-Multicast

Generalmente el tráfico es unidireccional, por que muchos host están recibiendo la misma data. sin embargo el paquete de retorno puede ser unicast.
Tambien el tráfico es enviado como best-effort connectionless, utilizando UDP comunmente.

Host que quieren recibir data de una fuente multicast pueden entrar o salir dinamicamente de grupos multicast, tambien un host puede decidir ser miembro de uno o más grupos multicast al mismo tiempo. La tarea de la red será enviar tráfico multicast al grupo miembro sin molestar a host no interesados.

Multicast Addressing :
se tiene la clase C en el rango de 224.0.0.0 a 239.255.255.255 estrictamente para multicast. Los dispositivos de red pueden rapidamente discriminar con sólo ver los 4 mas significativos bits, 1110.

Para relacionar una IP multicast con una direccion MAC no se usa ARP, en su lugar se usa un valor identificador reservado único (OUI) que siempre inicia con 0100.5e el próximo bit es 0 (cero) y los 23 bit restantes son mapeados utilizando los menores bits de la direccion multicast IP.
Se nota que 5 bits no son transferidos dentro de la MAC address, por lo que existe la posibilidad de que no sean únicos, pueden haber 32 diferentes IP multicast con la misma MAC Address.

Algunas de las direcciones IP multicast se reservan para un uso particular :

Completo espacio multicast : 224.0.0.0 - 239.255.255.255
link-local address : 224.0.0.0 - 224.0.0.255 usado por protocolos de red, sólo en un segmento de red, el router no reenvía estos paquetes.
Administratively scoped address : 239.0.0.0 - 239.255.255.255 usado en privados dominios multicast, no pueden ser ruteadas entre dominios.
Globally scoped address : 224.0.1.0 - 238.255.255.255 usado por una entidad, pueden ser ruteados, deben ser unicos y globalmente significativos.

Ruteando tráfico Multicast :

El tráfico IP Multicast debe ser ruteado igual que otro paquete capa 3, la diferencia es conocer donde enviar los paquetes. Los paquetes unicast tienen un solo interface destino (aun si tenemos multiples paths), mientras que lon paquetes IP multicast pueden tener varios interfaces destinos, dependiendo donde los recipientes son localizados.

Se tienen varios protocolos de enrutamiento multicast, pero nos enfocaremos en PIM Protocol Independent Multicast.
primero debemos de habilitar multicast routing en el router con el sgt comando :
switch(config)# ip multicast-routing

Multicast Trees
El router debe determinar el forwarding path de los paquetes multicast desde la fuente a cada uno de los recipientes. Pensemos en la red como un arbol, en la raiz se encuentra la fuente enviando paquetes a específicas direcciones multicast.

Si un router conoce donde se encuentran los grupos de recipientes, tambien conoce a que bifurcaciones del arbol enviar los paquetes. Algunos router no tendrán recipientes downstream por lo que no se le enviará trafico multicast, otros router pueden tener recipientes downstream.
Esta estructura es similar a Spanning Tree Topology, con un root y nodos en los extremos (recipientes), tambien es libre de loops.

Reverse Path Forwarding
Router usualmente realizan un test a cada paquete multicast que reciben. RPF es para asegurar que los paquetes no sean inyectados de retorno al arbol en una locación.
Cuando un paquete es recibido en una interface del router, la fuente IP address es inspeccionada. La idea es verificar que el paquete arrivó en la misma interfaz donde la fuente se encuentre, si esto es verdadero el paquete procede de una rama del arbol lejos de la fuente. Si no es verdadero el paquete se inyectó en una inesperada interface, dirigido hacia la fuente.
Al realizar el RFM, el router PIM verá la dirección de la fuente en la tabla de enrutamiento unicast. Si la interface next-hop usado para alcanzar la fuente hace match con la interfaz donde el paquete fue recibido, el paquete puede ser enviado o replicado a los recipientes multicast, en otro caso es descartado.

IGMP
Como hace el router para conocer los recipientes de un grupo multicast ? al recibir trafico multicast de una fuente, ambos la fuente y cada recipiente deben primero ingresar a un comun grupo multicast. este grupo es también conocido por el multicast IP address.
Un host puede entrar a un grupo multicast por enviar un request a un router local. Esto a travéz del protocolo IGMP. ahora tenemos IGMPv2. Cuando varios host entran a un grupo por contactarse a sus router locales, es el protocolo PIM el que conecta estos puntos para formar el arbol multicast entre routers.

IGMPv1
Al entrar a un grupo multicast, un host puede dinamicamente enviar un mensae Membership Report IGMP a este router local. Este mensaje le dice al router a que grupo multicast address los host estan registrandose.
El multicast address es usado como el destino IP address, como el grupo que se lista en el mensaje.
Cada 60 seg, un router en cada segmento de red preguntan a todos los host para ver si estan interesados en recibir tráfico multicast. El roouter es conocido como el IGMPv1 querier y funciona simplemente para invitar a host a inscribirse al grupo. Queries son enviados al 224.0.0.1 all-hosts. Los host interesados en inscribirse o seguir recibiendo responden con un membership report.
Host pueden ingresar a un grupo multicast en cualquier tiempo, sin embargo IGMPv1 no tiene un mecanismo que permita al host dejar el grupo si este no está intersado. En su lugar si no se recibe en 3 tiempos de query intervalos se deja al host fuera del grupo. Esto produce que el tráfico siga enviandose al grupo hasta 3 minutos despues que se paralizó el escucha.
notamos que el router no necesita mantener una completa lista de cada grupo multicast que es activo, sólo necesita recordar las interfaces en las que se encuentran activas.

IGMPv2
Los queries pueden ser enviados como general queries a todos los host (como en IGMPv1), asi como un grupo específico de queries a sólo miembros de un grupo específico.
Tambien los host son permitidos a dejar un grupo dinamicamente, el host envía un mensaje Leave Group a todos los routers 224.0.0.2 .
Nota: si algun IGMPv1 router está en un segmento, todos los routers deben correr OGMPv1, de otra manera los router IGMPv1 no conocerán los mensajes IGMPv2.
sobre interfaces con PIM configurados, IGMPv2 es habilitado.

PIM
Protocolo de enrutamiento para enviar trafico multicast. Opera independientemente de algun otro protocolo.
Hace uso de la tabla de enrutamiento unicast y no mantiene otra tabla.
PIM puede operar en 2 modos, dependiendo de la densidad de los recipientes en un grupo multicast, cisco a desarrollado un tercer modo hibrido :
- PIM Dense Mode
- PIM Sparse Mode
- PIM Sparse-Dense Mode
tambien tenemos 2 versiones de PIM 1 y 2.

PIM Dense Mode
Tambien llamado PIM-DM, si es seguro asumir que los recipeintes de grupos multicast estan localizados en cada subnet.
El multicast arbol es construido primero por permitir trafico de la fuente a cada dense mode router en la red. El arbol crece de arriba a abajo. Por un corto tiempo, innecesario tráfico es permitido. Sin embargo cada router recibe tráfico para el grupo, éste decide donde están los activos recipientes esperando a recibir data.
si es así el router permanece quieto y deja que el flujo continue. Si no tiene host registrados para el grupo multicast dentro del router, envía un mensaje Prune al vecino dirigido a la fuente. La rama del arbol es puesto prune off tal que innecesario trafico no continua.
Para configurar PIM Dense Mode en una interface, se usa el sgt comando :
switch(config-if)# ip pim dense-mode

SPIM Sparse Mode
Tambien llamado PIM-SM, con la diferencia de que el arbol multicast no se extiende al router mientras un host no esté inscrito, el arbol se contruye de abajo hacia arriba.
Se trabaja con la idea de una estructura de arbol compartida, donde el root no es necesariamente la fuente multicast. El root es centralmente localizado en la red. Este es llamado Rendezvous Pint (RP).
switch(config-if)# ip pim sparse-mode

PIM Sparse-Dense Mode
Se puede soportar ambos, por que existen en diferentes grupos multicast en la red. Si un grupo tiene RP definido, Sparse Mode es usado, en otro caso Dense Mode .
se configura con :
switch(config-if)# ip pim sparse-dense mode


Comandos para verificar multicast Routing con PIM

show ip route - muestra validas rutas
show ip pim neighbor - muestra vecinos PIM routers
show ip rpf ip-address - verifica RPF informacion para una direccion host
show ip pim rp - muestra PIM RPs
show ip pim autorp - muestra PIMv1 Auto-RP

No hay comentarios: