STP (PVST+) — Configuración
Spanning Tree Protocol evita bucles de capa 2 bloqueando enlaces redundantes y dejando una topología libre de lazos. Esta nota cubre PVST+ (la versión por defecto en switches Cisco): elección de root bridge, ajuste de prioridades y costos, y verificación. Las protecciones (PortFast, BPDU Guard, Root Guard, Loop Guard) están en Portfast, BDPU Guard & Filter, Root Guard, Loop Guard - Configuración; la validación en STP (PVST+) - Verificación y el diagnóstico en STP (PVST+) - Troubleshooting. RSTP en RSTP - Configuración y MST en MST - Configuración.
Prerrequisitos
- STP está habilitado por defecto en los switches Cisco; no hay que activarlo.
- Definir en el diseño qué switch debe ser el root bridge de cada VLAN (normalmente el switch de distribución/core).
- Estar en configuración global o de interfaz según el comando.
Conceptos previos (mínimos para configurar bien)
Elección del root bridge
- El switch con el menor BID (Bridge ID) es elegido root bridge.
- El BID se compone de: prioridad (por defecto 32768) + sys-id-ext (número de VLAN) + dirección MAC. Por eso en la VLAN 1 la prioridad aparece como 32769 (32768 + 1).
- El Root ID y el BID viajan en los BPDUs. El BID identifica a un switch; el Root ID identifica al root bridge.
Elección del root port
- Es la interface del switch con el camino de menor costo total hacia el root bridge. Los root ports quedan en estado Forwarding.
- Desempates (en orden): menor costo total al root, luego menor BID del vecino, luego menor port ID del vecino.
Costos de interfaces
| Velocidad | Costo 802.1D 1998 (short) | Costo 802.1D 2004 (long) |
|---|---|---|
| 10 Mbps | 100 | 2.000.000 |
| 100 Mbps | 19 | 200.000 |
| 1 Gbps | 4 | 20.000 |
| 10 Gbps | 2 | 2.000 |
| 100 Gbps | No existe | 200 |
| 1 Tbps | No existe | 20 |
Para usar el método de costo largo (recomendado con enlaces de alta velocidad):
Switch(config)# spanning-tree pathcost method long
Estados de los puertos y timers
Estados: Disabled, Blocking, Listening, Learning, Forwarding.
Timers: Hello 2 seg, Max Age 20 seg, Forward Delay 15 seg (la convergencia clásica de STP tarda alrededor de 30-50 seg).
Versiones de Spanning-Tree (contexto)
| Versión | Instancias | Convergencia | Notas |
|---|---|---|---|
| STP (IEEE 802.1D) | 1 sola | Lenta | Bajo uso de memoria/CPU |
| PVST+ | 1 por cada VLAN | Lenta | Alto uso de memoria/CPU, propiedad de Cisco |
| RSTP (IEEE 802.1w) | 1 sola | Rápida | Uso medio |
| Rapid PVST+ | 1 por cada VLAN | Rápida | Propiedad de Cisco, alto uso |
| MST (IEEE 802.1s) | 1 (RSTP) por conjunto de VLANs | Rápida | Uso medio-alto; equivalente Cisco llamado MST |
Comandos de configuración
Nota (añadido pro): el modo de STP se fija con
spanning-tree mode {pvst | rapid-pvst | mst}. En Cisco el modo por defecto es PVST+.
Cambiar el root bridge (prioridad)
Switch(config)# spanning-tree vlan número-vlan priority valor
Switch(config)# spanning-tree vlan número-vlan root primary
Switch(config)# spanning-tree vlan número-vlan root secondary
priority valor: la prioridad debe ser múltiplo de 4096 (0, 4096, 8192, … 61440).root primary: el switch se pone como root de esa VLAN (ajusta su prioridad, típicamente a 24576).root secondary: queda como root de respaldo (prioridad típica 28672).
Cambiar parámetros de interfaces
Switch(config-if)# spanning-tree vlan número-vlan port-priority valor-prioridad
Switch(config-if)# spanning-tree vlan número-vlan cost valor-costo
port-priority: influye en el desempate de root/designated port (menor gana; por defecto 128, múltiplos de 16).cost: fuerza el costo de la interface para influir en la elección del camino.
Dos ejemplos completos de configuración
Ejemplo 1 — Root bridge primario y secundario por VLAN
Diseño: SW1 debe ser el root de la VLAN 10 y respaldo de la VLAN 20. SW2 al revés (root de la 20, respaldo de la 10). Esto reparte la carga entre los dos switches.
SW1:
SW1# configure terminal
SW1(config)# spanning-tree vlan 10 root primary
SW1(config)# spanning-tree vlan 20 root secondary
SW1(config)# end
SW1# copy running-config startup-config
SW2:
SW2# configure terminal
SW2(config)# spanning-tree vlan 20 root primary
SW2(config)# spanning-tree vlan 10 root secondary
SW2(config)# end
SW2# write memory
Ejemplo 2 — Prioridad manual y ajuste de costo/port-priority
Diseño: en SW1, fijar manualmente la prioridad de la VLAN 1 a 24576 para que sea root, y forzar el costo y la port-priority en una interface para dirigir el camino.
SW1# configure terminal
! Método de costo largo (mejor con enlaces rápidos)
SW1(config)# spanning-tree pathcost method long
! Prioridad manual (múltiplo de 4096)
SW1(config)# spanning-tree vlan 1 priority 24576
! Ajustar una interface concreta
SW1(config)# interface fastEthernet 0/1
SW1(config-if)# spanning-tree vlan 1 cost 100
SW1(config-if)# spanning-tree vlan 1 port-priority 64
SW1(config-if)# end
SW1# write memory
Verificación rápida (comprobar que quedó bien)
La verificación detallada está en STP (PVST+) - Verificación.
! Estado general de STP por VLAN
SW1# show spanning-tree
! STP de una VLAN concreta (¿quién es root?)
SW1# show spanning-tree vlan 10
! Puertos bloqueados por STP
SW1# show spanning-tree blocked ports
Qué deberías ver:
- En
show spanning-tree vlan 10, si SW1 es root, apareceThis bridge is the root. - Los root ports y designated ports en estado
FWD(Forwarding), y los enlaces redundantes enBLK(Blocking).
Sobre lo añadido:
spanning-tree mode, los múltiplos de prioridad (4096) y port-priority (16), y las notas de timers/convergencia son complementos profesionales; los comandos de tus diapositivas (spanning-tree vlan ... priority/root primary/root secondary/port-priority/cost,spanning-tree pathcost method long, y losshow spanning-tree ...) están todos incluidos. Si quieres que quite algo, dime.