Subnet Academy
CCNA v2.0
CCNA v2.0/Módulo 5 · Switching y acceso a la red

0% del curso completado

Lectura25% del examen

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

PuertoConfiguraciónPor qué
Acceso (PC, impresora, AP)PortFast + BPDU guardLevanta al instante; switch intruso = err-disabled
Distribución → accesoRoot guardLas BPDUs de abajo son legítimas; un root nuevo, no
Enlaces switch-switch (RP/alternate)Loop guardSilencio de BPDUs ≠ permiso para reenviar
Trunks planificadosNada 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.

Fuentes oficiales

Quiz

Comprueba lo que has aprendido

1.¿Qué problema concreto de usuario resuelve PortFast?

2.Llega una BPDU a un puerto con BPDU guard. ¿Qué ocurre y cómo se recupera?

3.¿Cuál es la diferencia esencial entre BPDU guard y root guard?

4.¿Qué fallo cubre loop guard que el spanning tree normal no puede detectar?

5.Alguien conecta bajo su mesa un switch con prioridad STP 0 a una boca sin protecciones. ¿Qué pasa?

6.¿Cuál es la configuración global estándar para los puertos de acceso de un campus?

← Anterior
Rapid PVST+: root bridge, roles y estados de puerto (2.5)