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