PROTOCOLO SPANNING TREE "STP".

En una red LAN la redundancia se logra teniendo varios enlaces físicos entre los switches, de forma que queden varios caminos para llegar a un mismo destino. El resultado de esto es que la red LAN queda con ciclos o bucles. En la figura puede verse una red LAN redundante y cómo se forma un ciclo en ella.

 Si bien la red anterior es redundante los ciclos son altamente perjudiciales para la misma dado que producen una serie de problemas que acabarán por dejarla inutilizada. Dentro de dichos problemas podemos encontrarnos con:

 
Tormentas de broadcast: los broadcast en la red son reenviados una y otra vez y permanecen circulando en la misma sin fin, dado que en Ethernet no existe como en IP un campo de TTL. Lógicamente, al no eliminarse la situación se agrava con cada nuevo broadcast.
 
Múltiples copias de una trama: con la redundancia es muy probable que un host reciba una trama repetida, dado que la misma podría llegar por dos enlaces diferentes.
 
Tabla CAM inconsitente: una trama que proviene de una MAC en particular podría llegar desde enlaces diferentes.
Bucles recursivos: un bucle puede generar un nuevo bucle y estos crecer de forma exponencial. En una situación así la red quedará inusable en pocos segundos.
 
Ante la necesidad de tener una red LAN redundante y dinámica libre de los problemas asociados a la redundancia resulta evidente que es imperioso un protocolo que sea capaz de resolver estas cuestiones. Es aquí donde entra en acción el Protocolo de Spanning Tree (STP).
 
COMPONENTES DE STP
 
Para comprender el funcionamiento del STP es necesario conocer alguna terminología indispensable asociada al mismo:
 
Bridge ID: es el identificador de cada bridge. Es el resultado de combinar la prioridad del bridge con su dirección MAC base.
Root bridge (puente raíz): es el punto focal de la red y el que se toma como referencia para las decisiones del STP. El RB será aquel switch que tenga el menor bridge ID.
 
BPDU (Bridge Protocol Data Unit): son pequeñas unidades de datos que transportan información de control del STP. Se las utiliza en primera instancia para escoger el RB y luego para detectar posibles fallos en la red.
 
Bridges no raíz: son todos los demás bridges de la topología. Participan en el intercambio de BPDUs y actualizan a su vez su base de datos del STP.
 
Costo de un puerto: se determina en base al ancho de banda del enlace y será el valor que se utilice para decidir el camino más corto al RB.
 
Costo del camino al RB: el costo de un camino al RB es la suma de los costos de cada enlace por el que pasa. El camino elegido por el STP al RB será aquel cuyo costo sea más bajo.
 
Puerto raíz (designado): es el puerto de cada bridge que se encuentra en el camino mínimo al RB. Sólo hay uno por bridge que siempre estará en estado de forwarding.
 
Puerto no designado: todo puerto en un bridge con mayor costo que el puerto designado. Será puesto en estado de bloqueo.
 

Estado de los puertos

Cada puerto que participa del STP puede estar en uno de cinco estados. Estos son:
 
Bloqueado (BLK): no reenvía tramas de datos, aunque sí recibe y envía BPDUs. Es el estado por defecto de los puertos cuando un switch se enciende y su función es la de prevenir ciclos.
 
Escuchando (LST): recibe, analiza y envía BPDUs para asegurarse que no existen bucles.
 
Aprendiendo (LRN): al igual que el estado LST, recibe, analiza y envía BPDUs, aunque aquí también comienza a armar la tabla CAM. En este estado aún no se reenvían tramas de datos.
 
Reenviando (FWD): envía y recibe todas las tramas de datos. Los puertos designados al final del estado de LRN serán marcados como FWD.
Deshabilitado: es un puerto deshabilitado administrativamente y que no participará en el STP. Para el STP un puerto en este estado es como si no existiera.
 

Operación del STP

El protocolo de STP cumple con una serie de pasos antes de alcanzar el estado estable y comenzar a enviar tramas de datos. Los mismos son los que se listan a continuación.
 
1. Escoger el RB: 
        i. Se elige el bridge con prioridad más baja.
        ii. Si uno o más switches tienen la prioridad más baja se elige entre ellos el que posea la MAC base más baja.
 
2. Se eligen los puertos raíz: cada bridge encuentra el menor camino hasta el RB y, con él, su puerto designado.
3. Cada uno de los bridges escucha BPDUs en todos sus puertos y, si detecta algún bucle en un puerto, lo bloquea. De lo contrario lo pone en estado FWD.        El criterio para decidir qué puerto bloquear en un switch es el siguiente:
 
      i. Si debe escogerse un puerto entre dos switches diferentes se elige para bloquear el de aquel switch con el mayor bridge ID.
      ii. Si debe escogerse un puerto dentro del mismo switch entonces se escoge aquel que tenga el mayor costo. En caso de coincidir el costo, el puerto       que se bloquea es aquel que tenga el identificador más alto.
 

Extensiones de Cisco

Portfast: un puerto marcado como portfast será puesto en estado de FWD desde el inicio. Es especialmente útil para aquellos puertos donde estemos seguros que va a haber un único host. Asociado a portfast existen dos técnicas que permiten impedir un bucle en un puerto en este modo.
 
BPDU guard: su objetivo es el de evitar que se conecte un switch a un puerto de este tipo. Por ello, al recibir una BPDU el puerto se pone en estado de deshabilitado por error.
 
BPDU filter: es menos restrictivo que el anterior y lo que hace es detectar BPDUs en el puerto. Si se recibe alguna se saca al puerto de modo portfast y pasa al estado de bloqueo para cumplir con todos los pasos requeridos por el protocolo.
 
Uplink fast: debería ser habilitado en aquellos switches en donde existe algún puerto en estado de bloqueo. En ese caso, si se detecta una caída en el puerto que está como FWD se habilita rápidamente el puerto bloqueado, sin el delay habitual. Permite una reacción más rápida ante un inconveniente en la red.
 
Backbone fast: en este caso, se detecta el fallo en algún otro switch de la red y su objetivo es acelerar la convergencia ante dicho fallo.
 

Rapid Spanning Tree

El protocolo RSTP es un estándar que incorpora muchas características que aceleran el proceso de convergencia inicial y ante un fallo, valiéndose de varias de las ideas anteriores de Cisco. Es totalmente compatible con STP y de hecho un bridge ejecutando STP y otro RSTP pueden convivir perfectamente en la misma red, aunque utilizando el protocolo STP. Por ello, para que RSTP funcione, todos los switches deben soportarlo.