Transcript CBT

CBT

•

Arquitectura definida en “Core Based Trees (CBT) Multicast Routing Architecture”, RFC 2201, septiembre 1997.

•

Especificación detallada:

–

“Core Based Trees (CBT version 2) Multicast Routing -- Protocol Specification

–

--”, RFC 2189, septiembre 1997.

“Core Based Trees (CBT version 3) Multicast Routing -- Protocol Specification --”, Internet Draft, , marzo 1998.

IP Multicast - 1999 [email protected]

1

CBT: Generalidades

•

Características

–

Diseño orientado a la simplicidad y escalabilidad

–

Arbol de distribución compartido bidireccional con raíz en un nodo “core”

–

Esquema de pertenencia explícito

–

Adaptable a grupos dispersos

IP Multicast - 1999 [email protected]

2

CBT: Funcionalidad

• – – – – –

Funcionalidad del protocolo

–

Descubrimiento de cores

– –

Joining Envío de datos

•

desde un host en una red miembro del grupo

•

desde un host en una red no miembro del grupo Poda del árbol Mantenimiento del árbol Operación en vínculos multiacceso Interoperabilidad Operación interdominio

IP Multicast - 1999 [email protected]

3

•

CBT

Joining (simplificado)

– – –

JOIN-REQUESTs por parte de los DR con hosts miembros del grupo Creación de estado transitorio en cada router Creación de estado definitivo (on-tree) al recibir el JOIN-ACK correspondiente M (*,G) i2 (i0, i1) 1 i0 R3 5 2 i3 R1 i0 i1 4 3 i2 12 13 (*,G) C (i0 , i1) CO RE i0 i1 8 9 (*,G) i2 (i0) i1 i2 R2 i0 7 10 i1 6 i1 i2 (*,G) i0 (i3) LEAF i0 i2 R4 i1 i3 11 R5 i0 (*,G) i1 (i0) LEAF (*,G) i2 (i0) LEAF Paquete multicast Paquete unicast Paquete de control M S

IP Multicast - 1999 [email protected]

M

4

•

CBT

Envío de datos (simplificado)

– –

No se realiza chequeo RPF Un datagram recibido por una interfaz es reenviado por las demás pertenecientes a la entrada

–

Un emisor en una red no miembro encapsula el paquete y envía unicast al core (*,G) C (i0 , i1) M (*,G) i2 (i0, i1) 4 i0 R3 3 i3 R1 i0 i1 i2 CO RE i0 i1 2 3 i1 i2 (*,G) i0 (i3) LEAF i0 i2 R4 i1 i3 1 (*,G) i2 (i0) LEAF 4 i1 i2 R2 i0 (*,G) i2 (i0) 5 i1 R5 6 i0 (*,G) i1 (i0) LEAF M S Paquete multicast Paquete unicast Paquete de control M

IP Multicast - 1999 [email protected]

5

•

CBT

Poda del árbol (simplificado, no se tiene en cuenta vínculos unidireccionales)

–

QUIT-NOTIFICATION al parent cuando lista child vacía M CO RE (*,G) i2 ( i0 , i1) i3 i2 R1 i0 i1 2 1 i0 R3 i2 i1 (*,G) i2 ( i0) LEAF R4 M S R2 R5 M Paquete multicast Paquete unicast Paquete de control

IP Multicast - 1999 [email protected]

6

•

CBT: Vínculos unidireccionales

Interfaz podada: establece vínculos unidireccionales en el árbol compartido (hojas hacia core).

•

Flujo de información:

–

El router puede recibir información a través de la interfaz.

–

El router NO puede propagar información por la interfaz.

•

Creación de una interfaz podada

– –

A través de un JOIN-REQUEST unidireccional.

A través de un QUIT-NOTIFICATION.

•

Eliminación de una entrada en un router

– –

Si todas sus interfaces child están podadas y No existe entrada menos específica con alguna interfaz no podada.

•

Utilizadas por los border routers para mejorar performance

IP Multicast - 1999 [email protected]

7

CBT: interfaces podadas

•

Unidireccionalidad:

– –

BR1 no recibe información para grupo G1 BR1 envía datagrams para G1 en modo multicast (sin encapsular) D1 Dominio CBT D2 C R2 D3 Dominio sin miembros para G1 BR R2 BR Emisores para G1 R1 EG1 MG1 MG1 Vínculo del árbol compartido Flujo de información del grupo G1

IP Multicast - 1999 [email protected]

8

CBT: Entradas de diferentes granularidades

•

Soporte adicional de entradas por emisor (S,G). (Además de (*,Core) y (*,G) ).

•

Objeto: mejor performance en dominios CBT de tránsito. Un BR puede hacer un join o prune específico según se lo notifique el otro dominio.

•

Entradas (S,G) sólo generadas por un BR.

•

Estado instanciado sólo en los routers entre BR y Core.

•

No se crea un árbol por emisor, sólo un envío selectivo por emisor en el árbol compartido.

IP Multicast - 1999 [email protected]

9

CBT: MFC y reenvío

•

MFC (Multicast Forwarding Cache): Tabla consultada para reenvío de datagrams.

•

PFC (Private Forwarding Cache) : Utilizada por CBT.

•

SFC (Shared Forwarding Cache) : En BRs, compartida por los protocolos operando en el BR.

•

Entradas:

– – –

(*,Core) : (*,G) : (S,G) :

–

Cada interfaz (downstream-list) lleva indicación de podada o no.

IP Multicast - 1999 [email protected]

10

CBT: MFC y reenvío

•

Reenvío

–

Buscar mejor (longest) matching por S y G en MFC (incluidas (*,Core) ).

• •

Si no hay matching, descartar el paquete.

Si hay matching:

–

Si el paquete fue recibido multicast por interfaz on-tree, reenviar por las demás no podadas de la entrada.

–

Si el paquete fue recibido multicast por interfaz no on-tree,

–

descartarlo.

Si el paquete fue recibido encapsulado, enviarlo (multicast desencapsulado) por todas la interfaces on-tree no podadas de la entrada.

IP Multicast - 1999 [email protected]

11

CBT: Encabezamiento común a las PDUs

Vers (4) Tipo (4) Long direc (8) Checksum (16) PDUs encapsuladas en IP: Número de protocolo 7.

Vers: Indica versión corriente del protocolo (3) Tipo: Indica tipo de la PDU: 0 : HELLO: Elección de DR en redes multiacceso.

1 : JOIN-REQUEST: conexión al árbol.

2: JOIN-ACK: conexión al árbol.

3 : QUIT-NOTIFICATION: poda del árbol.

4 : ECHO-REQUEST: monitoreo entre parent y child.

5 : ECHO-REPLY: monitoreo entre parent y child.

6: FLUSH-TREE: desarmado del árbol.

7: BOOTSTRAP (opcional): difusión de cores.

8 : CANDIDATE-CORE-ADVERTISMENT (opcional): difusión de cores.

Long. Direc.: Longitud en bytes de las direcciones (unicast o multicast) que lleva el paquete.

Checksum: El complemento a uno de la suma del complemento a uno de los grupos de 16 bits del paquete

IP Multicast - 1999 [email protected]

12

CBT: Formato de PDUs tipos 0 a 6

Numero de grupos (8) Encabezamiento de control CBT (32) Numero de opciones (8) Reservado (16) Dirección de grupo o Core 1 (Variable) Dirección de grupo 2 (Variable) Tipo de opción 1 (8)

. . .

Tipo de opción n (8)

. . .

Dirección de grupo n (Variable) Longitud de opción 1 (8)

. . .

Valor de opción 1 (variable)

. . .

Longitud de opción n (8) Valor de opción n (variable) Número de grupos: Número de grupos o conjuntos de grupos consecutivos incluidos en la PDU Número de opciones: Cantidad de opciones incluidas en la PDU.

Direc. de grupo i: Dirección de grupo (multicast) o dirección de Core (unicast).

Tipo de opción i: identifica la opción incluida en la PDU.

Longitud de opción i: Longitud para la opción.

Valor de opción i: Valor para la opción, con longitud en bytes dada por el campo anterior.

IP Multicast - 1999 [email protected]

13

CBT: lista de opciones

•

Tipo 1: Preferencia en Hello, long 1 byte.

•

Tipo 2: Uni-direccional, aplicable a joins.

•

Tipo 3: Lista de inclusión, permite anunciar un conjunto de grupos contiguos a los que se aplica la PDU.

•

Tipo 4: Lista de exclusión, permite anunciar un conjunto de grupos contiguos a los cuales se excluye de la aplicación de la PDU.

•

Tipo 5: Información (S,G), Permite que una PDU (join, quit, flush) haga referencia a información específica de un emisor (S).

IP Multicast - 1999 [email protected]

14

CBT: Proceso de integración al árbol

•

Solicitud de un nodo para integrarse a un árbol de distribución

–

Originado por un leaf router (con miembros directamente conectados).

–

Originado por un Border Router en el inicio (entrada (*,Core) ).

–

Soporte para joinings bidireccionales o unidireccionales.

–

Soporte para joinings de diferente granularidad ( (*,Core), (*,G), (S,G) ).

–

Proceso realizado nodo a nodo hacia el core.

–

PDUs: JOIN-REQUEST y JOIN-ACK.

IP Multicast - 1999 [email protected]

15

CBT: Integración al árbol

•

Envío de JOIN-REQUEST

–

Determinar próximo nodo (upstream) hacia el core del grupo.

– – –

Crear información transitoria: Armado y envío de JOIN-REQUEST por la interfaz upstream.

Si es el router origen del J-R, activar timer para reintentos [RTX_INTERVAL]

– –

Si es el router origen del J-R, activar timer para desistir [JOIN_TIMEOUT] Reintentos:

• •

Router leaf: Reporte IGMP BR: JOIN_TIMEOUT * 3

IP Multicast - 1999 [email protected]

16

CBT: Integración al árbol

•

Recepción de JOIN-REQUEST

–

Determinar si el router tiene estado (transitorio o permanente) para el J-R

– – –

Si existe estado y el JR es recibido por la interfaz parent (upstream), descartarlo.

Si tiene estado transitorio, no reenviar el J-R.

Si tiene estado permanente, generar el JOIN-ACK adecuado e incorporar la interfaz de arribo del J-R a la entrada.

–

Si no se tiene estado y el nuevo upstream es diferente al de la interfaz de arribo del JR, crear estado transitorio y activar timer p/eliminación [TRANSIENT_TIMEOUT].

•

Determinación de estado para el JOIN-REQUEST:

– –

Si existe entrada, no se propagará el JOIN-REQUEST Existe entrada si:

• •

Existe entrada igual o menos específica y Alguna de sus interfaces child está sin podar

IP Multicast - 1999 [email protected]

17

•

Creación de entradas

CBT: Integración al árbol

d a d c a b Arbol (*,Core) b c d c a b Arbol (*,G) 1 - Entrada: (*,Core) a d(NP) 2- Recepción JR para (*,G) por interfaz c 3 - Creación: (*,G) a d(NP) c(NP) 4 - Recepción JR para (S,G) por interfaz b 5 - Creación: (S,G) a d(NP) c(NP) b(NP) Reenvío: en base al longest match.

d c a b Arbol (S,G)

IP Multicast - 1999 [email protected]

18

CBT: Poda

• • • • •

Proceso que permite a un nodo desvincularse del árbol de distribución.

• •

Solicitado desde el router child (downstream) al parent (upstream).

El parent puede recibir información vía una interfaz podada El parent no propaga información a través de una interfaz podada.

La distinción entre una interfaz podada y una no podada se deja a la implementación.

Podas implementadas a través de QUIT-NOTIFICATION.

Granularidades (*,core), (S,G) y (*,G).

IP Multicast - 1999 [email protected]

19

• • •

CBT: Poda

QUIT-NOTIFICATION

–

Puede referenciar podas de diferentes granularidades.

–

Disminuye la demora en dejar un grupo en los routers leaf.

– – –

Permite a un BR no recibir tráfico de un dominio CBT.

No es confirmado (no ACK).

Envío de [MAX_RTX] QUIT-NOTIFICATIONs cada [HOLDTIME] seg.

Envío de QUIT-NOTIFICATION

–

Un router genera un QUIT-NOTIFICATION si:

•

Todos las interfaces child de una entrada están podadas y

•

No existe entrada menos específica con alguna interfaz no podada.

Recepción de QUIT-NOTIFICATION

–

Si no existe entrada, crearla y generar un QUIT-NOTIFICATION upstream.

– –

Si existe entrada, marcar la interfaz de arribo como podada.

Si todas las interfaces child de una entrada están podadas y no existe entrada menos específica con child no podada

•

Eliminar la entrada.

•

Generar un QUIT-NOTIFICATION upstream.

IP Multicast - 1999 [email protected]

20

CBT: Poda

1 - Entrada en R: (*, Core) a b(NP) c(NP) 2 - Q-N (*,G1) recibido por b 3 - Agregado entrada (*,G1) a b(P) c(NP) 4 - 5 - Q-N (*,G1) recibido por c 5 - Modificación entrada (*,G1) a b(P) c(P) b R c a 1 - R3 realiza un Join (*,G1) vía R4, R1, Core R3: (*,G1) a L R4: (*,G1) c a R1: (*,G1) a b C: (*,G1) Null b 2 - BR realiza un join (*,core) via R4, R1, Core BR: (*,core) a X R4: (*,core) c b R1: (*,core) a b C: (*,core) Null b BR realiza un Q-N (S,G1) R4: (S,G1) c b(P) a

IP Multicast - 1999 [email protected]

b a C b R1 c R4 b a a a BR b R2 a b a R3 S

21