CCNP SWITCH 8: Configuración de Spanning Tree Imprimir este artículo

STP Root Brdge

Colocación del Root Bridge

Si dejamos la elección del Root Bridge a la elección por defecto (prioridad y MAC) puede que el resultado no sea el óptimo e incluso sea el peor de todos, como por ejemplo se elija el switch más lento y/o viejo y que no pueda con la carga del STP. Por eso si el switch más lento tiene la misma prioridad (por defecto TODOS la tienen) pero MAC más baja, será elegido como Root Bridge lo cual no interesa.

Por eso el root bridge debe ser el switch más potente y que más centrado esté en la estructura de la red, nunca un switch de acceso.

Configuración del Root Bridge.

Por eso para evitar sorpresas se deben hacer 2 cosas:

  • Configurar un switch para que sea Root Bridge
  • Configurar un switch como Root Bridge secundario, para el caso de que el primario falle.

Se puede configurar un switch para que sea Root Bridge con uno de estos dos métodos:

Configurar manualmente la prioridad (dando un valor más bajo) para que el switch sea elegido como Root. Debemos conocer el valor de la prioridad de todos los switches en la vlan correspondiente para poder asignarle un valor menos. Para poder cambiar la prioridad usamos el comando:

Switch(config)# spanning-tree vlan vlan-list priority bridge-priority

La prioridad (bridge-priority) por defecto es de 32768, pero podemos usar de 0 a 65535. Si el ID de sistema extendido de STP está activado, la prioridad por defecto sigue siendo 32768, pero el rango es de 0 a 61440 y en múltiplos de 4096, ya que en la prioridad está incluida la vlan ID.

Forzar la elección de Root Bridge que cambia su prioridad asumiendo donde está respecto a otros switches en la red. Usaremos el comando (macro):

Switch(config)# spanning-tree vlan vlan-list root {primary | secondary } [diameter diameter]

Este comando es realmente una macro que ejecuta varios comandos y lo que hace es forzar (pero no garantiza) a que un switch sea el Root Bridge.

Personalización de Spanning-Tree

Recordemos los 4 criterios en que STP basa su elección del Root Path:

  1. El Bridge ID (prioridad y MAC) más bajo
  2. El coste de Root Peth más bajo
  3. El Bridge ID de origen más bajo
  4. El puerto (el port ID) de origen más bajo

Ajustando el coste del Root Path

Podemos usar el siguiente comando para cambiar el coste de un puerto:

Switch(config-if)# spanning-tree [vlan vlan-list] cost cost

Si se especifica el parámetro vlan solo se cambia el coste del puerto para dicha vlan, si no se cambia el coste para todas las vlans del puerto.

Personalizando el Port ID

El cuarto criterio del STP es el Port ID, el cual es de 16 bits, 8 bits para la prioridad y 8 para el número de puerto. Para ver este valor podemos usar el comando:

Switch# show spanning-tree interface tipo mod/num

y nos fijamos en la columna Prio.Nbr (Prio = prioridad y Nbr = número de interface). El número de interface no siempre coincide con el número de puerto físico especialmente en switches con módulos o slots.

Para cambiar la prioridad de un puerto:

Switch(config-if) spanning-tree [vlan vlan-list] port-priority port-priority.

El valor de port-priority va de 0 a 255 y por defecto es 128.

Personalizar la convergencia de Spanning-Tree

Modificando los contadores (Timers) de STP

STP usa 3 contadores (timers) para mantener la pista de los estados de los puertos y la comunicación entre switches. Recalcar que estos contadores deben modificarse en el Root Bridge ya que este propaga los 3 contadores dentro de las BPDUs.

Modificando los contadores (timers) manualmente.

Podemos usar uno de estos comandos para modificar el contador que queramos:

Switch(config)# spanning-tree [vlan vlan-id] hello-time seconds
Switch(config)# spanning-tree [vlan vlan-id] forward-time seconds
Switch(config)# spanning-tree [vlan vlan-id] max-age seconds

Recalcar también que los contadores se pueden modificar por Vlan afectando solo a dicha vlan, si no se aplicarán a todas las vlans.

Modificando los contadores (timers) automáticamente

Switch(config)# spanning-tree vlan vlan-id root {primary | secondary} [diameter diameter [hello-time hello-time]]

Convergencia de enlace redundante

También tenemos los sigueintes métodos de convergencia de STP rápida en caso de que ocurra un fallo de enlace:

  • PortFast: habilita la conectividad rápidamente en switches de acceso donde el otro extremo son servidores. Se salta los estados Listening y Learning.
  • UplinkFast: Habilita la convergencia rápida en switches de acceso donde hay enlaces (uplinks) redundantes contra switches de distribución.
  • BackboneFast: habilita la convergencia rápida en la red core o backbone tras un cambio de topología.

PortFast: Nodos de la capa de Acceso.

La caracteristica PortFast acorta el tiempo de los estados Listening y Learning a prácticamente nada. Cuando el enlace de un server levanta el puerto del switch (configurado con PortFast) pasa al estado de Forwarding inmediatamente. La detección de bucles vía STP sigue activa y en caso de que se detecte un bucle el puerto es puesto en el estado Blocking. Las BPDU TCN (notificaciones de cambio de topología) no son enviadas en un puerto con PortFast.

Podemos activar PortFast globalmente en todos los puertos en modo acceso (que no sean trunk):

Switch(config)# spanning-tree portfast default

y Podemos activar o desactivar el PortFast a nivel de puerto:

Switch(config-if)# [no] spanning-tree portfast

UplinkFast: Uplinks de la capa de Acesso

La caracteristica UplinkFast habilita que en switches de acceso con más de un uplink funcionando (uno como Forwarding y otros Blocking) como Root Port, cuanod el uplink principal (el Forwarding) cae uno de los otros Uplinks pase de Blocking a Forwarding inmediatamente.

Para configurarlo lo hacemos de forma global para todos los puertos y para todas las Vlans:

Switch(config)# spanning-tree uplinkfast [max-update-rate pkts-per-second]

Este comando NO está permitido en el Root Bridge y además eleva la prioridad del switch a 49152 además el coste de los puertos también se elevan a 3000. El switch envía tramas dummy multicast al destino 0100.0ccd0cdcd cada max-update-rate.

BackboneFast: Caminos redundantes de Backbone.

Es muy simple de configurar y opera acortando el contador Max Age) cuando es necesario.Aunque esta función acorta el tiempo que un switch espera para detectar un fallo de Root Path, los puertos deben pasar por el contador Forward Delay en los estados Listening y Learning,por lo que solo reduce el tiempo de convergencia de 50 segundos a 30. Debe configurarse en todos los switches de la red.

Para configurar BackboneFast usamos el comando global:

Switch(config)# spanning-tree backbonefast

Monitorizando STP.

Varios comandos para monitorizar el estado del STP.

Muestra todos los posibles parámetros de STP para todas las Vlans (detallado o no):

Switch# show spanning-tree [detail]

Muestra el número total de puertos de switch actualmente en cada uno de los estados de STP:

Switch# show spanning-tree [vlan vlan-id] summary

Busca el Root Bridge ID, el Root Port y el coste del Root Path:

Switch# show spanning-tree [vlan vlan-id] root

Muestrael Bridge ID y los contadores de STP en el switch actual:

Switch# show spanning-tree [vlan vlan-id] bridge

Muestra la actividad de STP en la interface especificada:

Switch# show spanning-tree interface type port

Muestra el estado de UplinkFast:

Switch# show spanning-tree uplinkfast

Miestra el estado de BackboneFast:

Switch# show spanning-tree backbonefast

Revisiones del articulo: