0% del curso completado
PortFast y los guards: BPDU, root y loop guard (2.5.c–d)
📋 En esta lección
Rapid PVST+ mantiene la topología sin bucles — pero el árbol hay que blindarlo. PortFast acelera los puertos de usuario, BPDU guard los defiende de switches intrusos, root guard impide que nadie destrone a tu root, y loop guard cubre el fallo silencioso de los enlaces unidireccionales. Cuatro herramientas, cuatro problemas concretos, y el estado err-disabled que los une.
PortFast: el puerto de usuario no espera
Un puerto de acceso hacia un PC no puede crear un bucle: al otro lado no hay switch. Y sin embargo, sin configuración especial, también él pasa por los estados de spanning tree al levantarse — un retardo absurdo que rompe cosas reales: el PC pide DHCP nada más conectar, nadie responde aún, y el usuario arranca con APIPA (lección 4.6).
PortFast salta el proceso: el puerto entra en forwarding inmediatamente. En RSTP, un puerto PortFast es un edge port (el Edge que viste en show spanning-tree) — además, sus cambios de estado no generan eventos de topología (TCN) que agiten al resto de la red.
! Por interfaz:
SW1(config-if)# spanning-tree portfast
! Global — activa PortFast en TODOS los puertos en modo acceso:
SW1(config)# spanning-tree portfast default
⚠️ ⚠️ PortFast solo en puertos de acceso
PortFast en un puerto hacia otro switch = un candidato a bucle que empieza a reenviar antes de que STP pueda evaluarlo. El propio IOS te lo advierte al configurarlo. La pareja obligatoria de PortFast es BPDU guard — precisamente para que, si aparece un switch donde no debía, el puerto se cierre solo.
BPDU guard: si hablas BPDU, fuera
Un puerto de usuario jamás debería recibir BPDUs — los hosts no las envían. Si llega una, algo anda mal: alguien conectó un switch doméstico bajo la mesa, un cable une dos rosetas, o alguien intenta manipular tu spanning tree.
BPDU guard responde sin contemplaciones: a la primera BPDU recibida, el puerto pasa a err-disabled — apagado por protección.
! Por interfaz:
SW1(config-if)# spanning-tree bpduguard enable
! Global — se aplica a todos los puertos con PortFast:
SW1(config)# spanning-tree portfast bpduguard default
La combinación global portfast default + portfast bpduguard default es el estándar de campus: todo puerto de acceso levanta al instante, y cualquier switch pirata se auto-neutraliza.
err-disabled: reconocerlo y recuperarlo
SW1# show interfaces status err-disabled
Port Name Status Reason
Fa0/7 err-disabled bpduguard
%PM-4-ERR_DISABLE: bpduguard error detected on Fa0/7, putting Fa0/7 in err-disable state
Un puerto err-disabled está caído y no vuelve solo (por defecto). Recuperación manual — tras retirar la causa:
SW1(config)# interface Fa0/7
SW1(config-if)# shutdown
SW1(config-if)# no shutdown
Opcionalmente, recuperación automática con temporizador:
SW1(config)# errdisable recovery cause bpduguard
SW1(config)# errdisable recovery interval 300
Con esto, el puerto reintenta a los 300 s — si el switch pirata sigue ahí, vuelve a caer. Útil en campus grandes donde ir físicamente al armario cuesta; en redes pequeñas, la recuperación manual obliga a enterarse de qué pasó — que suele ser mejor.
Root guard: nadie destrona a mi root
Escenario: tu root está en distribución, bien configurado con prioridad 4096. Alguien conecta en un puerto de acceso un switch con prioridad 0 — BPDUs "superiores" a las de tu root. Sin protección, toda la topología se recalcula alrededor del intruso: los uplinks se reorganizan, el tráfico de la planta cruza por un switch de sobremesa, y el rendimiento muere sin que nada "falle".
Root guard se configura en los puertos por los que jamás debería aparecer un root mejor (puertos hacia acceso, hacia abajo en la jerarquía). Si por ahí llegan BPDUs superiores, el puerto entra en estado root-inconsistent: bloqueado mientras dure la amenaza, recuperado automáticamente cuando cesan las BPDUs superiores.
SW-DISTRIB(config)# interface GigabitEthernet0/10
SW-DISTRIB(config-if)# spanning-tree guard root
%SPANTREE-2-ROOTGUARD_BLOCK: Root guard blocking port GigabitEthernet0/10 on VLAN0010
Diferencia clave con BPDU guard: BPDU guard castiga cualquier BPDU (puertos de usuario); root guard castiga solo BPDUs superiores (enlaces entre switches donde las BPDUs normales son legítimas, pero un nuevo root no).
Loop guard: el fallo unidireccional
El caso retorcido: un enlace de fibra donde una dirección muere y la otra no (transceptor degradado — la fibra TX rota pero la RX intacta). El puerto alternate de un switch deja de recibir BPDUs… e interpreta lo peor: "el camino designado ha desaparecido, me toca reenviar". Pasa a forwarding — pero el otro extremo sigue vivo y reenviando. Bucle, del tipo que STP no puede ver porque su información de entrada es justo la que se ha perdido.
Loop guard invierte la reacción: un puerto que dejaba de recibir BPDUs donde solía recibirlas no pasa a forwarding — pasa a loop-inconsistent (bloqueado) hasta que las BPDUs regresen.
! En puertos root y alternate (enlaces switch-switch):
SW2(config-if)# spanning-tree guard loop
! O global:
SW2(config)# spanning-tree loopguard default
El mapa completo: qué va en cada puerto
| Puerto | Configuración | Por qué |
|---|---|---|
| Acceso (PC, impresora, AP) | PortFast + BPDU guard | Levanta al instante; switch intruso = err-disabled |
| Distribución → acceso | Root guard | Las BPDUs de abajo son legítimas; un root nuevo, no |
| Enlaces switch-switch (RP/alternate) | Loop guard | Silencio de BPDUs ≠ permiso para reenviar |
| Trunks planificados | Nada de PortFast; DTP off (nonegotiate) | Lección 5.2 |
Las cuatro piezas cuentan una sola historia: la topología L2 debe ser la que diseñaste — rápida donde no hay riesgo, cerrada donde alguien pueda alterarla, y desconfiada donde el silencio pueda mentir.
Verificación
SW1# show spanning-tree interface Fa0/5 detail
Port 5 (FastEthernet0/5) of VLAN0010 is designated forwarding
The port is in the portfast edge mode
Bpdu guard is enabled
Root guard is disabled
SW1# show spanning-tree summary
Switch is in rapid-pvst mode
Portfast Default is enabled
Portfast Edge BPDU Guard Default is enabled
Loopguard Default is disabled
SW1# show interfaces status err-disabled ← ¿algún puerto castigado y por qué?
Relación con otros conceptos
- El retardo que PortFast elimina es el proceso de estados de las lecciones 5.7-5.8; el DHCP que salva, el de las lecciones 4.6 y 8.1.
- BPDU guard y root guard son la frontera defensiva del árbol que construiste en la 5.8 — y reaparecen en el endurecimiento L2 de la lección 10.6 junto a port security y DHCP snooping.
- err-disabled es el mismo estado que usa port security en sus violaciones (lección 2.3) — mismo diagnóstico, misma recuperación.
- El diseño por roles de puerto (acceso vs troncal) conecta con la próxima lección: configurar cada boca según el endpoint que la usa.
Resumen
PortFast lleva los puertos de acceso a forwarding al instante (edge ports, sin TCNs) — solo donde no hay switches. BPDU guard, su pareja obligada: una BPDU en un puerto de usuario = err-disabled (recuperación con shutdown/no shutdown o errdisable recovery). Root guard en los puertos "hacia abajo": las BPDUs superiores que intentarían destronar al root dejan el puerto root-inconsistent hasta que cesen. Loop guard en RP/alternates: si las BPDUs esperadas desaparecen (enlace unidireccional), el puerto se bloquea en vez de asumir que puede reenviar. Global de campus: portfast default + portfast bpduguard default, root guard en distribución, loop guard en uplinks.