Resumen Completo de RSTP Rapid Spanning Tree
Resumen Completo de RSTP Rapid Spanning Tree

Protocolo RSTP: Resumen Completo de Rapid Spanning Tree

El estándar clásico del árbol de expansión funciona bien, pero actualmente es demasiado lento para las redes modernas

Actualmente vemos cada vez más enrutamiento en nuestras redes. Los protocolos de enrutamiento, como OSPF y EIGRP, se adaptan mucho más rápido a los cambios en la red que el árbol de expansión. Para no quedarse atrás de la velocidad de estos protocolos de enrutamiento, se creó otra variante del árbol de expansión… (rapid spanning tree) árbol de expansión rápido.

Rapid Spanning Tree Protocol (RSTP) no es una revolución del árbol de expansión, sino su evolución. Se han cambiado algunas cosas para acelerar el proceso, pero desde el punto de vista de la configuración, es lo mismo que el árbol de expansión clásico. Yo llamo al árbol de expansión original “árbol de expansión clásico“.

Los Fundamentos de Rapid Spanning Tree

Diferencias de estados entre STP y RSTP
Diferencias de estados entre STP y RSTP

¿Recuerdas el estado de los puertos del árbol de expansión? Tenemos un estado de puerto deshabilitado, de bloqueo, escucha, aprendizaje y reenvío. Esta es la primera diferencia entre el árbol de expansión y el árbol de expansión rápido. Rapid spanning tree solo tiene tres estados de puerto:

  • Discarding (Descartando);
  • Learning (Aprendiendo);
  • Forwarding (Reenviando)

Ya estás familiarizado con el estado del puerto en modo de aprendizaje y reenvío, pero el descarte es un nuevo estado del puerto. Básicamente, combina el estado de bloqueo y escucha del puerto.

Spanning TreeRapid Spanning Tree¿El puerto está activo en la topología?¿Aprende la dirección MAC?
BloqueoDescarteNoNo
EscuchaDescarteNo
AprendizajeAprendizaje
ReenvíoReenvío

Aquí tienes un buen resumen de los diferentes estados de los puertos para el árbol de expansión y el árbol de expansión rápido. La tabla muestra el estado de los puertos: si están activos o no y si aprenden o no las direcciones MAC.

¿Recuerdas todas las demás funciones de los puertos que tiene el árbol de expansión? Hagamos un breve resumen, y se mostrará la diferencia con el árbol de expansión rápido.

Gráfico para explicar diferencias
Gráfico para explicar diferencias

El switch con el mejor ID de puente (prioridad + dirección MAC) se convierte en el puente raíz. Otros switches (no raíz) deben encontrar la ruta de menor costo al puente raíz. Este es el puerto raíz. No hay nada nuevo aquí, todo esto funciona de manera similar también en el árbol de expansión rápido.

Prioridad y Dirección MAC
Prioridad y Dirección MAC

En cada segmento solo puede haber un puerto designado, de lo contrario tendremos un bucle. El puerto se convertirá en un puerto designado si puede enviar el mejor BPDU. El switch A, como puente raíz, siempre tendrá los mejores puertos, por lo que todas las interfaces estarán designadas. La interfaz fa0/16 en el switch B será el puerto designado en mi ejemplo, ya que tiene un mejor ID de puente que el switch C. Todavía no hay nada nuevo en comparación con el árbol de expansión clásico.

Mejor ID de puente o Bridge ID
Mejor ID de puente o Bridge ID

El switch C recibe los mejores BPDU en su interfaz fa0/16 del switch B, y por lo tanto quedará bloqueado. Este es un puerto alternativo, y sigue siendo lo mismo que para el árbol de expansión rápido.

Gráfico para BPDU
Gráfico para BPDU

Aquí tienes un nuevo puerto, echa un vistazo a la interfaz fa0/17 del switch B. Se llama puerto de reserva y es nuevo para el árbol de expansión rápido. Sin embargo, es poco probable que veas este puerto en una red de producción. Se ha añadido un concentrador entre el switch B y el switch C. Normalmente (sin concentrador intermedio), tanto fa0/16 como fa0/17 serían puertos designados. Debido al concentrador, las interfaces fa0/16 y fa0/17 del switch B ahora se encuentran en el mismo dominio de colisiones. Fa0/16 se seleccionará como puerto designado, y fa0/17 se convertirá en el puerto de reserva para la interfaz fa0/16. La razón por la que el switch B ve la interfaz fa0/17 como puerto de reserva es que recibe sus propios BPDU en las interfaces fa0/16 y fa0/17 y comprende que tiene dos conexiones con el mismo segmento. Si eliminas el concentrador, fa0/16 y fa0/17 serán puertos designados de la misma manera que el árbol de expansión clásico.

Estructura de Flags en BPDU
Estructura de Flags en BPDU

El BPDU es diferente para el árbol de expansión rápido. En el árbol de expansión clásico, el campo flags solo utilizaba dos bits:

  • Topology change.;
  • Topology change acknowledgment.;

Ahora se utilizan todos los bits del campo flags. La función del puerto que crea el BPDU se agregará mediante el campo de función del puerto, que tiene los siguientes parámetros:

  • Unknown;
  • Alternate / Backup port;
  • Root port;
  • Designated port.

Este BPDU se llama BPDUv2. Los switches que funcionan con una versión antigua del árbol de expansión ignorarán esta nueva versión del BPDU. Si te interesa… ¡el árbol de expansión rápido y el árbol de expansión antiguo son compatibles! El árbol de expansión rápido puede funcionar con switches que funcionan con una versión más antigua del árbol de expansión.

¿Qué ha cambiado?

Ahora se envían BPDU cada tiempo de hello (hello time). Solo el puente raíz genera BPDU en el árbol de expansión clásico, y se retransmiten los no raíz si los recibían en su puerto raíz. El árbol de expansión rápido funciona de manera diferente… todos los switches generan BPDU cada dos segundos (hello time). Este es el tiempo de hello predeterminado, pero puedes cambiarlo.

El árbol de expansión clásico utiliza una duración máxima (20 segundos) para los BPDU antes de que se descarten. ¡El árbol de expansión rápido funciona de manera diferente! Los BPDU ahora se utilizan como un mecanismo de mantenimiento de actividad, similar a lo que utilizan los protocolos de enrutamiento, como OSPF o EIGRP. Si un switch se salta tres BPDU de un switch vecino, considerará que la conexión a ese switch se ha perdido y eliminará inmediatamente todas las direcciones MAC.

El árbol de expansión rápido aceptará BPDU de menor nivel. El árbol de expansión clásico los ignora. La velocidad de transición (tiempo de convergencia) es la característica más importante del árbol de expansión rápido. El árbol de expansión clásico tenía que pasar por el estado de escucha y aprendizaje antes de llevar la interfaz al estado de reenvío, lo que lleva 30 segundos (temporizador predeterminado). El árbol de expansión clásico se basaba en temporizadores.

El árbol de expansión rápido no utiliza temporizadores para decidir si una interfaz puede pasar o no al estado de reenvío. Para ello, utilizará un mecanismo de negociación. Más adelante te mostraré cómo funciona.

¿Recuerdas el concepto de portfast? Si habilitamos portfast durante el inicio del árbol de expansión clásico, omitirá el estado de escucha y aprendizaje y llevará inmediatamente la interfaz al estado de reenvío. Además de llevar la interfaz al estado de reenvío, tampoco generará cambios de topología cuando la interfaz pasa al estado UP o DOWN. Todavía usamos portfast para el árbol de expansión rápido, pero ahora se llama puerto perimetral (edge port).

El árbol de expansión rápido solo puede llevar las interfaces al estado de reenvío muy rápidamente en los puertos perimetrales (portfast) o las interfaces de tipo punto a punto. Observará el tipo de enlace, y solo hay dos tipos de enlace:

  • Point-to-point (full duplex);
  • Shared (half duplex).

Normalmente usamos switches, y todas nuestras interfaces están configuradas como full duplex, el árbol de expansión rápido ve estas interfaces como punto a punto. Si introducimos un concentrador (hub) en nuestra red, tendremos half duplex, que se considera una interfaz compartida para el árbol de expansión rápido.

Introducir un concentrador en nuestra red
Introducir un concentrador en nuestra red

Permítanme describir el mecanismo de sincronización rápida del árbol de expansión, utilizando la figura de arriba. El switch A de arriba es el puente raíz. El switch B, C y D son puentes no raíz (no raíz).

Una vez que aparece una conexión entre el switch A y el switch B, sus interfaces estarán en modo de bloqueo. El switch B recibirá un BPDU del switch A, y ahora se producirá un acuerdo llamado sincronización.

Sincronización
Sincronización

Una vez que el switch B ha recibido un BPDU del puente raíz, bloquea inmediatamente todos sus puertos no designados en la lista non-edge. Los puertos no perimetrales son las interfaces para conectar con otros switches, mientras que los puertos edge son las interfaces configuradas como portfast. Una vez que el switch B bloquea sus puertos no perimetrales, la conexión entre el switch A y el switch B pasa al estado de reenvío (forwarding).

Estado de reenvío
Estado de reenvío

El switch B también ejecutará una operación de sincronización con el switch C y el switch D, para que puedan pasar rápidamente al estado de reenvío.

Lo principal que debes recordar aquí es que el árbol de expansión rápido utiliza este mecanismo de sincronización en lugar del mecanismo de “temporizador” que utiliza el árbol de expansión clásico (escuchaaprendizajeforwarding).

Mecanismo de sincronización
Mecanismo de sincronización

Aumentemos el zoom del mecanismo de sincronización del árbol de expansión rápido, examinando en detalle el switch A y el switch B. Primero, las interfaces estarán bloqueadas hasta que reciban un BPDU entre sí. En ese momento, el switch B comprenderá que el switch A es el puente raíz, ya que tiene la mejor información de BPDU. El mecanismo de sincronización comenzará porque el switch A establecerá el proposal bit en el campo de la bandera del BPDU.

RSTP
RSTP

El switch B recibe la propuesta del switch A y entiende que tiene que hacer algo. Bloqueará todas sus interfaces no perimetrales e iniciará la sincronización en dirección al switch C y el switch D.

Interfaces no perimetrales
Interfaces no perimetrales

Una vez que el switch B pasa sus interfaces al modo de sincronización, esto permitirá que el switch A lo sepa, enviando un acuerdo correspondiente.

Este acuerdo es una copia del BPDU de propuesta, donde el bit de propuesta se ha desactivado (switched off) y el bit de acuerdo se ha activado. La interfaz fa0/14 del switch B ahora pasará al modo de reenvío.

El switch B pasará al modo de reenvío
El switch B pasará al modo de reenvío

Una vez que el switch A recibe el acuerdo del switch B, lleva inmediatamente su interfaz fa0/14 al modo de reenvío. ¿Y qué pasa con la interfaz fa0/16 y fa0/19 del switch B?

Ilustración Árbol de expansión rápido
Ilustración Árbol de expansión rápido

Exactamente el mismo mecanismo de sincronización tendrá lugar ahora en estas interfaces. El switch B enviará una propuesta a través de sus interfaces fa0/16 y fa0/19 hacia el switch C y el switch D.

Intercambio de árbol de expansión rápido
Intercambio de árbol de expansión rápido

El switch C y el switch D no tienen ninguna otra interfaz, por lo que enviarán un acuerdo de vuelta al switch B.

Acuerdo de intercambio
Acuerdo de intercambio

El switch B pasará sus interfaces fa0/16 y fa0/19 al modo de reenvío, y con eso terminaremos. ¡Este mecanismo de sincronización es solo un par de mensajes que vuelan de un lado a otro, y muy rápido, es mucho más rápido que el mecanismo basado en temporizador del árbol de expansión clásico!

¿Qué más es nuevo en el árbol de expansión rápido?

Hay tres cosas más:

  • UplinkFast;
  • Mecanismo de cambio de topología;
  • Compatibilidad con el árbol de expansión clásico.

Cuando configuras el árbol de expansión clásico, debes habilitar UplinkFast manualmente. En el Rapid Spanning Tree Protocol (RSTP), el sistema ya está diseñado para una convergencia más rápida y no requiere la configuración de UplinkFast. Cuando un switch pierde su conexión raíz, RSTP activa rápidamente sus puertos alternativos gracias a sus optimizaciones en la gestión de estados.

La diferencia es que el árbol de expansión clásico necesitaba tramas multicast para actualizar las tablas de direcciones MAC de todos los switches.

Ya no lo necesitamos, ya que el mecanismo de cambio de topología para el árbol de expansión rápido es diferente. Entonces, ¿qué ha cambiado en el mecanismo de cambio de topología?

Con el árbol de expansión clásico, la falla de una conexión provocaría un cambio de topología. Con el árbol de expansión rápido, la falla de una conexión no afecta al cambio de topología. Solo las interfaces no perimetrales (que conducen a otros switches), que pasan al estado de reenvío, se consideran un cambio de topología. Una vez que el switch detecta un cambio de topología, esto ocurrirá:

  • Comenzará un cambio de topología con el valor del temporizador, que es el doble del tiempo de hello. Esto se hará para todos los puertos no perimetrales designados y raíz.
  • Limpiará las direcciones MAC que se están aprendiendo en estos puertos.
  • Mientras se produce un cambio de topología, mientras el temporizador está activo, establecerá el bit de cambio de topología en los BPDU que se envían desde estos puertos. El BPDU también se enviará desde su puerto raíz.

Cuando el switch vecino recibe este BPDU con el bit de cambio de topología establecido, ocurrirá lo siguiente:

  • Limpiará todas sus direcciones MAC en todas las interfaces, excepto en la que recibió el BPDU con el cambio de topología activado.
  • Iniciará un cambio de topología durante el mismo temporizador y enviará un BPDU a todos los puertos designados y al puerto raíz, estableciendo el bit de cambio de topología.
Cambio de topología
Cambio de topología

En lugar de enviar cambios de topología hasta el puente raíz, como lo hace el árbol de expansión clásico, el cambio de topología ahora se propaga rápidamente por toda la red.

El cambio se propaga rápidamente por toda la red
Se propaga rápidamente por toda la red

Y por último, pero no menos importante, hablemos de la compatibilidad. El árbol de expansión rápido y el árbol de expansión clásico son compatibles. Sin embargo, cuando un switch en el que funciona el árbol de expansión rápido se conecta a un switch en el que funciona el árbol de expansión clásico (classic spanning tree), ¡todas las funciones de transmisión rápida de datos no funcionarán!

En el ejemplo anterior, tengo tres switches. Entre el switch A y el switch B iniciaremos el árbol de expansión rápido. Entre el switch B y el switch C volveremos al árbol de expansión clásico.