The spanning-tree portfast command is a very simple feature but often mis-under-understood.
In this short post I will explore how this feature behaves, how it works and how to configure it on a cisco switch.
Portfast er en Cisco-proprietær funktion, der oprindeligt blev udviklet for at afhjælpe et problem, når en pc forsøgte at få en DHCP-adresse og gik forbi DHCP-processen, før porten var gået i en forwarding-tilstand. Portfast-funktionen bragte porten i en forwarding-tilstand, så snart den kom op, hvilket gjorde det muligt for pc’en at få en DHCP-adresse. Funktionen blev derefter standardiseret og kaldes nu Edge-port.
Dette er det vigtigste punkt, der skal huskes.
En grænseflade, der har portfast konfigureret på den, vil springe lytte- og læringsfaserne i spanning tree over, men kun når grænsefladen kommer op.
Konfigurering af Spanning Tree Portfast
Der er to måder at konfigurere portfast globalt og pr. grænseflade på.
I begge tilfælde er disse funktioner betinget af indkommende BPDU’er
Hvis portfast er konfigureret på en port, og den modtager en BPDU, vil porten deaktivere portfast-funktionen.
En anden misforståelse er, at når portfast er aktiveret på en port, vil den stoppe med at sende BPDU’er, dette er ikke sandt det eneste, som aktivering af portfast på en cisco-switch gør, er at deaktivere lytte- og læringsfaserne, alle andre elementer er der stadig. BPDU’er vil stadig blive sendt og BPDU’er der bliver modtaget vil blive behandlet.
Interface Configuration
For at konfigurere en grænseflade med portfast, skal du under grænsefladekonfigurationen blot indtaste kommandoen spanning-tree portfast
Du vil modtage en advarsel, som jeg vil forklare senere.
SW1#conf tSW1#int fa0/23SW#(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/23 but will only have effect when the interfaceis in a non-trunking mode.
Når du konfigurerer per-interface har du også mulighed for at konfigurere trunk mode.
SW1(config-if)#spanning-tree portfast ?disable Disable portfast for this interfacetrunk Enable portfast on the interface even in trunk mode<cr>SW1(config-if)#spanning-tree portfast
Dette vil også aktivere portfast på trunkforbindelser også.
Global konfiguration
For at konfigurere portfast globalt under global konfigurationstilstand skal du indtaste kommandoen spanning-tree portfast default
Dette vil aktivere portfast på alle operationelle adgangsporte.
SW1(config)#spanning-tree portSW1(config)#spanning-tree portfast default%Warning: this command enables portfast by default on all interfaces. Youshould now disable portfast explicitly on switched ports leading to hubs,switches and bridges as they may create temporary bridging loops.SW1(config)#
Nu er det sådan, du rent faktisk konfigurerer det, men du skal også være meget opmærksom på den operationelle portfast-status for en port. Andre funktioner er afhængige af den operationelle status for portfast for at kunne fungere korrekt. En af disse er bpduguard.
Hvis bpduguard er konfigureret globalt, vil bpduguard kun træde i kraft på porte, hvis deres porte har portfast-operationel status.
Uafhængigt af konfigurationen på en port vil kommandoen nedenfor vise dig den faktiske portfast-operationelle status.
SW1#sh spanning-tree interface fa0/23 portfast VLAN0010 disabled
Hvis vi viser konfigurationen på denne port, vil du se, at vi faktisk har konfigureret portfast
SW1#sh run int fa0/23Building configuration...
!interface FastEthernet0/23 switchport access vlan 10 switchport mode access spanning-tree portfastend
Så hvorfor er den deaktiveret? Årsagen er, at den anden ende af fa0/23 er forbundet til SW2, og at porten har modtaget en BPDU og deaktiveret portfast-status
Så hvis vi forsøgte at aktivere bpduguard globalt, ville det ikke have nogen effekt overhovedet, da portfast-statusen er deaktiveret. Det er det, vi ønsker, for hvis dette var en adgangsport og ikke var forbundet med en switch, ville den ikke modtage BPDU’er, og dermed ville portfast-status være aktiveret. Når bpduguard så aktiveres, vil den være operationel og være klar til at lukke porten ned, hvis den modtager nogen BPDU’er på denne port, der indikerer, at nogen har tilsluttet en switch til en adgangsport.
BPDU Guard – enhver modtaget BPDU vil få porten til at gå i err-disabled-tilstand.
En anden funktion, der interagerer med den operationelle portfast-status for en port, er BPDU Filter
Videoen nedenfor fra Marco forklarer interaktionen bedre end jeg kan.