O comando spanning-tree Portfast é uma funcionalidade muito simples mas muitas vezes mal compreendida.
Neste pequeno post vou explorar como esta funcionalidade se comporta, como funciona e como configurá-la num switch cisco.
Portfast é uma funcionalidade do Cisco Propietary que foi originalmente desenvolvida para superar um problema quando um PC estava tentando obter um endereço DHCP e passando pelo processo DHCP antes da porta ter entrado em um estado de encaminhamento. A funcionalidade de portfast levou a porta a um estado de encaminhamento assim que ela surgiu, permitindo que o PC obtivesse um endereço DHCP. O recurso foi então padronizado e agora é chamado de Edge port.
Este é o ponto principal a ser lembrado.
Uma interface que tenha portfast configurado nela irá pular as fases de escuta e aprendizagem da árvore Spanning, mas somente quando a interface surgir.
Configurando Spanning Tree Portfast
Existem duas maneiras de configurar portfast globalmente e por interface.
Em ambos os casos estas funcionalidades estão condicionadas à entrada de BPDUs
Se os portfast estão configurados numa porta e recebe um BPDU a porta irá desactivar a funcionalidade de portfast.
Outra concepção errada é que quando os portfast estão activados numa porta que irá parar de enviar BPDUs, isto não é verdade a única coisa que activar portfast num switch cisco faz é desactivar as fases de escuta e aprendizagem, todos os outros elementos ainda lá estão. BPDUs ainda serão enviadas e BPDUs sendo recebidas serão processadas.
Configuração da interface
Para configurar uma interface com portfast, sob a configuração da interface basta digitar o comando spanning-tree portfast
você receberá um aviso que explicarei mais tarde.
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.
Quando configurar por interface você também tem a opção de configurar o modo tronco.
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
Isto também irá activar portfast em links trunk.
Configuração Global
Para configurar portfast globalmente em modo de configuração global introduza o comando spanning-tree portfast por defeito
Isto irá activar portfast em todas as portas de acesso operacionais.
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)#
Agora é assim que o configura, mas também tem de estar muito atento ao estado operacional dos portfast de uma porta. Outras características dependem do estado operacional dos portfólios para uma operação correta. Uma delas é bpduguard.
Se configurado globalmente bpduguard só terá efeito nas portas que tenham suas portas em um status operacional de portfast.
Independentemente da configuração em uma porta o comando abaixo mostrará o status operacional real dos portfast.
SW1#sh spanning-tree interface fa0/23 portfast VLAN0010 disabled
Se mostrarmos a configuração nesta porta você verá que temos configurado portfast
SW1#sh run int fa0/23Building configuration...
!interface FastEthernet0/23 switchport access vlan 10 switchport mode access spanning-tree portfastend
Então por que ele está desabilitado? A razão é porque o outro extremo de fa0/23 está conectado ao SW2 a porta recebeu um BPDU e desabilitou o status do portfólio
Então se tentamos habilitar o bpduguard globalmente isto não teria nenhum efeito já que o status do portfólio está desabilitado. Isto é o que queremos como se esta fosse uma porta de acesso e não ligada a um switch, não estaria a receber BPDUs e assim o estado do portefólio estaria activado. Então ao ativar o bpduguard ele estaria operacional e pronto para desligar a porta se recebesse qualquer BPDUs naquela porta indicando que alguém tinha conectado um switch a uma porta de acesso.
BPDU Guard – qualquer BPDU recebido fará com que a porta entre em estado de desativação por erro.
Outro recurso que interage com o status operacional do portfólio de uma porta é o Filtro BPDU
O vídeo abaixo do Marco explica a interação melhor do que eu posso.