Ordenadores y Portátiles
Spanning Tree
¿Qué es Spanning Tree?

¿Cómo funciona "Spanning Tree"?

Para prevenir broadcasts y otros efectos secundarios no deseados en redes de cierto tamaño, se creo el protocolo de spanning-tree, que ha sido estandarizado como la especificación 802.1d por la IEEE (Institute Electrical Electronic Engineers). Básicamente, esta tecnología usa al algoritmo STA, el cual detecta que el switch tiene más de una manera de comunicarse con un nodo, y por tanto determina cual de todos los caminos es el mejor y bloquea el otro camino alternativo. Lo idóneo de todo esto, es que sigue supervisando el otro o los otros caminos posibles en caso de que la ruta principal tiene algún problema. La manera en que funciona es la siguiente:

  • Cada switch es asignado a un grupo de identificadores (IDs), uno para el propio switch y otro para cada puerto en el switch. El identificador de switch, llamado el ‘bridge ID’, tiene 8 bytes de largo y contiene 2 bytes de prioridad acompañada con la dirección MAC, la cual tiene otros 6 bytes. Cada identificador de puerto tiene una longitud de 16 bits divididas en dos partes: 6 bits prioritarios y diez para el número de puerto.
  • Un coste de ruta es dado para cada puerto (path cost). Dicho coste es normalmente basado un procedimiento ya establecido la cual es parte del protocolo 801.2d. Según la especificación original, el coste es mil 1000 Mbps dividido por el ancho de banda del segmento conectado al puerto. Dependiendo de este ancho de banda, los costes pueden variar ligeramente, lo cual hace spanning-tree un sistema totalmente automatizado.
  • Cada switch comienza un proceso de descubrimiento  para elegir los mejores caminos de red que debería usar para cada segmento. Esta información es compartida por todos los switches por medio de unas tramas especiales llamadas BPDUs (bridge protocol data units). Las partes de una BPDU es:
    • El identificador root del bridge (BID) del propio bridge.
    • El coste de ruta del root bridge, que determina lo lejos que está el root bridge.
    • El identificador de puerto, que es el puerto del switch de donde el BPDU fue enviado.



Todos los switches están constantemente enviando BPDUs entre ellos, intentando determinar el camino más óptimo entre varios segmentos. Cuando un switch recibe un BPDU (de otro switch) que es mejor que el que está difundiendo desde el mismo segmento, parará de difundir sus BPDUs desde ese segmento. En lugar de eso, almacenará el BPDU del otro switch como referencia y para extenderlo a segmentos inferiores, es decir, los que están muy alejados desde el root bridge.

  • Un bridge root es elegido basado en el resultado del proceso BPDU entre switches. Inicialmente, todos los switches se consideran ellos mismos como roots. Cuando un switch arranca en una red, envía una BPDU con su propio identificador como si fuera root. Cuando los otros switches  reciben el BPDU, comparan le identificador del bridge con el que tienen almacenado como el root bridge.

Si el nuevo identificador de root tiene un valor más bajo, sustituyen al que tienen almacenado en memoria. Pero si el que tienen ya guardado es menor, un BPDU es enviado al nuevo switch con el identificador del actual root bridge. El nuevo switch entiende que no puede ser el root bridge y reemplaza el ID de root que tiene con el que le han enviado. El resultado es que el switch con el BID más bajo, es elegido por todos los demás switches como root.

  • Basándose en la localización del root bridge, los otros switches determinan cuales de sus puertos tienen el menor coste al root bridge elegido. Estos puertos se llaman root ports, y cada switch (aparte del propio root bridge) deben tener uno.
  • Los switches determinan quienes tienen los puertos designados. Un puerto designado es la conexión usada para enviar y recibir paquetes en un segmento específico. Teniendo solo un puerto designado por segmento, todos los problemas de bucles están solucionados.

Los puertos designados son elegidos basados en la ruta de menor coste al root bridge para un segmento. Al tener el root bridge un coste de ruta de valor cero, cualquier puerto conectado a segmentos se convertirá en puerto designado. Si uno o más puertos tienen el mismo coste de ruta, entonces el switch con menor BID será elegido.

  • Una vez que ha sido elegido el puerto designado para un segmento de red, cualquier otro puerto que conecta con ese segmento se convierte en puerto no-designado. Bloquean y previenen tráfico de red de que pueda tomar ese camino, por lo que solo puede circular por los puertos asignados.

Cada switch tiene una tabla de BPDUs que está continuamente actualizándose. La red está configurada como una red spanning-tree teniendo un switch como la cabecera y todos los demás switches como extensiones que cuelgan de el. Cada switch comunica con el root bridge a través de sus puertos root, y con cada segmento por medio de los puertos designados. Con esto se consigue que la red esté libre de bucles.

En el caso de que el root bridge comience a fallar o tenga problemas de red, el protocolo de spanning-tree permite que todos los demás switches reconfiguren la red con otro switch que tome el relevo. Todo este proceso proporciona la posibilidad de tener una red compleja con una buena tolerancia a fallos y fácil de mantener.

En el próximo capítulo de este tutorial, conoceremos un algo de los switches de nivel 3. Puedes verlo pulsando aquí.

Leer mas artículos relacionados