STP y cómo evitar bucles en tu red
- jogofus
- 13 oct
- 6 Min. de lectura
Actualizado: 14 oct
-¡No conectes ese switch ahi!
+Pero, ¿por qué?
Así empezaba mi primer dia en una empresa (hace muchos años). El susto que me llevé cuando me gritó de esa forma fue, cuanto menos, curioso.
Su respuesta, simple:
-Si lo haces, tumbarás toda la red.
Mi cabeza empezó a divagar: "¿cómo es posible que se caiga la red?", "¿a dónde van estas tomas de red?", "si van a switches, no está habilitado el STP?".
En primer lugar me encontré con que no había un esquema de red con el que poder saber dónde iba cada toma, por lo que iba a ciegas.
Cuando pregunté por el STP, su cara fue un poema. Su respuesta, peor.
-No sé qué es el Spanning Tree Protocol, así que lo deshabilito en todos los switches por si acaso.
Genial, empezábamos fuerte.
Como anécdota, años después me contactó un cliente al que le llevaba solo el tema de seguridad perimetral porque, según ellos, el firewall no funcionaba. Cuando llegué, me conecté directamente al firewall y todo funcionaba como se esperaba.
Pero al girarme, noté algo diferente.
-Este switch antes no estaba aquí, ¿es nuevo?
+Sí, nos lo ha montado Fulanito de la empresa X.
-Vale, no te preocupes, ya sé donde está el problema.
Sí, evidentemente, ese switch había sido colocado ahí por la misma persona que me gritó en mi primer día de trabajo en SU empresa y que aseguraba no saber qué era el STP.
La otra cara de la moneda
Tiempo después, conocí a una persona brillante.
Llevaba a cabo proyectos de los grandes que para mí, en ese entonces, resultaban prácticamente inalcanzables (al tiempo me empecé a dedicar a proyectos similares).
Esta persona dedicaba mucho (MUCHO) tiempo a estudiar cuidadosamente la topología de STP para asegurar la disponibilidad de la red y la continuidad del negocio.
¿Cómo era posible que dos personas de la misma edad y mismo tiempo en el sector tuvieran visiones completamente distintas de lo que significa la red?

Empecemos por el principio: ¿qué es STP?
Spanning Tree Protocol, o STP por sus siglas, cumple este 2025 treinta años. Estamos hablando de un protocolo con años a sus espaldas.
Este protocolo fue creado por Radia Perlman, ingeniera de redes y conocida como la madre de internet.
Para entender bien qué es STP debemos tener en mente el modelo OSI, ya que este funciona en la capa 2 del mismo (capa de enlace de datos) que crea una topología lógica que evita los bucles en las redes Ethernet.
La versión estandarizada de STP se recoge en el IEEE 802.1D, que no es compatible con la versión original DEC STP.
Avances de STP y sus variantes
STP tenía un inconveniente, y es que creaba una única instancia para toda las VLAN, independientemente del número de VLAN que existan, compartiendo todas el mismo árbol lógico.
Tenía alguna ventaja, como menor consumo de recursos al solo disponer de una instancia, menos tráfico de red y configuración más sencilla.
Pero como todo, tenía sus desventajas:
No hay balanceo entre VLANs: al solo existir un único camino lógico, cuando este se encuentra en un bucle en una VLAN, queda bloqueado para el resto de VLAN.
Poca flexibilidad.
Al tiempo, concretamente en 1995, junto a sus switches Catalyst, Cisco sacó su propia versión de STP, que no sería un estándar abierto y sólo podía operar entre dispositivos Cisco. Esta variante se llamaba PVST y PVST+ (y posteriormente el Rapid PVST+). Estas versiones mejoraban notablemente el rendimiento en la red, ya que creaban una instancia por VLAN, pero a cambio de un elevado consumo de recursos.
Pero la aparición de nuevas marcas y la necesidad de no dependencia de protocolos propietarios propiciaron la aparición de RSTP (Rapid Spanning Tree Protocol) y MSTP (Multiple Spanning Tree Protocol), recogidos cada uno en la IEEE 802.1w e IEEE 802.1s.
RSTP tenía la ventaja de que reduce el tiempo de convergencia de 30s a 1-2s, pudiendo coexistir con STP clásico, mientras que MSTP añadía la velocidad de convergencia de RSTP a la características de poder crear hasta 64 instancias de Spanning Tree, en las que se pueden agrupar varias VLAN.
Funcionamiento de STP
Como hemos dicho, STP se creó con el propósito de evitar bucles en la red.
Este protocolo permite a los switches ser conscientes de otros switches a través de paquetes llamados BPDUs (bridge protocol data units).
STP crea una topología de capa 2 libre de bucles bloqueando temporalmente tráfico en puertos redundantes.
Estados de puerto
La secuencia que siguen todos los puertos que pertenecen a una instancia de STP es la siguiente:
Disabled: El puerto está "apagado".
Blocking: El puerto está habilitado pero no reenvía ningún tipo de tráfico para asegurarse de que no se crea ningún tipo de bucle. Solo puede recibir BPDUs y no modifica la tabla de direcciones MAC.
Listening: El puerto transiciona desde un estado de bloqueo y ahora puede enviar y recibir BDPUs. No reenvía ningún otro tipo de tráfico.
Learning: Ahora el puerto puede modificar la tabla de direcciones MAC. El puerto sigue sin reenviar ningún otro tipo de tráfico que no sean BDPUs.
Forwarding: El puerto reenvía todo el tráfico de red y puede actualizar la tabla MAC, tal y como se espera. Es el estado final de un puerto.
Broken: El switch detecta un problema de configuración en un puerto que puede generar conflictos mayores. Se descartan todos los paquetes hasta que se soluciona el problema.
Con los nuevos protocolos (RSTP y MSTP), los estados cambiaron a:
Discarding: El puerto no reenvía tramas ni aprende direcciones MAC. Se usa para evitar bucles. Sustituye los antiguos estados de blocking y listening.
Learning: El puerto no reenvía tramas aún, pero aprende direcciones MAC.
Forwarding: El puerto ahora sí que reenvía tramas y aprende direcciones MAC. Es el estado operativo normal de un puerto activo.
Tipos de puerto
El estándar define tres tipos de puertos:
Root Port (RP): Es el puerto que conecta con el root bridge dentro de la topología STP.
Designated Port (DP): Puerto que recive y reenvía BDPUs a otros switches. Provee conectividad al resto de switches dentro de la topología STP.
Blocking Port: Puerto que no está reenviando tráfico debido a los cálculos de STP para evitar bucles.
El root bridge es el switch más importante dentro de la topología en capa 2. Todos los puertos están en estado forwarding y son categorizados como designated ports.
Ahora bien, ¿qué son las BPDU?
Es un paquete utilizado por los switches para identificar la jerarquía y notificar de cambios en la topología. Este paquete utiliza como MAC de destino la dirección 01:80:c2:00:00:00.
Construcción de la topología STP
Primero debemos saber que es el coste en terminología de STP, ya que es un componente esencial para el cálculo de la ruta hacia el root bridge.
Originalmente, el coste era almacenado como un valor de 16 bits con un valor de referencia de 20Gbps.
Otro método, llamado long mode, usa un valor de 32 bits y usa una velocidad de referencia de 20Tbps.

En primer lugar, se hace un anuncio inicial mediante BPDUs. Cada switch arranca creyendo que él es el root bridge y envía BPDUs cada 2s (Hello time por defecto) por todos sus puertos.

Cuando todos han envíado sus correspondientes BPDU, las comparan y se selecciona el switch con el bridge ID más bajo (prioridad + MAC), aunque se puede forzar la prioridad en el switch deseado.
Por defecto, la prioridad es 32768.
Una vez seleccionada la raíz, cada switch calcula el coste de la ruta al root, sumando el coste del enlace de su puerto ascendente al coste anunciado por el vecino.
Cada switch que no es root elige un solo RP, siendo éste el puerto que ofrece menor coste total hacia el root bridge, y los DP.
Los puertos elegidos pasando por los diferentes estados Blocking - Listening - Learning - Forwarding.
Una vez formada la topología lógica de STP, el root bridge envía BPDUs periódicas (los paquetes conocidos como Hello). El resto de switches propagan la mejor BPDU por sus DP. Si un puerto deja de escuchar BPDU durante 20s, comienza la reconvergencia.
Cuando un puerto cae, el switch envía un Topology Change Notification (TCN) hacia el root bridge por su RP hasta recibir un ACK.
Cosas a tener en cuenta
Llegados a este punto, más o menos deberíamos entender como funciona STP.
La realidad (o por lo menos en mi experiencia) es que puedes montar varios switches sin modificar nada de STP y funcionará, pero quizá no de la forma más óptima, pudiendo hacer lo que se conoce como STP Tuning.
Aquí se trata de aplicar modificaciones para ser nosotros los que decidamos cuales son los switches root y cual es el camino que se debería elegir en caso de convergencia.





Comentarios