STP är ett nätverksprotokoll som utvecklats för att förhindra uppkomsten av loopar samtidigt som man tillåter användningen av redundanta vägar i nätverket. För att skydda mot attacker som utnyttjar Spanning Tree Protocol (STP) är det viktigt att implementera säkerhetsåtgärder som PortFast och BPDU Guard. Dessa åtgärder förhindrar att nätverkets struktur ändras av hotaktörer genom manipulation av STP.
- PortFast – När en switchport är konfigurerad med PortFast övergår den porten omedelbart från blocking till forwarding status och kringgår de vanliga 802.1D STP-övergångslägena (Listening och Learning), vilket undviker en 30 sekunders fördröjning. Du kan använda PortFast på åtkomstportar (Access ports) för att låta enheter som är anslutna till dessa portar, såsom DHCP-klienter, att omedelbart få åtkomst till nätverket istället för att vänta på STP ska konvergera på varje VLAN.
- BPDU Guard – BPDU Guard inaktiverar omedelbart en port som tar emot en BPDU, vilket är en säkerhetsåtgärd för att skydda mot obehöriga försök att lägga till switchar i nätverket. Precis som PortFast bör BPDU Guard endast konfigureras på interface som är anslutna till slutenheter, där inga BPDUs förväntas trafikera.
I figuren bör åtkomstportarna för S1 konfigureras med PortFast och BPDU Guard.
Konfigurera PortFast
PortFast kringgår STP lyssnings- och inlärningsstadier för att minimera tiden som åtkomstportar behöver vänta på att STP konvergera. Om PortFast aktiveras på en port som ansluter till en annan switch finns det en risk att skapa en spanning-tree loop.
PortFast kan aktiveras på ett interface med kommandot spanning-tree portfast inom interfacets konfigurationsläget. Alternativt kan PortFast konfigureras globalt på alla åtkomstportar genom att använda kommandot spanning-tree portfast default.
För att verifiera om PortFast är aktiverat globalt kan du använda antingen kommandot show running-config | begin span eller kommandot show spanning-tree summary. För att kontrollera om PortFast är aktiverat på ett interface, använd kommandot show running-config interface typ/nummer detail kan också användas för verifiering.
Observera att när PortFast är aktiverat visas varningsmeddelanden.
S1(config)# interface fa0/1 S1(config-if)# switchport mode access S1(config-if)# spanning-tree portfast %Warning: portfast should only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc... to this interface when portfast is enabled, can cause temporary bridging loops. Use with CAUTION %Portfast has been configured on FastEthernet0/1 but will only have effect when the interface is in a non-trunking mode. S1(config-if)# exit S1(config)# spanning-tree portfast default %Warning: this command enables portfast by default on all interfaces. You should now disable portfast explicitly on switched ports leading to hubs, switches and bridges as they may create temporary bridging loops. S1(config)# exit S1# show running-config | begin span spanning-tree mode pvst spanning-tree portfast default spanning-tree extend system-id ! interface FastEthernet0/1 switchport mode access spanning-tree portfast ! interface FastEthernet0/2 ! (output omitted) S1#
Konfigurera BPDU Guard
Även om PortFast är aktiverat kommer interfacet fortfarande att lyssna efter BPDUs. Oväntade BPDUs kan vara oavsiktliga eller del av ett obehörigt försök att lägga till en switch i nätverket.
Om några BPDUs tas emot på en port med aktiverad BPDU Guard, placeras den porten i ett fel-aktiverat tillstånd (err-disabled). Detta innebär att porten stängs av och måste manuellt återaktiveras eller automatiskt återställas genom det globala kommandot errdisable recovery cause bpduguard.
BPDU Guard kan aktiveras på en port (på interfacets konfigurationsläget) genom att använda kommandot spanning-tree bpduguard enable. Alternativt kan du använda det globala konfigurationskommandot spanning-tree portfast bpduguard default för att globalt aktivera BPDU Guard på alla PortFast-aktiverade portar.
För att visa information om tillståndet för Spanning Tree, använd kommandot show spanning-tree summary. I exemplet är både PortFast default och BPDU Guard aktiverade som standardtillstånd för portar konfigurerade som åtkomstportar.
Notera: Aktivera alltid BPDU Guard på alla PortFast-aktiverade portar.
S1(config)# interface fa0/1 S1(config-if)# spanning-tree bpduguard enable S1(config-if)# exit S1(config)# spanning-tree portfast bpduguard default S1(config)# end S1# show spanning-tree summary Switch is in pvst mode Root bridge for: none Extended system ID is enabled Portfast Default is enabled PortFast BPDU Guard Default is enabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled EtherChannel misconfig guard is enabled UplinkFast is disabled BackboneFast is disabled Configured Pathcost method used is short (output omitted) S1#