Questo documento descrive le funzionalità di miglioramento di PortFast e Bridge Protocol Data Unit (BPDU) Guard del protocollo Spanning Tree Protocol (STP).
Nessun requisito specifico previsto per questo documento.
Queste versioni software hanno introdotto la protezione BPDU STP PortFast:
Software Cisco IOS® versione 12.0(7)XE per piattaforme Catalyst 6500/6000
Software Cisco IOS release 12.1(8a)EW per Catalyst 4500/4000 Supervisor Engine III
Software Cisco IOS release 12.1(12c)EW per Catalyst 4500/4000 Supervisor Engine IV
Software Cisco IOS release 12.0(5)WC5 per Catalyst serie 2900XL e 3500XL
Software Cisco IOS release 12.1(11)AX per gli switch Catalyst serie 3750
Software Cisco IOS release 12.1(14)AX per gli switch Metro Catalyst 3750
Software Cisco IOS release 12.1(19)EA1 per gli switch Catalyst serie 3560
Software Cisco IOS release 12.1(4)EA1 per gli switch Catalyst serie 3550
Software Cisco IOS release 12.1(11)AX per gli switch Catalyst serie 2970
Software Cisco IOS release 12.1(12c)EA1 per gli switch Catalyst serie 2955
Software Cisco IOS release 12.1(6)EA2 per gli switch Catalyst serie 2950
Software Cisco IOS release 12.1(11)EA1 per gli switch Catalyst 2950 Long-Reach Ethernet (LRE)
Software Cisco IOS release 12.1(13)AY per gli switch Catalyst serie 2940
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
In una rete a commutazione progettata correttamente, il protocollo STP (Spanning Tree Protocol) impedisce i loop di livello 2 posizionando i percorsi ridondanti in uno stato di blocco. Tutte le porte che vengono visualizzate passano normalmente attraverso gli stati STP (ascolto, apprendimento e infine inoltro) prima di passare il traffico utente. Questo ritardo di convergenza, di circa 30 secondi con il tradizionale 802.1D, è appropriato per i collegamenti da switch a switch ma non è necessario per le porte connesse a host terminali quali PC, server o stampanti, che non possono creare un loop di switching da sole.
Il problema è che una porta che si connette a un host terminale non deve ricevere assolutamente unità BPDU (Bridge Protocol Data Unit) STP. Se le BPDU arrivano su una porta di questo tipo, in genere viene segnalato uno dei due problemi seguenti: un utente ha collegato uno switch non autorizzato o un dispositivo esegue un software che emula un bridge. Entrambi i casi possono destabilizzare la topologia, in particolare se il dispositivo non autorizzato annuncia un ID bridge superiore e forza una scelta di bridge radice a cui non deve mai partecipare.
Un esempio reale illustra il rischio. Un PC utente che esegue un'applicazione di bridging basata su Linux è stato collegato a una porta di accesso. Poiché l'applicazione ha inviato BPDU che rivendicano una bassa priorità del bridge, la rete ha scelto il PC come root bridge. Ciò ha spostato l'intera topologia spanning-tree verso un host sottoalimentato, congestionando i collegamenti e causando un'interruzione della rete. La funzione BPDU Guard è presente per prevenire questa classe di guasti.
PortFast esegue immediatamente la transizione di una porta di accesso o trunk dallo stato di blocco direttamente allo stato di inoltro, ignorando le fasi di ascolto e apprendimento. In questo modo viene eliminato il ritardo all'avvio delle porte connesse ai dispositivi terminali, un fattore importante per gli host che si aspettano un accesso immediato alla rete (ad esempio, le workstation che usano DHCP all'avvio).
PortFast è destinato solo alle porte connesse a una singola unità terminale. Abilitandolo su una porta che si collega a un altro switch, si reintroduce il rischio di loop che il protocollo STP è progettato per prevenire, perché la porta inizia l'inoltro prima che il protocollo STP abbia la possibilità di rilevare un percorso ridondante.
BPDU Guard integra la funzione PortFast presupponendo che una porta abilitata a PortFast non debba mai vedere una BPDU. Quando BPDU Guard è abilitato e la porta riceve un BPDU, lo switch chiude immediatamente la porta disabilitandola in stato err-disabled. In questo modo la topologia viene protetta in due modi:
Poiché la porta è disabilitata a livello amministrativo anziché bloccata, viene richiamata l'attenzione dell'operatore di rete sull'evento e il dispositivo in questione viene isolato correttamente finché il problema non viene risolto.
Se la porta è stata disabilitata a causa di un errore, il ripristino non viene eseguito correttamente a meno che non sia stata configurata la funzione di ripristino da uno stato di errore. È possibile riabilitare l'interfaccia manualmente (shutdown seguito da no shutdown) o configurare il ripristino automatico per la causa BPDU Guard.
Questo messaggio è un esempio:
2000 May 12 15:13:32 %SPANTREE-2-RX_PORTFAST:Received BPDU on PortFast enable port. Disabling 2/1 2000 May 12 15:13:32 %PAGP-5-PORTFROMSTP:Port 2/1 left bridge port 2/1
Prendiamo in considerazione l'esempio successivo:
Connessione bridge
La topologia è composta da tre switch che formano il core e i livelli di accesso, più un dispositivo terminale:
Lasciando tutti gli altri parametri STP ai valori predefiniti, la funzione STP converge come previsto. Lo switch A viene scelto come root e il percorso ridondante viene bloccato in modo da interrompere il loop; in particolare, la porta dello switch C rivolta verso lo switch B viene messa nello stato di blocco (mostrato dalla "X" rossa su quel collegamento). Le frecce tratteggiate tracciano il normale flusso delle BPDU STP attraverso la topologia. Questa situazione può essere vista come una rete stabile in cui PortFast fornisce connettività immediata al Device D, mentre STP gestisce in modo silenzioso i collegamenti core ridondanti.
L'applicazione Bridge basata su Linux viene avviata su un PC
Nell'esempio viene mostrato cosa succede quando il dispositivo D smette di comportarsi come un host terminale semplice e inizia a partecipare a STP, esattamente come lo scenario in cui BPDU Guard è progettato per arrestarsi. Sul PC (Device D) viene avviata un'applicazione bridge basata su Linux. L'applicazione annuncia una priorità bridge di 0 (o qualsiasi valore inferiore alla priorità radice corrente). Poiché STP favorisce sempre l'ID bridge più basso, il bridge basato su Linux vince la scelta della radice e assume il ruolo di bridge radice dallo switch A.
Questa rielezione ridefinisce l'intera topologia. Il collegamento Gigabit Ethernet ad alta velocità tra i due switch core (A e B) passa al blocco (come mostrato dallo spostamento della "X" rossa sul collegamento core). Di conseguenza, tutto il traffico VLAN che precedentemente usava il core Gigabit viene forzato su un percorso più lento a 100 Mbps. Quando la domanda di traffico supera le capacità del collegamento, lo switch inizia a perdere fotogrammi e il risultato è un'interruzione della connettività.
In che modo BPDU Guard impedisce il problema? Poiché la funzionalità PortFast dello switch C è abilitata sulla porta del dispositivo D, questa porta non deve mai ricevere una BPDU. Nel momento in cui il dispositivo D invia un pacchetto BPDU STP, BPDU Guard chiude la porta disabilitandola a causa di un errore. Il dispositivo D viene isolato prima di poter influenzare la scelta della radice e la topologia di base rimane intatta.
L'approccio consigliato è quello di abilitare PortFast e BPDU Guard insieme sulle porte di accesso rivolte all'host. È possibile abilitare o disabilitare PortFast BPDU Guard a livello globale o per interfaccia. Per impostazione predefinita, STP BPDU Guard è disabilitato.
CatSwitch-IOS(config-if)#spanning-tree portfast CatSwitch-IOS(config-if)#spanning-tree bpduguard enable
CatSwitch-IOS(config)#spanning-tree portfast bpduguard default
Con il comando globale, ciascuna porta configurata con PortFast eredita automaticamente la funzionalità BPDU Guard, quindi non è necessario impostarla su ciascuna interfaccia singolarmente.
Quando la funzione STP BPDU Guard disabilita la porta, questa rimane in stato disabilitato a meno che la porta non venga abilitata manualmente. È possibile configurare una porta in modo che venga riattivata automaticamente dallo stato err-disabled. Utilizzare questi comandi, per impostare l'intervallo di timeout di errdisable e abilitare la funzione di timeout:
CatSwitch-IOS(config)#errdisable recovery cause bpduguard CatSwitch-IOS(config)#errdisable recovery interval 400
Per verificare se la funzionalità è abilitata o disabilitata, eseguire il comando applicabile successivo:
CatSwitch-IOS#show spanning-tree summary totals Root bridge for: none. PortFast BPDU Guard is enabled UplinkFast is disabled BackboneFast is disabled Spanning tree default pathcost method used is short Name Blocking Listening Learning Forwarding STP Active -------------------- -------- --------- -------- ---------- ---------- 1 VLAN 0 0 0 1 1 CatSwitch-IOS#
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
4.0 |
05-Jun-2026
|
Controllo ortografia, grammatica, spaziatura e introduzione aggiornati. |
3.0 |
12-May-2025
|
Formattazione aggiornata per conformarsi alle linee guida Cisco. |
2.0 |
22-Mar-2024
|
Formattazione aggiornata. Avvisi CCW corretti. Certificazione. |
1.0 |
29-Nov-2001
|
Versione iniziale |