1 / 24

Construcción y mantenimento de árboles de distribución

Construcción y mantenimento de árboles de distribución. Procedimientos explícitos para unirse a un árbol de distribución (JOIN). Procedimientos explícitos para podarse de un árbol de distribución (PRUNE). JOINs y PRUNEs: Enviados en la misma PDU (JOIN/PRUNE).

khanh
Download Presentation

Construcción y mantenimento de árboles de distribución

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Construcción y mantenimento de árboles de distribución • Procedimientos explícitos para unirse a un árbol de distribución (JOIN). • Procedimientos explícitos para podarse de un árbol de distribución (PRUNE). • JOINs y PRUNEs: • Enviados en la misma PDU (JOIN/PRUNE). • Enviados periódicamente para mantener estado en routers upstream. • Disparados por eventos: • Creación de nueva entrada en el router. • Lista de oifs de una entrada pasa de null a no null o de no null a null. • Routers que originan los procedimientos: • Routers con miembros directamente conectados (DRs, PMBRs). • RPs (conmutación a árbol por emisor). IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  2. Vers. PIM (4) Tipo (4) Reservado (8) Checksum (16) Dirección unicast de upstream neighbor codificada (variable) Núm de grupos (8) Reservado (8) Holdtime (16) Dirección multicast codificada de grupo-1 (variable) Número de orígenes Joined (J) (16) Número de orígenes podados (P) (16) Dirección codificada origen-1 (joined) (variable) GRUPO 1 . . . . . . . . . . . Dirección codificada origen-J (joined) (variable) Dirección codificada origen-1 ( pruned) (variable) . . . . . . . . . . . Dirección codificada origen-P (pruned) (variable) . . . . . . . . . . . Dirección multicast codificada de grupo-N (variable) GRUPO N Número de orígenes Joined (16) Número de orígenes podados (16) . . . . . . . . . . . PIM-SM: Join/Prune IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  3. Envío periódico de Join/Prune • Para cada router PIM vecino, se envían J/P periódicos • para todas las entradas activas asociadas para las cuales el vecino es RPF • hacia el RP del grupo o para árboles compartidos. • Hacia el emisor (source) para árboles específicos Join para todos los sources, de todos los grupos del RP, vía árbol compartido • Join G:224.0.0.0 S:(Dirección RP, RPT=1, WC=1) • oiflist de la entrada (*,*,RP) no nula o router es DR en la interfaz al neighbor Join para todos los sources de un grupo determinado, vía árbol compartido • Join G:G1 S: (Dirección RP, RPT=1, WC=1) • oiflist de la entrada (*,G1) no nula o router es DR en la interfaz al neighbor Join para un source de un grupo determinado, vía árbol específico con raíz en el emisor • Join G:G1 S: (S1, RPT=0, WC=0) • oiflist de la entrada (S1,G1) es no nula y • RPT-bit de la entrada (S1,G1) es 0 (entrada para árbol específico al emisor). IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  4. Envío periódico de Join/Prune Poda para un source de un grupo determinado, en el árbol específico por emisor • Prune G:G1 S:(Dirección S1, RPT=0, WC=0) • Existe una entrada activa (S1,G1) con RPT-bit = 0 (árbol por emisor) y • oiflist de la entrada (S1,G1) es nula Poda para un source de un grupo determinado sobre el árbol compartido • Prune G:G1 S: (S1, RPT=1, WC=0) • existe una entrada (S1,G1) RPT-bit = 1 y oiflist nula o • existe una entrada (S1,G1) RPT-bit=0, SPT-bit=1 y iif desde S1 distinta iif desde RP o • existe una entrada (*,G1) y una entrada (S1,G1) para S1 conectado directamente. Poda de un grupo sobre el árbol compartido • Prune G:G1 S: (Dirección del RP, RPT=1, WC=1) • oiflist de la entrada (*,G1) es nula. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  5. Recepción de Join/Prune • Chequeo de que el J/P sea direccionado al router • Interfaz de arribo del J/P, I Join G:G1 S:(S1, RPT=1, WC=1) • Si G1 no corresponde al RP S1, descartar. • Si G1 corresponde al RP S1, • Si no existe entrada (*,G1), crearla (copiar oiflist de (*,*,RP) si existe). • Agregar I a lista de oifs (*,G1) • Setear oif-timer de la oif con Holdtime del J/P, y oif-deletion-delay = 1/3 de oif-timer • Por cada (Si,G1), si • Si no esta el la lista de prunes y • Si I no es la iif de la entrada (Si,G1) y • Si I no está en la subred a la que pertenece la dirección de Si • Agregar I a la oiflist de la entrada (Si,G1) • Si la oiflist de una entrada (Si,G1)RPT=1 queda igual a la de (*,G1), eliminar la entrada IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  6. Recepción de Join/Prune • Join G:G1 S:(S1, RPT=0, WC=0) • Si no existe una entrada (S1,G1) • Crear una entrada (S1,G1) con bit SPT = 0 • Lista de oifs, copia de (*,G) o (*,*,RP) si existen • Excluir iif de (S1,G1) de lista de oifs • Incluir I en oiflist. • Iif de entrada (S1,G1), interfaz usada para enviar a S1. • Existe una entrada (S1,G1) • Si es una (S1,G1)RPT=1 • Poner RPT = 0 y SPT = 0 • Cambiar iif a iif desde S1 • Enviar Join hacia la interfaz desde S1 • Agregar I a la oiflist, si no es a su vez la iif de la entrada • Si es una entrada (S1,G1)RPT=0 • Agregar I como oif si no es la iif de la entrada IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  7. Recepción de Join/Prune • Prune G:G1 S:(S1, RPT=0, WC=0) • Si existe una entrada (S1,G1) • Eliminar la interfaz (I) de la oiflist de la entrada, en vínculos punto a punto • Reducir el oif-timer de I en la entrada, a oif-deletion-delay en vínculos macceso • Si la entrada es (S1,G1)RPT=1 y existe (*,G1) o (*,*,RP) • la entrada (S1,G1) debe ser mantenida aún con oiflist nula. • Si la entrada es (S1,G1)RPT=0 • la entrada será eliminada si oiflist es nula • Prune G:G1 S:(S1, RPT=1, WC=0) • Si existe una entrada (S1,G1) • Eliminar la interfaz (I) de la oiflist de la entrada en vínculos punto a punto • Reducir el oif-timer de I en la entrada, a oif-deletion-delay en vínculos macceso. • Si la entrada es (S1,G1)RPT=1 y existe estado (*,G1) o (*,*,RP) • no eliminar la entrada, aún con oiflist nula • Si no existe entrada (S1,G1) y existe (*,G1) o (*,*,RP) • Crear una entrada (S1,G1)RPT=1 • oiflist copiada de (*,G1) o (*,*,RP) sin I IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  8. Recepción de Join/Prune • Prune G:G1 S:(S1, RPT=1, WC=1) • Si existe una entrada (*,G1) con S1 como RPT • Eliminar la interfaz (I) de la oiflist de la entrada, en vínculos punto a punto • Reducir el oif-timer de I en la entrada, a oif-deletion-delay en vínculos macceso • Si existe (*,*,RP) y no existe (*,G1) • Crear (*,G1) con oiflist igual a (*,*,RP) eliminando la interfaz de arribo del prune IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  9. Reenvío • Búsqueda de entrada • Buscar entrada que coincida con S (longest match) y con G (exactamente) (entradas (S,G) y (*,G) ). • Buscar entrada (*,*,RP) (Si G asociado a un RP) • Existe entrada para el datagram recibido • Interfaz de arribo coincide con iif de la entrada y oiflist no nula • Reenviar por oiflist excluyendo subred que contiene a S • Si entrada es (S,G), restart Entry-timer • Si entrada es (S,G) RPT=0,SPT=0 y existe (*,G) o (*,*,RP) asociada con iif distinta • Poner SPT =1 en (S,G) • Enviar prune para (S,G) vía árbol compartido (RPT=1) • Si el origen es un host directamente conectado y el router es DR en la interfaz de arribo • Si Register-Supression-timer no esta corriendo para la entrada, encapsular y enviar register al RP IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  10. Reenvío • Interfaz de arribo no coincide con iif de la entrada • Si SPT bit de la entrada es 1 • descartar paquete • Si SPT bit de la entrada es 0 • si iif de entrada (*,G) o (*,*,RP) coincide con interfaz de arribo, reenviar por oiflist de (*,G) o (*,*,RP) • No existe entrada para el datagram recibido • Si el origen es un host directamente conectado y • Router es DR • Obtener RP para el grupo • Crear entrada (S,G) con Register-Supression-timer inactivo y oiflist nula • Encapsular datagram y enviar Register al RP IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  11. Construcción y difusión de lista de RPs • Bootstrap Router (BSR): Responsable de construir y difundir el conjunto de RPs de un dominio. • Rendevouz Point (RP): Router responsable de actuar como raíz del árbol compartido para uno o más grupos. • Mecanismos de elección de un BSR en un dominio entre los posibles routers (Candidate-BSR). • Mecanismos de elección de los RP para los diferentes grupos entre los posibles routers (Candidate RP). • PDUs: • Candidate-RP-Advertisment: Unicast de cada C-RP al BSR. • Registro de RPs • Bootstrap: Multicast a los routers PIM. • Elección de BSR • Distribución de RPs IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  12. Vers. PIM (4) Tipo (4) Reservado (8) Checksum (16) Cta. Prefijos (8) Prioridad (8) Holdtime (16) Dirección codificada Unicast del RP (variable) Dirección codificada Grupo-1 (variable) . . . . . . . . . . . . Dirección codificada Grupo-N (variable) PIM-SM: Anuncio Candidato RP - Cta.Prefijos: Cantidad de direcciones de grupo para las cuales se anuncia el RP. 0 indica todos los grupos. - Prioridad: Prioridad del RP para los grupos anunciados. 0 es la más alta prioridad. - Holdtime: Tiempo de validez del anuncio - Dirección RP: Dirección de la interfaz que se está anunciando como RP. - Dirección Grupo i: Direcciones de grupo para las cuales el router se anuncia como RP. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  13. Vers. PIM (4) Tipo (4) Reservado (8) Checksum (16) Prioridad BSR (8) Long Masc Hash (8) Marca de fragmento (16) Dirección unicast codificada de BSR (variable) Dirección multicast codificada de grupo-1 (variable) RP-Count-1 (8) Frg RP-count-1 (8) Reservado (16) Dirección codificada unicast origen-1 (variable) GRUPO 1 Prioridad RP1 (8) Holdtime RP1 (16) Reservado (8) . . . . . . . . . . . Dirección codificada unicast origen-M (variable) Prioridad RPM (8) Holdtime RPM (16) Reservado (8) . . . . . . . . . . . Dirección multicast codificada de grupo-N (variable) GRUPO N RP-Count-N (8) Frg RP-count-N (8) Reservado (16) . . . . . . . . . . . PIM-SM: Bootstrap - Masc. Fragm: Número generado al azar. Identifica los diferentes fragmentos que componen un bootstrap. - Long. Masc. Hash: Indica la longitud de la máscara de hashing utilizada. 30 bits para IPv4. - Pri. BSR: Prioridad del BSR que emite la PDU. Utilizada para elegir BSR. - Dirección de grupo-i: Dirección de grupo asociada a los RPs que le siguen. - RP_Count-i:Cantidad de RPs anunciados en el bootstrap. - Frag-RP-Count-i: Cantidad de RPs en este fragmento. - Dirección RP origen-j: Dirección de los RP para el grupo. - Holdtime RP-j: Tiempo de validez de la entrada (RP). Copiado del campo Holdtime de la entrada en el BSR. - Prioridad RP-j: Prioridad del RP para el grupo. Copiada del campo prioridad de la entrada en el BSR. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  14. E: Expira Bootstrap-Timer A: Originar Bootstrap con LclRP-set, dirección, prioridad Rearrancar Bootstrap-Timer E: Llega Bootstrap (preferred) A: Rearrancar Bootstrap_Timer Reenviar bootstrap CandBSR E: Expira Bootstrap-Timer A: Originar Bootstrap con LclRP-set, dirección, prioridad Rearrancar Bootstrap-Timer ElectedBSR E: Llega Bootstrap (preferred) A: Rearrancar Bootstrap_Timer Reenviar bootstrap Elección de BSR y difusión de RPs (C-BSR) • LclBSR: Almacena dirección y prioridad del BSR • Inicializado con dirección local si router es C-BSR • Inicializado en 0 si router no es C-BSR • LcLRP-Set: Conjunto de RPs, inicialmente vacío • Preferrd Bootstrap: Bootstrap con mayor prioridad que la local (y mayor dirección si igual prioridad) • Estado CandBSR: El router no origina mensajes de Bootstrap • Estado ElectedBSR: El router origina periódicamente mensajes de bootstrap Diagrama de estados para un router C-BSR IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  15. AxptAny AxptPreferred E: Llega Bootstrap A: Rearrancar Bootstrap-Timer Reenviar Bootstrap E: Llega Preferred Bootstrap A: Rearrancar Bootstrap-Timer Reenviar Bootstrap E: Expira Bootstrap_Timer Elección de BSR y difusión de RPs (No C-BSR) • Estado AxpAny: • El router no origina mensajes de Bootstrap ni mantiene timers activos. • Sólo espera recibir bootstrap • Estado AxptPreferred: • El router sólo acepta bootstrap preferred • Mantiene Bootstrap_Timer Diagrama de estados para un router no configurado como BSR IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  16. Recepción de Bootstraps Recepción de un bootstrap por parte de un router • Chequear si el mensaje es recibido por el neighbor hacia el emisor, si no, descartar. • Si el BSR emisor del bootstrap no es mejor o igual que el almacenado localmente: • Bootstrap timer activo o router es C-BSR: • Descartar el bootstrap. • Bootstrap Timer expiró y router no es C-BSR: • Almacenar RP-Set y dirección y prioridad BSR. • Reenviar bootstrap TTL=1, dirección “ALL-PIM-ROUTERS”. • Arrancar Bootstrap-Timer. • Si el BSR del emisor es mejor o igual que el almacenado localmente: • Almacenar RP-Set y dirección y prioridad BSR • Reenviar bootstrap TTL=1, dirección “ALL-PIM-ROUTERS” • Arrancar Bootstrap-Timer • Si el receptor no tiene información acerca del RP-set y el bootstrap es recibido unicast de un neighbor directamente conectado • Almacenar BSR y RP-set • Recepción de un nuevo RP-Set por parte de un router: • Por cada entrada (*,G), (*,*,RP) y (S,G)RPT=1 determinar si el RP está o no en el nuevo RP-Set. • Si no está, y es posible, calcular nuevo RP con función de hash y redistribuir los grupos. • Para un nuevo RP, calcular su valor para las entradas; si es mayor que el actual, reemplaza al RP anterior IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  17. Envío y recepción de anuncios C-RP • Envio de Candidate-RP-Advertisments • Envío periódico (config. local) unicast de cada candidato a RP hacia el BSR del dominio • C-RP indica prioridad, tiempo de vida del anuncio y grupos que acepta • Recepción de Candidate-RP-Advertisments • Router no es elected BSR: Ignora • Router es elected BSR: • Almacena dirección del emisor como candidato a RP para los grupos anunciados • Arranca un timer con valor Holdtime del RP para eliminar la entrada • Si la pioridad del C-RP-Advertisment es distinta de cero, el BSR puede cambiar el prefijo anunciado • El BSR puede aplicar políticas locales para controlar el número de RPs anunciados en los bootstrap IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  18. Elección del RP para un grupo • Función común aplicada en todos los routers del dominio • Mapea un grupo en uno de los RPs que cubren el grupo • Procedimiento: • Dado un grupo G, seleccionar los RP que cubren el grupo y tienen más alta prioridad • A cada posible RP, aplicarle la función de hashing y obtener un valor V • Seleccionar como RP para el grupo, el de valor V más alto • Si coinciden los valores V, seleccionar el de dirección IP más alta • Función de hashing: • V = (1103515245 * ((1103515245 * (G & M) + 12345) XOR C) + 12345) mod 2^31 • G: grupo • M:Máscara de hashing • C: Candidato a RP IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  19. Timers Relativos a neighbor discovery • Hello-Timer: Usado para enviar Hellos periódicamente en todas las interfaces. • Inicialmente configurado con un valor al azar entre 1 y [Hello-Period]. • Neighbor-Timer: Usado para eliminar la entrada relativa a un neighbor. • Uno por neighbor • Configurado con el valor Holdtime cada vez que se recibe un Hello del neighbor. Relativos a información de RPs • C-RP-Adv-Timer: Usado para enviar C-RP-Advertisments periódicos por los routers C-RP. • Inicialmente configurado con un valor al azar entre 1 y [C-RP-Adv-Period]. • RP-Timer: Usado por el BSR para eliminar entradas de los RPs. • Configurado con el valor Holdtime del C-RP-Advertisment. • Rearrancado cada vez que llega el C-RP-Advertisment. • Bootstrap-Timer: • Usado por el BSR para generar bootstraps periódicamente. • Usado por otros routers para eliminar la información del BSR, si no reciben bootstrap. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  20. Valor Evento Entradas Holdtime Agregado de oif por recepción de J/P (S,G) (*,G) (*,*,RP) Incrementado a Holdtime Recepción de Join/Prune (S,G) (*,G) (*,*,RP) valor oif-timer de (*,*,RP) Restart de oif-timer de entrada (*,*,RP) (S,G) (*,G) valor oif-timer de (*,G) Restart de oif-timer de entrada (*,G) (S,G) Timers Relativos al mantenimiento de árboles de distribución • Join/Prune-Timer: Usado para enviar J/Ps periódicamente en todas las interfaces de acuerdo a las entradas. • Inicialmente configurado con un valor al azar entre 1 y [Join/Prune-Period]. • Join/Prune-Supression-Timer: Usado en vínculos multiacceso para evitar J/P duplicados. • Uno por entrada. • Si se recibe un J/P por la iif de la entrada con Holdtime mayor que el propio, se inicializa con [Join/Prune-Supression-Timeout] más un valor al azar para evitar sincronismo. • Mientras el timer está activo, no se envían J/P para la entrada • Oif-Timer: Uno por cada oif de cada entrada. Usado para eliminar la oif de la entrada. • Cuando el timer expira, la oif es eliminada de la entrada si no hay miembros conectados directamente. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  21. Valor Evento Entradas Data-Timeout Creada por llegada de paquete de datos (S,G) Holdtime del J/P Creada por recepción de Join/Prune (S,G) (*,G) (*,*,RP) Aumentado a Data-Timeout Recepción de paquete de datos (S,G)RPT=0 Aumentado a valor oif-timer Restart de cualquier oif-timer de entrada (S,G)RPT=1 (*,G) (*,*,RP) Aumentado a Assert-Timeout Recepción de un assert (S,G)RPT=1 (*,G) con oiflist nula Timers Relativos al mantenimiento de árboles de distribución • Register-Supression-Timer:Usado para no enviar Registers (si activo) al RP. • Uno por entrada (S,G). • Inicializado al recibir un Register-Stop del RP. • Assert-Timer: Usado para mantener válida la información recibida en un Assert. • Iniciado para una entrada (S,G) o (*,G) al recibir un assert. • Al finalizar, el router actualiza su mejor (RPF) neighbor de aceurdo al ruteo unicast. • Random-Delay-Join-Timer: Usado para evitar sincronización entre routers de una LAN cuando envían Join/Prunes al cambiar el RPF para una entrada (S,G) o (*,G). • Al expirar, el router envía el Join/Prune • Entry-Timer: Usado para enviar eliminar entradas (cuando el timer se vuelve cero). • Uno por entrada • En el caso de eliminar una entrada (*,G) o (*,*,RP), se eliminan las (S,G)RPT=1 asociadas. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  22. Valores por defecto para los timers • Valores recomandados para la versión actual de PIM-SM. • En versiones posteriores, los valores por defecto podrán basarse en la aplicación de mecanismos en base a valores observados en la red. • Join-Prune-Period: 60 segs • Intervalo de envío de los Join/Prunes periódicos. • Puede ser ajustado según características de cada vínculo. • Join-Prune-Holdtime :3.5 * Join-Prune-Period (210 segs) • Valor especificado en los J/P, usado para eliminar las oifs. • Join/Prune-Supression-Timeout: Aprox. 1.25 * Join-Prune-Period (75 segs.). • Tiempo de inhibición de envío de J/Ps al recibir uno con mayor Holdtime (macceso). • Data-Timeout: 210 segs. • Intervalo luego del cual la entrada específica de un S es eliminada si no se reciben datos. • Register-Supression-Timeout: 60 segs. • Tiempo durante el cual, un DR que recibe Register-Stop no encapsula al RP. • Probe-Time : 5 segs. • Tiempo restante p/expiración de Register-Supresion-Timer para envío de null Register. • Assert-Timeout: 180 segs. • Intervalo luego del cual se invalida la información recibida vía Assert. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  23. Valores por defecto para los timers • Random-delay-Join-Timeout: 4.5 segs • Intervalo máximo de envío de los Join/Prunes ante cambios en el RPF. • Hello-Period: 30 segs • Intervalo entre el envío de Hellos. • Hello-Holdtime: 3.5 * Hello-Period (105 segs.). • Tiempo de validez de las entradas almacenadas para los neighbors. • C-RP-Adv-Period: 60 segs. • Intervalo de tiempo entre dos C-RP-Advertisments para los routers C-RP. • RP-Holdtime: 2.5 * C-RP-Adv-Period: 150 segs. • Tiempo de validez de una entrada para un RP en el BSR. • Bootstrap-Period: 60 segs. • Intervalo de tiempo entre dos Bootstraps periódicos emitidos por el BSR. • Bootstrap-Timeout: 2 * Bootstrap-Period + 10 ( 130 segs.) • Intervalo luego del cual se considera al BSR caído si no se reciben sus bootstraps. IP Multicast 1999 - grigotti@exa.unicen.edu.ar

  24. Flag Usado en Significado Border Register Register originado por un PMBR con datos de un emisor externo al dominio Null Register Register enviado como Probe al RP, para evitar ráfagas de Registers RPT Entrada La entrada representa al árbol compartido RPT Join/Prune J/P asociado al árbol compartido, y propagado por él. El campo emisor (source) es la dirección del RP correspondiente RPT Assert El datagram de datos está siendo enviado por el árbol compartido, por lo tanto el camino indicado corresponde al árbol compartido. SPT Entrada (S,G) Ya han llegado paquetes por la iif de la entrada, que es diferente a la de (*,G). WC Join/Prune El receptor espera recibir de todos los emisores del grupo, por lo tanto el J/P se aplica al árbol compartido (*,G). WC Entrada Indica que la entrada hace matching para todos los emisores del grupo Resumen de flags utilizados IP Multicast 1999 - grigotti@exa.unicen.edu.ar

More Related