Pruebas con spanning-tree root guard

Fecha: 6 de febrero del 2023

 

Escenario

 

Este escenario es una continuación del escenario #225 sobre agregar una VLAN en un trunk inter-switch que causa downtime en servers,

y aquí como solución preventiva se evalúa la configuración de la función root guard para evitar que el switch 2960-1 se convierta en root

de la VLAN 20, y por lo tanto no se generen cortes entre los servers del otro switch.

 

 

El root guard se  utiliza para bloquear  BPDUs que se identifiquen como root en un puerto determinado, de esta  manera se evita

que si un nuevo switch entra a formar parte de la topología y tiene un ID menor, entonces se pueda volver el root y  hacer que la

red converja con respecto a él modificando la operatoria de los uplinks existentes.

 

El tema es que root guard se aplica sobre el puerto y no a una VLAN determinada en un puerto, por lo tanto el bloqueo será en ambas

VLANs afectadas al puerto (si es que el switch del otro extremo es elegible como root), evitando que los servers pierdan conectividad

entre sí, pero generando también la pérdida de conectividad entre switches en la VLAN 1 y por lo tanto la gestión de 2960-2 quedando

aislado para la resolución de problemas vía Telnet/SSH, y deberíamos recurrir al cable de consola en forma local, o a otra magia para

desbloquear este problema.

 

1.- Verificación previa (sin la VLAN 20 en el trunk del switch 2960-2) :

 

2960-2#sh spanning-tree

 

VLAN0001

  Spanning tree enabled protocol ieee

  Root ID    Priority    32769

             Address     005f.86a7.2a00 (switch 2960-1)

             Cost        4

             Port        24 (GigabitEthernet1/0/24)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)

             Address     005f.86a7.c080 (este switch)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time  300 sec

 

Interface           Role Sts Cost      Prio.Nbr Type

------------------- ---- --- --------- -------- --------------------------------

Gi1/0/24           Root FWD 4          128.24   P2p

 

VLAN0020

  Spanning tree enabled protocol ieee

  Root ID    Priority    32788

             Address     005f.86a7.c080

             This bridge is the root (al ser un switch standalone en esta VLAN)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32788  (priority 32768 sys-id-ext 20)

             Address     005f.86a7.c080

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time  300 sec

 

Interface           Role Sts Cost      Prio.Nbr Type

------------------- ---- --- --------- -------- --------------------------------

Gi1/0/1             Desg FWD 4         128.1    P2p (servers conectados al switch)

Gi1/0/2             Desg FWD 4         128.2   P2p  (servers conectados al switch)

 

2960-2#

 

2.- Configuramos el root guard:

 

2960-2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

2960-2(config)#int gi1/0/24

2960-2(config-if)#spanning-tree guard root

2960-2(config-if)#

 

Feb 6 07:01:03.502: %SPANTREE-2-ROOTGUARD_CONFIG_CHANGE: Root guard enabled on port GigabitEthernet1/0/24.

Feb 6 07:01:03.509: %SPANTREE-2-ROOTGUARD_BLOCK: Root guard blocking port GigabitEthernet1/0/24 on VLAN0001.

 

Detalle: podemos ver que ni bien se activa el root-guard entra en bloqueo la VLAN 1 de la que el switch 2960-1 es el root.

 

3.- Agregamos la VLAN 20 en el trunk:

 

2960-2(config-if)#switchport trunk all vlan add 20

2960-2(config-if)#

 

Feb 6 07:01:14.799: %SPANTREE-2-ROOTGUARD_BLOCK: Root guard blocking port GigabitEthernet1/0/24 on VLAN0020.

 

2960-2(config-if)#

 

4.- Verificamos:

 

2960-2#sh spanning-tree

 

VLAN0001

  Spanning tree enabled protocol ieee

  Root ID    Priority    32769

             Address     005f.86a7.c080

             This bridge is the root (al quedar el trunk en bloqueo queda standalone)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)

             Address     005f.86a7.c080

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time  15  sec

 

Interface           Role Sts Cost      Prio.Nbr Type

------------------- ---- --- --------- -------- --------------------------------

Gi1/0/24           Desg BKN*4         128.24   P2p *ROOT_Inc

 

VLAN0020

  Spanning tree enabled protocol ieee

  Root ID    Priority    32788

             Address     005f.86a7.c080

             This bridge is the root (al quedar el trunk en bloqueo queda standalone)

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

 

  Bridge ID  Priority    32788  (priority 32768 sys-id-ext 20)

             Address     005f.86a7.c080

             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

             Aging Time  15  sec

 

Interface           Role Sts Cost      Prio.Nbr Type

------------------- ---- --- --------- -------- --------------------------------

Gi1/0/1             Desg FWD 4         128.1     P2p

Gi1/0/2             Desg FWD 4         128.2     P2p

Gi1/0/24           Desg BKN*4         128.24   P2p *ROOT_Inc

 

2960-2#

 

5.- Resumen:

 

Con esta funcionalidad evitaríamos el downtime entre servers pero el switch quedaría aislado del resto de la red, lo que no es algo funcional.

Considerando este lab podría ser una opción que 2960-2 se convirtiese en root de la VLAN 1 pero en un caso real donde 2960-1 es el centro

de una topología más compleja tal vez no fuese una opción viable.

 

Seguimos optando por las soluciones del lab #225 (asegurarse que el switch 2960-2 sea el root de la VLAN 20 con una priority baja antes de

agregar la VLAN al trunk), y esta solución del root guard queda descartada al menos para este escenario.

 

 

 

(2023) Block, block, blocking on the switches ports

Rosario, Argentina