Explorando Multicast Listener Discovery Version 2


Dependiendo del ámbito para el que hayan sido diseñados, los protocolos de control Multicast se pueden dividir en host-router y router-router. Los protocolos host-router se usan en la señalización multicast entre los receptores y su FHR mientras que los protocolos router-router se encargan de la señalización necesaria entre routers para la construcción de Árboles de Distribución Multicast (MDT).

 

Los Árboles de Distribución Multicast (MDTs) tienen como objetivo la distribución de flujos de datos desde las fuentes multicast hacia los receptores y el MDT resultante depende del protocolo router-router empleado en su construcción. En la siguiente tabla se recogen los tipos de MDT.

 

 

Tipo MDT

Variante PIM

Notación

Raíz del Árbol

Source

SSM, SM

(S,G)

S

Shared

Unidirectional

SM

(*,G)

RP

Bidirectional

BiDir

 

 

La construcción de los árboles MDT es dinámica y responde a la necesidad de adaptar el  árbol MDT a los receptores existentes en cada momento dentro de la red multicast.

 

PIM

 

Protocol Independent Multicast (PIM) se refiere al grupo de protocolos multicast que se usan en la construcción de árboles de distribución multicast (MDT) en una red.

 

El tipo de árbol MDT construido en una red para un grupo multicast viene determinado por el modo PIM seleccionado para ese grupo en función de las necesidades de negocio de la aplicación a la que sirve. En una misma red pueden coexistir distintos grupos multicast cada uno de ellos con un modo PIM diferente.

 

PIM es independiente del IGP de la red y no construye una tabla de enrutamiento multicast adicional. PIM se sirve de la tabla de enrutamiento unicast creada por el IGP para construir un árbol MDT sin loops mediante RPF y para reenviar el tráfico multicast a través de los interfaces identificados en la Outgoing Interface List (OIL).

 

Las tres variantes de PIM más comunes son PIM-SM, PIM-SSM y PIM-BiDir.

 

PIM-SM

 

PIM Sparse Mode (PIM-SM) puede usarse como solución multicast para los casos de uso muchos-a-muchos y uno-a-muchos en escenarios intra-dominio donde los requisitos de rendimiento no sean muy estrictos.

 

PIM-SM puede construir tanto shared trees (*,G) como  source trees (S,G). La raíz del shared tree de un grupo multicast es siempre el RP mientras que la raíz del source tree es siempre la fuente del tráfico multicast. En este último caso, el RP es necesario para el descubrimiento de fuentes del grupo y como punto de referencia en la red al ser la raíz del shared tree.

 

Para el caso en el que el Shortest Path Tree (SPT) switchover esté deshabilitado,  todo el tráfico multicast de las fuentes se enviará a los receptores a través de un shared tree. En este caso habrá source trees con raíz en las fuentes y con receptor el RP, y un shared tree (*,G) compartido entre los receptores y con raíz en el RP. En el plano de datos, el RP se sitúa entre las fuentes y los receptores.

 

Si el SPT switchover está activado, una vez conocidas las fuentes de un determinado grupo G, los FHR podrán construir un MDT más óptimo hacia la fuente enviando mensajes PIM Join(S,G). En este caso, el RP no se encuentra en el plano de datos y sólo actúa como punto de registro de fuentes y como punto de encuentro entre  fuentes y receptores.

 

mcast-pim-sm.png

 

Para construir árboles multicast sin loops, PIM-SM usa la tabla de enrutamiento creada por el IGP y calcula el RPF para las fuentes (source tree) y para el RP (shared tree).

 

Para evitar el duplicado de datos y el gasto innecesario de ancho de banda, se elige un Designated Router (DR) en cada segmento de red con más de dos dispositivos. El DR será el encargado de enviar los mensajes Join/Prune en respuesta a los mensajes MLD Report.

 

PIM-SSM

 

PIM Specific Source Multicast (PIM-SSM) asegura una solución multicast óptima para el caso de uso uno-a-muchos tanto en escenarios intra-dominio como inter-dominio.

 

Se trata de una versión más simple de PIM-SM. PIM-SSM sólo construye source trees (S,G) y no necesita el RP para la construcción del MDT, sólo la dirección facilitada por la aplicación multicast.

 

El tráfico multicast enviado por una fuente S a un grupo G sólo se entregará a aquellos receptores que previamente hayan mostrado (mediante un mensaje Join(S,G)) su interés en recibirlo. Esta característica mejora tanto el uso del ancho de banda como la seguridad al no enviarse los datos emitidos por aquellas fuentes que no hayan sido previamente solicitadas por los receptores del grupo.

 

mcast-pim-ssm.png

 

PIM-SSM permite la selección de fuentes dentro de un grupo (S,G). En este caso es necesario MLDv2 para que los receptores sean capaces de señalizar su interés en recibir los datos de un determinado grupo de fuentes (S,G).

 

PIM-BiDir

 

PIM Bidirectional (PIM-BiDir) asegura una solución multicast óptima para el caso de uso muchos-a-muchos en escenarios intra-dominio.

 

En esta versión de PIM sólo se construyen bidirectional shared trees con raíz en el RP. Es importante destacar que, en este caso, el tráfico multicast se envía por el shared tree (*,G) hacia el RP y posteriormente se reenvía por el árbol en dirección a los receptores interesados.

 

 

mcast-pim-bidir.png

 

PIM-BiDir necesita un RP virtual para poder construir el MDT bidireccional. Los dispositivos (routers) dentro del dominio multicast usarán la dirección IP del RP como dirección de la raíz del bidirectional shared tree. En el modelo de distribución BiDir el RP no lleva a cabo ni el descubrimiento ni el registro de las fuentes del grupo y, como su nombre indica, actúa simplemente como un RP virtual.

 

En este caso el algoritmo RPF no se puede usar en la construcción del MDT. Para evitar la existencia de loops en el árbol multicast es necesario elegir un Designated Forwarded (DF) en cada segmento de red compartido. El DF será el encargado de reenviar el tráfico multicast para ese segmento.

 

Elección del modo PIM

 

El modo PIM elegido para cada grupo dependerá del caso de uso de la aplicación multicast a la que sirve y de sus requisitos de negocio. Una vez elegido el modo PIM se podrán identificar otros requisitos necesarios para la implementación de la solución multicast como pueden ser la versión de MLD o la ingeniería de RP.

 

 

Nivel de optimización

Requisitos de  aplicación

Protocolo Router-Router

RP

Protocolo Host-Router

Potencialmente  Sub-óptimo

1-M

PIM-SM

MLDv1

M-M

Óptimo

1-M

PIM-SSM

No

MLDv2

M-M

PIM-BiDir

Virtual RP

MLDv1


Resumen

 

En esta tabla se comparan los aspectos de diseño más relevantes de las versiones de PIM más comunes.

 

 

.

PIM-SM

PIM-SSM

PIM-BiDir

Caso de uso

Uno-a-muchos

Muchos-a-muchos

Uno-a-muchos

Muchos-a-muchos

Dominio

Intra-dominio

Intra-dominio

Inter-dominio

Intra-dominio

Árbol

Shared (*,G)

Source (S,G)

Source (S,G)

Shared (*,G)

RP

Necesario para el descubrimiento de fuentes

No necesario

Necesario como raíz del árbol

Raíz del árbol

Shared tree - RP

Source tree - FHR

FHR

RP

Escalabilidad

Medio a Bajo

Bajo

Alto

Estado

Medio a Alto

Alto

Bajo

Seguridad

Bajo

Medio

Bajo

Eficiencia

Potencialmente sub-óptimo

Óptimo

Óptimo

Simplicidad

Low

Medio

Medio

Mecanismo evitar loops

RPF

RPF

Designated Forwarder

Retardo

Medio a Bajo

Bajo

Alto