STP Overview

STP Overview

Spanning-Tree Protocol

STP es un protocolo de administración de enlaces de capa 2 que proporciona redundancia al tiempo que evita loops en la red. Para que una red Ethernet de capa 2 funcione correctamente, solo puede existir una ruta activa entre dos dispositivos (switches). Varias rutas o caminos activos entre los dispositivos provocan loops en la red.

Los loops o bucles se forman porque los switches paralelos (o bridges) no se conocen entre sí. Si existe un bucle en la red, las estaciones finales pueden recibir mensajes duplicados. Los switches también pueden aprender las direcciones MAC de la estación final en varias interfaces de Capa 2. Estas condiciones dan como resultado una red inestable elevando el performance del dispositivo con frames basura (frames duplicados infinitamente)

Por si sólo ethernet es susceptible a bucles de capa 2 por su diseño original.  De hecho, todas las interfaces activas en los switches podrían provocar los loops sobre todo con frames unknown unicast o broadcast. Veamos dos topologías sencillas que por simple que sea su diseño ethernet provocaría loops por si solo:

STP1

En las topologías anteriores todas las interfaces de los switches están listas para reenviar los frames entrantes provocando un loop infinito para cada uno de los frames que van llegando. Aquí, es donde spanning-tree toma gran relevancia.

STP proporciona el mecanismo para que los switches puedan conocerse y negociar una ruta sin bucles a través de la red. STP logra su objetivo bloqueando ciertos puertos por medio de su algoritmo para evitar estos bucles. Veamos las mismas topologías con STP activo:

STP2

Con STP los loops se descubren en los enlaces redundantes antes de que estén disponibles para su uso y estos enlaces redundantes se bloquean efectivamente para evitar la formación de loops. En el caso de los enlaces redundantes, los switches pueden ser conscientes de que un enlace que esta deshabilitado (puerto bloqueado) para la prevención de bucles tenga que activarse rápidamente en caso de fallo en un enlace activo.

TIPOS de Spanning-Tree

Existen tres estándar abiertos STP que pueden incluir diferentes fabricantes en sus equipos:

  • Common Spanning-Tree (IEEE 802.1D)
    • Una sola instancia STP por switch
  • Rapid Spanning-Tree (IEEE 802.1W)
    • Reduce significativamente los tiempos de convergencia de 802.1D
    • Sigue siendo sólo una instancia de STP
  • Multiple Spanning-Tree (IEEE 802.1S)
    • Una instancia  de STP por grupos de VLAN. La cantidad de grupos va limitado por las características de cada equipo.

Tomando como referencia los estándar anteriores, los protocolos STP de cisco son compatibles pero con ciertas variaciones, por ejemplo el PVST+ es equivalente al Common Spanning-Tree  y el Rapid PVST+ corresponde al Rapid Spanning-Tree, en resumen esto es:

  • Per-VLAN Spanning-Tree Plus (PVST+)
    • Una instancia STP por cada VLAN
    • Opera en troncales ISL y 802.1Q
    • Desarrollado para operar con switches de otros fabricantes.
  • Rapid Per-VLAN Spanning-Tree Plus (Rapid PVST+)
    • Una instancia de STP por VLAN.
    • Reducción de los tiempo de convergencia de PVST+
  • Multiple Spanning-Tree (IEEE 802.1S)
    • No sufre ningún cambio, los switches cisco utilizan el estándar de la IEEE.

Al inicio cisco utilizaba PVST (Per-VLAN Spanning-Tree) muy similar a PVST+ pero solo funcionaba con troncales ISL. PVST tenía una desventaja porque ISL es propietario de Cisco y no es compatible con otros fabricantes, por tal motivo se actualizó a PVST+.

El cálculo de STP en los switches asigna los siguientes roles a los puertos:

  • Root: Puerto listo para el reenvío de frames con la mejor ruta hacia el root bridge
  • Designated: Puerto listo para el reenvío de los frames por cada segmento LAN o dominio de colisión
  • Alternate: Puerto bloqueado con un camino alterno al root bridge diferente del root port.
  • Backup:  Puerto bloqueado con un camino alterno a un mismo switch. Enlaces redundantes entre dos switches.

Cada rol puede transitar entre diferentes estados STP: disable, blocking, listening, learning y forwarding.

Iniciemos con entender el funcionamiento de Common Spanning-Tree (IEEE 802.1D), la asignación de lo roles y estado de los puertos en los switches para lograr una topología libre de loops de capa 2.

El algoritmo de spanning-tree elige un switch como punto de referencia al que denomina “root bridge”, una vez que se ha designado el “root bridge” los demás switches de la red calculan la mejor ruta hacia él. Si un switch tiene más de un camino disponible para llegar al root bridge el algoritmo de STP solo deja uno activo y el resto los bloquea para evitar los loops de capa 2.

Los switches que participan en STP intercambian mensajes BPDU (Bridge Protocol Data Unit) para elegir el root bridge a través de su Bridge ID. El switch con el menor Bridge ID es elegido como root bridge.

El Bridge ID es un valor de 8 bytes que contiene:

  • Bridge priority (2 bytes): Es un valor de 0 a 65535 (El valor por defecto es 32768). El valor sólo se puede aumentar o disminuir en saltos de 4096.
  • MAC Address (6 bytes): Dirección MAC del switch.

Si el valor del bridge priority es igual en los switches se utiliza la dirección MAC más baja como desempate. Los BPDU son enviados a la dirección MAC Multicast de STP 01-80-c2-00-00-00.

Existen dos tipo de BPDU:

  • Configuration BPDU: usado para el cálculo de la red libre de loops con STP
  • Topology Change Notificación (TCN) BPDU: usado para anunciar cambios en la topología de la red.

De forma predeterminada, los BPDU se envían cada 2 segundos y sólo el root bridge crea los BPDU de configuración, los demás switches sólo reenvían estos BPDU agregando su Bridge ID.

Una vez elegido el root bridge, STP debe de calcular una red sin loops, para ello asigna roles y estados a los puertos de cada uno de los switches basado en costos, de hecho STP usa el concepto de costo para determinar muchas cosas.

Cada puerto de un switch tiene un path cost que depende de su ancho de banda, a mayor ancho de banda menor será el path cost, veamos los valores más comunes utilizados por STP:

Ancho de banda Path Cost
10 Mbps 100
100 Mbps 19
1 Gbps 4
10 Gbps 2

Con base a los costos que STP utiliza los puertos pueden tener los siguientes Roles: root, desgnated, alternate y backup. A su vez pueden pasar por los estados disabled, blocking, listening, learning o forwarding.

Veamos un topología sencilla de como podrían ser asignados los roles y estados de los puertos:

STP3

En los artículos siguientes veremos cómo se asignan los roles y la transición de los estados STP que hemos mencionado.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *