Todo sobre el Protocolo MST Multiple Spanning Tree Protocol
Todo sobre el Protocolo MST Multiple Spanning Tree Protocol

Protocolo MST: Multiple Spanning Tree Protocol

En artículos anteriores, hablamos sobre el árbol de expansión clásico (STP) y el rapid spanning three (RSTP). MST (Árbol de Expansión Múltiple) es la tercera variante del árbol de expansión.

Este artículo hablará sobre las características del protocolo de árbol de expansión múltiple (MST), comparándolo con otras versiones del protocolo STP. También se mostrarán las configuraciones básicas del protocolo y algunas sutilezas de su implementación.

Por defecto, los switches Cisco Catalyst utilizan PVST+ o Rapid PVST+ (Per VLAN Spanning Tree). Esto significa que cada VLAN se asocia con una instancia de árbol de expansión. Si tienes 20 redes VLAN en tu switch, esto significa que tendrás 20 instancias de árbol de expansión.

¿Es esto un problema? Lo veremos más adelante… por ahora, veamos un ejemplo:

Árbol de Expansión Múltiple = Multiple Spanning Tree (MST)

Ejemplo de Topología
Ejemplo de Topología

Fíjate en esta topología. Hay tres switches y varias redes VLAN. En total hay 201 VLAN. Si usas PVST o Rapid PVST, tendrás 201 cálculos para cada VLAN. Esto requiere tiempo de CPU y mucha memoria.

Cuando SWB es el puente raíz para las VLAN 100-200 y SWC para las VLAN 201-300, las topologías de spanning-tree se verán así:

VLAN 100-200 y 201-300
VLAN 100-200 y 201-300

El switch B es el puente raíz para las VLAN 100 a la VLAN 200. Esto significa que la interfaz fa0/17 en switch A o la interfaz fa0/14 en switch C se bloqueará. Habrá 100 cálculos de árbol de expansión, pero todos se verán iguales para estas VLAN…

Lo mismo aplica para las VLAN 201-300. SW3 es el puente raíz para las VLAN 201 a 300. La interfaz fa0/14 en SWA o SWB se bloqueará para todas estas VLAN.

Dos resultados diferentes, pero todavía tengo 201 instancias diferentes de árbol de expansión. ¿No es una pérdida de recursos de CPU y memoria?

MST (Multiple Spanning Tree), descrito en el estándar IEEE 802.1s, resolverá este problema. En lugar de calcular el árbol de expansión para cada VLAN, puedes usar instancias (instances) y asignar las VLAN a cada instancia. Para la red anterior, puedes hacer algo como esto:

  • instance 1: VLAN 100-200
  • instance 2: VLAN 201-300

De esta forma, solo necesitas dos cálculos de árbol de expansión (instancias) para todas estas redes VLAN.

MST funciona con el concepto de regiones. Los switches configurados para usar MST deben averiguar si sus vecinos también utilizan MST.

Gráfico de regiones del Protocolo Árbol Expansión Múltiple MST
Gráfico de regiones del Protocolo Árbol Expansión Múltiple MST

Cuando los switches tienen los mismos atributos, estarán en la misma región. Pero también es posible que haya una o varias regiones. Estos son los atributos que deben coincidir en las regiones vecinas:

  • Nombre de configuración MST.
  • Número de versión de configuración MST.
  • Instancia MST para la tabla de asignación de VLAN.

Cuando los switches tienen los mismos atributos, estarán en la misma región. Si los atributos no coinciden, el switch se considera que está en el límite de la región. Puede estar conectado a otra región MST, pero también se comunicará con el switch que ejecuta otra versión de STP.

El nombre de configuración MST es el atributo que puedes especificar para usarlo en la identificación de la región MST. También debes configurar el número de revisión de configuración MST, y la idea de este número es que puedes cambiarlo al cambiar la configuración.

Dentro de la región MST habrá una instancia de árbol de expansión, que creará una topología libre de bucles en la región. Al configurar MST, siempre existe una instancia predeterminada que se utiliza para calcular la topología en la región. Se llama IST (Internal Spanning Tree). Por defecto, Cisco usará la instance 0 para ejecutar IST. En realidad, esto es un rapid spanning tree que se ejecuta en MST.

Ilustración de MST Region Instance 0
Ilustración de MST Region Instance 0

Quiero crear la instancia 1 para las VLAN 100-200 y la instancia 2 para las VLAN 201-300. Dependiendo de qué switch se convierta en el puente raíz para cada instancia, diferentes puertos se bloquearán. Se verá así:

Otra ilustración de MST
Otra ilustración de MST

Un switch fuera de la región MST no ve cómo se ve la región MST. Para este switch, es como comunicarse con un switch grande o una “caja negra”:

Región MST Exterior
Región MST Exterior

Juguemos un poco con la configuración.

Configuración MST

Usaremos la siguiente topología:

Ejemplo de topología de configuración MST
Ejemplo de topología de configuración MST

Empezaremos con una región MST con los siguientes atributos:

  • Nombre de configuración MST: “REGION-1
  • Número de versión de configuración MST: 1
  • Instancia MST para la tabla de asignación de VLAN:
    • Instancia 2: VLAN 10, 20 y 30.
    • Instancia 3: VLAN 40, 50 y 60.

Estos son los primeros pasos:

SW1(config)#spanning-tree mode mst
SW2(config)#spanning-tree mode mst
SW3(config)#spanning-tree mode mst

Así se activa MST en los switches. Veamos la instancia MST predeterminada:

SW1#show spanning-tree mst configuration
Name []
Revision 0 Instances configured 1

Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 1-4094
-------------------------------------------------------------------------------

SW2#show spanning-tree mst configuration
Name []
Revision 0 Instances configured 1

Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 1-4094
-------------------------------------------------------------------------------

SW3#show spanning-tree mst configuration
Name []
Revision 0 Instances configured 1

Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 1-4094
-------------------------------------------------------------------------------

Puedes usar el comando show spanning-tree mst configuration para ver las instancias MST. No se han creado instancias adicionales, por lo que solo está disponible la instancia 0. Puedes ver que todas las VLAN están actualmente asignadas a la instancia 0. Veamos qué más podemos ver:

SW1#show spanning-tree mst

##### MST0 vlans mapped: 1-4094
Bridge address 0011.bb0b.3600 priority 32768 (32768 sysid 0)
Root address 000f.34ca.1000 priority 32768 (32768 sysid 0)
port Fa0/17 path cost 0
Regional Root address 000f.34ca.1000 priority 32768 (32768 sysid 0)
internal cost 200000 rem hops 19
Operational hello time 2 , forward delay 15, max age 20, txholdcount 6
Configured hello time 2 , forward delay 15, max age 20, max hops 20

Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.16 P2p
Fa0/17 Root FWD 200000 128.19 P2p

También puedes usar el comando show spanning-tree mst. Aquí verás el mapeo de VLAN, así como información sobre el puente raíz. Antes de agregar instancias adicionales, deberás agregar algunas VLAN y configurar las conexiones entre los switches como trunks:

SW1(config)#interface fa0/14
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW1(config)#interface fa0/17
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW2(config)#interface fa0/14
SW2(config-if)#switchport trunk encapsulation dot1q
SW2(config-if)#switchport mode trunk
SW2(config)#interface fa0/16
SW2(config-if)#switchport trunk encapsulation dot1q
SW2(config-if)#switchport mode trunk
SW3(config)#interface fa0/14
SW3(config-if)#switchport trunk encapsulation dot1q
SW3(config-if)#switchport mode trunk
SW3(config)#interface fa0/16
SW3(config-if)#switchport trunk encapsulation dot1q
SW3(config-if)#switchport mode trunk

Ahora configuremos las VLAN:

SW1, SW2 & SW3:
(config)#vlan 10
(config-vlan)#vlan 20
(config-vlan)#vlan 30
(config-vlan)#vlan 40
(config-vlan)#vlan 50
(config-vlan)#vlan 60
(config-vlan)#exit

Ahora podemos configurar MST y las instancias:

SW1(config)#spanning-tree mst configuration
SW1(config-mst)#name Networklessons
SW1(config-mst)#revision 1
SW1(config-mst)#instance 2 vlan 10,20,30
SW1(config-mst)#instance 3 vlan 40,50,60
SW1(config-mst)#exit
SW2(config)#spanning-tree mst configuration
SW2(config-mst)#name Networklessons
SW2(config-mst)#revision 1
SW2(config-mst)#instance 2 vlan 10,20,30
SW2(config-mst)#instance 3 vlan 40,50,60
SW2(config-mst)#exit
SW3(config)#spanning-tree mst configuration
SW3(config-mst)#name Networklessons
SW3(config-mst)#revision 1
SW3(config-mst)#instance 2 vlan 10,20,30
SW3(config-mst)#instance 3 vlan 40,50,60
SW3(config-mst)#exit

Así se configura MST. Primero necesitarás el comando de configuración spanning-tree mst para ingresar a la configuración MST. Establece el nombre usando el comando name. No olvides establecer el número de revisión y asignar las instancias usando el comando instance. Veamos cómo funciona:

SW1#show spanning-tree mst configuration
Name [Networklessons]
Revision 1 Instances configured 3

Instance Vlans mapped
-------- ---------------------------------------------------------------------
0 1-9,11-19,21-29,31-39,41-49,51-59,61-4094
2 10,20,30
3 40,50,60
-------------------------------------------------------------------------------

Usa el comando show spanning-tree mst configuration para verificar la configuración. Puedes ver que hay dos instancias. Las VLAN se asignan a las instancias 2 y 3. Todas las demás VLAN todavía se asignan a la instancia 0.

Hasta ahora, todo bien. Experimentemos un poco más con MST y cambiemos el puente raíz:

Experimento con MST
Experimento con MST

Quiero asegurarme de que SW1 sea el puente raíz en la región. Necesitaremos cambiar la prioridad para IST:

SW1(config)#spanning-tree mst 0 priority 4096

Así se cambia la prioridad para la instancia MST 0.

SW1#show spanning-tree mst

##### MST0 vlans mapped: 1-9,11-19,21-29,31-39,41-49,51-59,61-4094
Bridge address 0011.bb0b.3600 priority 4096 (4096 sysid 0)
Root this switch for the CIST

Aquí puedes ver que SW1 es el puente raíz para IST. Se menciona CIST, que significa Common and Internal Spanning Treee.

Veamos las interfaces:

SW1#show spanning-tree mst 0 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.16 P2p
Fa0/17 Desg FWD 200000 128.19 P2p
SW2#show spanning-tree mst 0 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Root FWD 200000 128.16 P2p
Fa0/16 Altn BLK 200000 128.18 P2p
SW3#show spanning-tree mst 0 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Root FWD 200000 128.14 P2p
Fa0/16 Desg FWD 200000 128.16 P2p

Ahora sabemos el estado de todas las interfaces. Dibujemos un diagrama para entender cómo se ve IST:

Diagrama de IST
Diagrama de IST

Ahora quiero hacer algunos cambios en la instancia 2, por lo que SW2 será el puente raíz:

SW2(config)#spanning-tree mst 2 priority 4096

Cambiamos la prioridad en SW2 para la instancia 2.

SW2#show spanning-tree mst 2

MST2 vlans mapped: 10,20,30
Bridge address 0019.569d.5700 priority 4098 (4096 sysid 2)
Root this switch for MST2

Este comando demuestra que SW2 es el puente raíz para la instancia 2. Veamos las interfaces:

SW1#show spanning-tree mst 2 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Root FWD 200000 128.16 P2p
Fa0/17 Altn BLK 200000 128.19 P2p
SW2#show spanning-tree mst 2 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.16 P2p
Fa0/16 Desg FWD 200000 128.18 P2p
SW3#show spanning-tree mst 2 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.14 P2p
Fa0/16 Root FWD 200000 128.16 P2p

Así se ve la instancia 2. Hagamos un diagrama para visualizarla:

Diagrama de la instancia 2
Diagrama de la instancia 2

Esta es la imagen de la instancia 2 que muestra los roles de los puertos. Observa que esta topología es diferente a la de la instancia 0.

Por último, pero no menos importante, voy a hacer algunos cambios en la instancia 3:

SW3(config)#spanning-tree mst 3 priority 4096

SW3 se convertirá en el puente raíz para la instancia 3.

SW3#show spanning-tree mst 3

MST3 vlans mapped: 40,50,60
Bridge address 000f.34ca.1000 priority 4099 (4096 sysid 3)
Root this switch for MST3

SW3 ahora es el puente raíz para la instancia 3. Veamos las interfaces:

SW1#show spanning-tree mst 3 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.16 P2p
Fa0/17 Root FWD 200000 128.19 P2p
SW2#show spanning-tree mst 3 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Altn BLK 200000 128.16 P2p
Fa0/16 Root FWD 200000 128.18 P2p
SW3#show spanning-tree mst 3 | begin Interface
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/14 Desg FWD 200000 128.14 P2p
Fa0/16 Desg FWD 200000 128.16 P2p

Ahora podemos crear otro diagrama de la topología:

Diagrama de la instancia 3
Diagrama de la instancia 3

Comparemos las instancias 2 y 3 una al lado de la otra:

Diagrama comparativo de la instancia 2 y la instancia 3
Diagrama comparativo de la instancia 2 y la instancia 3

A la izquierda puedes ver la instancia 2, y a la derecha, la instancia 3.

Al cambiar la instancia del puente raíz, obtenemos diferentes topologías:

  • Instancia 2: fa0/17 en SW1 está bloqueado para las VLAN 10, 20 y 30.
  • Instancia 3: fa0/14 en SW2 está bloqueado para las VLAN 40, 50 y 60.

¿Qué pasará cuando agregue otro switch que funciona con PVST a la topología? ¡Averigüémoslo!

SW4(config)#spanning-tree mode pvst

PVST se usa de manera predeterminada para la mayoría de los switches Cisco.

SW4(config)#interface fa0/16
SW4(config-if)#switchport trunk encapsulation dot1q
SW4(config-if)#switchport mode trunk
SW4(config)#interface fa0/19
SW4(config-if)#switchport trunk encapsulation dot1q
SW4(config-if)#switchport mode trunk

SW4(config)#vlan 10
SW4(config-vlan)#vlan 20
SW4(config-vlan)#vlan 30
SW4(config-vlan)#vlan 40
SW4(config-vlan)#vlan 50
SW4(config-vlan)#vlan 60
SW4(config-vlan)#exit

Quiero asegurarme de que tengamos un trunk para SW2 y SW3, y que SW4 conozca todas las VLAN. Veamos qué piensa SW4 sobre todo esto:

SW4#show spanning-tree vlan 1

VLAN0001
Spanning tree enabled protocol ieee
Root ID Priority 4096
Address 0011.bb0b.3600
Cost 19
Port 19 (FastEthernet0/19)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 0009.7c36.2880
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300

Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/16 Altn BLK 19 128.16 P2p
Fa0/19 Root FWD 19 128.19 P2p

Esto es lo que SW4 ve en la red VLAN 1. Recuerda que esta VLAN estaba asignada a la instancia 0. Ve a SW1 como el puente raíz, y puedes ver qué puerto está en modo de reenvío y bloqueo.

SW4#show spanning-tree vlan 10

VLAN0010
Spanning tree enabled protocol ieee
Root ID Priority 4096
Address 0011.bb0b.3600
Cost 19
Port 19 (FastEthernet0/19)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32778 (priority 32768 sys-id-ext 10)
Address 0009.7c36.2880
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300

Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/16 Altn BLK 19 128.16 P2p
Fa0/19 Root FWD 19 128.19 P2p

VLAN 10 está asignada a la instancia 2. SW4 considera a SW1 como el puente raíz para esta VLAN, aunque hemos configurado SW2 como el puente raíz para la instancia 2. Esto es completamente normal, ya que MST enviará BPDU de IST al mundo exterior. No veremos ninguna información de la instancia 2 o la instancia 3 en SW4.

SW4#show spanning-tree vlan 40

VLAN0040
Spanning tree enabled protocol ieee
Root ID Priority 4096
Address 0011.bb0b.3600
Cost 19
Port 19 (FastEthernet0/19)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32808 (priority 32768 sys-id-ext 40)
Address 0009.7c36.2880
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300

Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/16 Altn BLK 19 128.16 P2p
Fa0/19 Root FWD 19 128.19 P2p

VLAN 40 está asignada a la instancia 3, pero puedes ver que SW4 ve a SW1 como el puente raíz. SW4 recibe el mismo BPDU para todas las redes VLAN.

Espero que este artículo te haya sido útil y hayas aprendido mucho.

¡Gracias por tomarte el tiempo para leerlo!

Si tienes alguna pregunta, hazla en los comentarios.