Imagen gráfica que muestra una red de ordenadores conectada a un switch, ilustrando la configuración de Spanning Tree.
Configuración de Spanning Tree en Packet Tracer para evitar bucles.

Cómo Configurar Spanning Tree en Cisco para Eliminar Bucles en una Red

En este tutorial, aprenderemos a implementar el protocolo Spanning Tree en Cisco IOS, usando Cisco Packet Tracer como ejemplo práctico. También veremos cómo funciona.

¿Qué es Spanning Tree?

El protocolo Spanning Tree (también llamado STP) está diseñado para prevenir bucles en las redes de área local (LAN). Su objetivo principal es eliminar estos bucles identificando las rutas redundantes en la red y desactivándolas. Hoy en día existen varias versiones del protocolo; la versión original es STP (IEEE 802.1D).

Además, garantiza la redundancia manteniendo rutas alternativas, asegurando así la resiliencia en caso de fallo de un enlace o un conmutador switch. Habrá una ruta única y algunos puertos estarán bloqueados, a nivel lógico. También permite asegurar que los switches tengan una visión coherente y estable de la red. De hecho, los bucles de red pueden causar problemas como tormentas de broadcast, degradación del rendimiento, o incluso un fallo completo de la red.

Versiones de Spanning Tree

Hoy en día, Spanning Tree tiene diferentes versiones. Aquí un resumen de las diferentes versiones del protocolo STP:

  • STP (IEEE 802.1D): Versión original del protocolo Spanning Tree. Como se indica en la introducción, esta versión nos permitirá eliminar los bucles de red. Funciona con tiempos relativamente largos para la convergencia.

Nota: La convergencia corresponde al tiempo de cambio del estado del enlace.

  • RSTP (Rapid Spanning Tree Protocol – IEEE 802.1w): Versión mejorada del STP (IEEE 802.1D) introducida para reducir el tiempo de convergencia. Utiliza un enfoque más rápido para reaccionar a los cambios en la topología de la red.
  • MSTP (Multiple Spanning Tree Protocol – IEEE 802.1s): Permite crear varias instancias de Spanning Tree en una misma red, para gestionar mejor el tráfico y optimizar el uso de los enlaces. Permite segmentar las VLAN y aplicar un Spanning Tree específico a cada grupo de VLAN.

La ventaja de esta versión es sobre todo más flexibilidad y una mejor distribución del tráfico.

  • PVST+ (Per VLAN Spanning Tree Plus): Una extensión propietaria de Cisco del protocolo STP. Crea una instancia de Spanning Tree para cada VLAN, lo que permite un control preciso de las rutas de datos para cada VLAN individualmente.

En este tutorial, trataremos la versión más clásica “STP (IEEE 802.1D)”.

Descubrimiento e implementación de Spanning-Tree

#1. Elección del Root Bridge

La elección del root bridge se realiza automáticamente. Este proceso permitirá elegir el switch que servirá de “Root Bridge”, será el switch de referencia en la red, es decir, el switch principal en una red donde STP está activado.

Es como el director de orquesta: sirve de referencia para organizar y gestionar el tráfico de red, asegurándose de que no haya bucles en las conexiones. Cada switch se considera inicialmente como el “root bridge”.

Se realiza una elección comparando los identificadores de puente (Bridge ID), que incluyen una prioridad (valor predeterminado: 32768) y la dirección MAC del switch. Trataremos su funcionamiento más adelante en el tutorial.

El switch con el Bridge ID más bajo se convierte en el Root Bridge o, si el ID es idéntico, la elección se hará sobre la dirección MAC más baja.

Es importante tener en cuenta que en los equipos Cisco, el protocolo Spanning Tree Protocol (STP) está activado por defecto.

Ejemplo de una infraestructura clásica con bucles:

Diagrama que muestra una infraestructura de red clásica con bucles entre cuatro switches.
Ejemplo de una configuración de red con bucles, mostrando la interconexión de cuatro switches.

Después de la elección del root bridge, obtenemos el siguiente resultado:

Diagrama de red mostrando la elección del Root Bridge (SW04) usando STP.
Ejemplo de una red tras la convergencia de STP, identificando el Root Bridge.

En nuestra topología todos los ID son idénticos, el protocolo mira entonces las direcciones MAC. Por lo tanto, es el que posee la dirección MAC más baja, es decir, la “AAAA” que corresponde a nuestro switch SW04, según el esquema. La elección del Root bridge se ha realizado.

Básicamente, las direcciones MAC no deben ser idénticas, ya que la dirección MAC es como la matrícula de los coches, pero en los equipos informáticos: es única.

Veamos ahora en la práctica con Cisco Packet Tracer. Te invito a descargar el archivo PKT para practicar:

Descarga aquí

Tomemos una topología muy simple con 3 switches. Por defecto, al conectar los switches, Spanning Tree elegirá directamente el root bridge. En nuestro caso, ha desactivado la conexión entre SW00 y SW01, porque no es la ruta más rápida.

¿Por qué esta conexión está desactivada y no la conexión directa entre SW00 y SW02?

Una vez elegido el root bridge, cada switch calcula la ruta más corta hacia el root bridge utilizando el coste STP de los enlaces (basado en el ancho de banda de los enlaces). Las rutas con el coste más bajo se mantienen activas, lo cual es lógico. En nuestro caso, es más rápido tener una conexión directa de SW00 a SW02 que pasar por SW01 y luego por SW02 desde SW00.

Verifiquemos si todo esto es correcto.

Diagrama de una topología de red en anillo con tres switches que implementan el protocolo STP.
Ejemplo de implementación de STP en una red con tres switches para prevenir bucles.

¿Cómo ver quién es el Root bridge?

Realizando el siguiente comando, podemos comprobar que SW02 es el root bridge. Podemos verificarlo ejecutando el siguiente comando desde SW01. También tenemos el estado de los puertos.

SW01#show spanning-tree
Captura de pantalla que muestra la salida del comando show spanning-tree en un switch, detallando el estado del protocolo STP.
Información del estado del Spanning Tree Protocol (STP) en el switch SW01.

Incluso podemos forzar la elección del root bridge manualmente:

Para asegurar que el root bridge sea el esperado, podemos ajustar la prioridad. Una prioridad más baja fuerza la elección, a saber, que el valor predeterminado es 32768 en la mayoría de los equipos de red. La prioridad se compone de un múltiplo de 4096 al que se añade el identificador de la VLAN.

Ejemplo de configuración para modificar la prioridad:

# spanning-tree vlan 1 priority 4096

#2. Selección de rutas

Para cada switch, STP determina una ruta única hacia el root bridge (la más corta o la más económica). Cada puerto está marcado con un rol específico:

  • Root Port (RP): El puerto utilizado para alcanzar el root bridge.
  • Designated Port (DP): El puerto que está activo para transmitir datos en un segmento específico.
  • Blocked Port: Los puertos no utilizados para evitar bucles.

¿Cómo modificar el coste de una ruta y cómo funciona?

Por ejemplo, si existen dos rutas, una vía FastEthernet y otra vía GigabitEthernet, y se desea que se utilice la ruta vía FastEthernet, se puede reducir su coste por debajo del de GigabitEthernet. El protocolo elige la ruta que menos cuesta, por lo tanto, la más rápida al final.

Ejemplo de configuración:

# interface FastEthernet0/1
# spanning-tree cost 10

Tabla de costes STP predeterminados, según la velocidad del enlace (IEEE 802.1D):

Ancho de bandaCoste predeterminado
10 Mbps100
100 Mbps19
1 Gbps4
10 Gbps2

#3. Los diferentes estados

Los estados de los puertos son:

  • Blocking: Sin transferencia ni recepción de datos.
  • Listening: Observación para identificar bucles.
  • Learning: Aprendizaje de direcciones MAC sin transferencia de datos.
  • Forwarding: Transferencia de datos.
  • Disabled: El puerto está desactivado.

Después de ver los diferentes estados, verifiquemos ahora el estado de la ruta entre SW01 y SW00. Ejecuta el comando que aparece a continuación para comprobar que el enlace está desactivado.

SW01#show spanning-tree interface fastEthernet 0/1
Diagrama de red mostrando un puerto en estado BLK (bloqueado) debido a STP.
Ilustración de un enlace en estado “BLK” (bloqueado) por el Spanning Tree Protocol.

El enlace está bloqueado con el estado “BLK” que corresponde a “Blocking”.

#4. Algoritmo de convergencia

En caso de fallo de un enlace, el algoritmo de convergencia del STP debe recalcular la mejor manera de hacer circular los datos en la red. Para ello, pasará por varios estados que hemos mencionado anteriormente para cada puerto del switch para determinar qué ruta debe activarse o desactivarse, lo que lleva un cierto tiempo (hasta 50 segundos). Debido a los retrasos introducidos por los diferentes estados.

A continuación, la lista de los diferentes tiempos por estado (los retrasos pueden cambiar):

  • 20 segundos en el estado Blocking.
  • 15 segundos en el estado Listening.
  • 15 segundos en el estado Learning.

Probemos en nuestro caso desconectando la conexión entre SW00 y SW02:

Diagrama de red mostrando la desconexión entre los switches SW00 y SW02.
Reconfiguración de la red tras fallo del enlace entre SW00 y SW02 usando STP.

Spanning Tree ha reactivado la conexión entre SW00 y SW01 que permite conectar SW02. Podemos verificar de nuevo su estado:

SW01#show spanning-tree interface fastEthernet 0/1

El puerto ha cambiado de estado, pasando de “BLK” a “FWD”: el puerto está escuchando.

Salida de comando mostrando el cambio de estado de un puerto STP de BLK a FWD.
Cambio de estado de un puerto del Spanning Tree Protocol de bloqueado (BLK) a reenviando (FWD).

Limitaciones y evoluciones

El tiempo de convergencia de STP, en su versión clásica, puede llegar hasta 50 segundos. Lo cual es relativamente largo. De hecho, durante el tiempo de convergencia, algunas partes de la red pueden volverse inaccesibles, lo que puede tener un impacto en el acceso a los servicios y a los recursos de la empresa.

En respuesta a este problema, existe el “Rapid Spanning Tree Protocol” (RSTP) que corresponde a la norma “IEEE 802.1w”. Constituye una mejora importante, permitiendo reducir considerablemente este tiempo, vamos a abordar su funcionamiento y las diferentes posibilidades de evolución.

#1. Compatibilidad entre protocolos

Ahora, abordemos las diferencias entre los dos STP y RSTP, ¿por qué no usar directamente RSTP si es más rápido?

STP (Spanning Tree Protocol) y RSTP (Rapid Spanning Tree Protocol) son protocolos diseñados para prevenir bucles en redes de tipo Ethernet. Lo sabemos, porque lo hemos visto anteriormente, pero difieren en varios aspectos clave: ¿cuáles?

  • Tiempo de convergencia: para STP, utiliza estados de puerto (Blocking, Listening, Learning, Forwarding) para prevenir bucles, y esto es largo, alrededor de 30 a 50 segundos para converger (paso de un puerto Blocking a Forwarding) en caso de cambio de topología. Para RSTP, acelera la convergencia utilizando estados simplificados y una detección más rápida de los cambios de topología. La convergencia es casi instantánea (menos de 1 segundo en algunos casos).
  • Estados de los puertos: con STP, los puertos pasan por muchos estados antes del estado final, mientras que RSTP introduce tres roles principales para los puertos: Discarding, Learning, y Forwarding. Por lo tanto, reduce las etapas intermedias, lo que acelera las transiciones.

Pero, ¿son compatibles entre sí?

Sí, RSTP es retrocompatible con STP.

Cuando un switch configurado con RSTP detecta un vecino que utiliza STP, cambia automáticamente al modo STP para esa conexión. Esto garantiza la continuidad en una red mixta, así que sí, los dos son compatibles y se adaptan en función del vecino.

#2. Portfast

PortFast y BPDU Guard son funcionalidades esenciales para mejorar el rendimiento y reforzar la seguridad en una red con STP o RSTP.

¿Cuál es el interés?

En resumen, PortFast permite a un puerto pasar directamente al estado Forwarding sin esperar las etapas normales de STP (Listening, Learning). Esto es particularmente útil para las conexiones de terminales, ya que los dispositivos como los PC no introducen bucles.

Aquí tienes un ejemplo de configuración:

SW00(config)#interface fastethernet 1/0
SW00(config-if)# spanning-tree portfast
Mensaje de advertencia de Cisco sobre el uso de PortFast en puertos conectados a switches.
Precaución al usar PortFast en conexiones a switches.

Atención: Aplicar solo en puertos conectados a terminales finales (nunca entre switches).

Por ejemplo, en nuestro caso, al configurar mi puerto 1/1 del SW00, me indica una advertencia de no conectar un switch, sino un terminal como un PC u otro (ver imagen anterior).

#3. BPDU Guard

Estudiemos ahora BPDU Guard: ¿qué permite?

BPDU Guard permite proteger la red contra bucles accidentales. El principio es el siguiente, desactiva inmediatamente un puerto si recibe una BPDU (Bridge Protocol Data Unit, es un mensaje STP utilizado para intercambiar información sobre la topología de la red). Esto evita que un dispositivo no autorizado, como un switch conectado por error, perturbe la red.

Veamos ahora la configuración:

SW01#interface fastethernet 0/1
SW01# spanning-tree bpduguard enable
Salida de comandos mostrando la activación de BPDU Guard y su efecto en un puerto.
Ejemplo de activación de BPDU Guard y la reacción ante la recepción de un BPDU.

Una vez activada la función BPDU Guard en nuestro switch SW01, detecta que hay un bucle de red al detectar el switch SW00, por lo que desactiva la conexión completa entre SW01 y SW00.

Diagrama de red mostrando la desconexión entre los switches SW01 y SW00.
Reconvergencia de la red tras la interrupción de la conexión entre SW01 y SW00.

Combinar las dos funcionalidades que hemos mencionado, ¿es posible?

Sí, es totalmente posible. Pero, atención a una condición, el puerto en cuestión debe estar conectado a un terminal como he mencionado anteriormente para el protocolo PortFast.

Ejemplo de configuración clásica:

SW05#interface FastEthernet 0/1
SW05#spanning-tree portfast
SW05#spanning-tree bpduguard enable

En resumen, con STP y RSTP, puedes optimizar la gestión de bucles y acelerar la convergencia. Funciones como PortFast y BPDU Guard añaden seguridad y eficiencia para los terminales finales. Son elementos clave para una red bien diseñada.

Conclusión

El protocolo STP es esencial en las redes Ethernet para garantizar la disponibilidad y la estabilidad evitando los efectos indeseables de los bucles de red. También hemos visto cómo mejorar este protocolo, especialmente con RSTP que mejora STP, y las funcionalidades PortFast y BPDU Guard que se tratan al final del artículo. Esto también nos demuestra la utilidad y la importancia de implementar estos diferentes protocolos para asegurar la longevidad de nuestra red.