Het spanning-tree portfast commando is een zeer eenvoudige feature maar wordt vaak verkeerd begrepen.
In deze korte post zal ik onderzoeken hoe deze feature zich gedraagt, hoe het werkt en hoe het te configureren op een cisco switch.
Portfast is een Cisco Propietary feature die oorspronkelijk werd ontwikkeld om een probleem op te lossen wanneer een PC probeerde een DHCP adres te verkrijgen en voorbij het DHCP proces ging voordat de poort in een forwarding state was gegaan. De portfast functie bracht de poort in een forwarding status zodra deze opkwam, waardoor de PC een DHCP adres kon verkrijgen. De functie werd vervolgens gestandaardiseerd en wordt nu Edge port genoemd.
Dit is het belangrijkste punt dat moet worden onthouden.
Een interface waarop portfast is geconfigureerd, slaat de luister- en leerfasen van spanning tree over, maar alleen wanneer de interface opkomt.
Configuring Spanning Tree Portfast
Er zijn twee manieren om portfast globaal en per interface te configureren.
In beide gevallen zijn deze functies afhankelijk van binnenkomende BPDU’s
Als portfast is geconfigureerd op een poort en deze ontvangt een BPDU dan zal de poort de portfast functie uitschakelen.
Een ander misverstand is dat wanneer portfast is ingeschakeld op een poort dat deze dan zal stoppen met het zenden van BPDU’s, dit is niet waar het enige wat het inschakelen van portfast op een cisco switch doet is het uitschakelen van de luister- en leerfasen, alle andere elementen zijn er nog steeds. BPDUs zullen nog steeds worden verzonden en BPDUs die worden ontvangen zullen worden verwerkt.
Interface Configuratie
Om een interface te configureren met portfast, onder de interface configuratie voert u simpelweg het commando spanning-tree portfast
u zult een waarschuwing krijgen die ik later zal uitleggen.
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.
Bij het configureren per-interface heeft u ook de optie om trunk mode te configureren.
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
Dit schakelt portfast ook in op trunk links.
Globale Configuratie
Om portfast globaal te configureren onder global configuration mode voert u het commando spanning-tree portfast default
Dit schakelt portfast in op alle operationele toegangspoorten.
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 dit is hoe u het feitelijk configureert, maar u moet zich ook zeer bewust zijn van de operationele portfast status van een poort. Andere functies zijn afhankelijk van de operationele status van portfast voor een juiste werking. Een daarvan is bpduguard.
Indien globaal geconfigureerd zal bpduguard alleen effect hebben op poorten waarvan de poorten een portfast operationele status hebben.
Of de configuratie op een poort nu wel of niet is ingesteld, het onderstaande commando zal u de werkelijke operationele status van portfast laten zien.
SW1#sh spanning-tree interface fa0/23 portfast VLAN0010 disabled
Als we de configuratie op deze poort laten zien, zult u zien dat we portfast daadwerkelijk hebben geconfigureerd
SW1#sh run int fa0/23Building configuration...
!interface FastEthernet0/23 switchport access vlan 10 switchport mode access spanning-tree portfastend
Waarom is het dan uitgeschakeld? De reden hiervoor is dat het andere eind van fa0/23 is verbonden met SW2, de poort heeft een BPDU ontvangen en de portfast status
uitgeschakeld. Dus als we bpduguard globaal zouden proberen in te schakelen, zou dit geen enkel effect hebben omdat de portfast status uitgeschakeld is. Dit is wat we willen, want als dit een toegangspoort was en niet verbonden met een switch, zou deze geen BPDUs ontvangen en dus zou de portfast status ingeschakeld zijn. Dan zou bij het inschakelen van bpduguard het operationeel zijn en klaar staan om de poort af te sluiten als het enige BPDUs zou ontvangen op die poort die aangeeft dat iemand een switch heeft verbonden met een toegangspoort.
BPDU Guard – elke ontvangen BPDU zal de poort in de err-disabled status doen gaan.
Een andere functie die invloed heeft op de operationele portfast-status van een poort is BPDU-filter
De onderstaande video van Marco legt de interactie beter uit dan ik kan.