El comando spanning-tree portfast es una característica muy simple pero a menudo mal entendida.
En este breve post exploraré cómo se comporta esta característica, cómo funciona y cómo configurarla en un switch cisco.
Portfast es una característica propietaria de Cisco que se desarrolló originalmente para superar un problema cuando un PC intentaba obtener una dirección DHCP y pasaba el proceso DHCP antes de que el puerto hubiera pasado al estado de reenvío. La función portfast ponía el puerto en estado de reenvío tan pronto como aparecía, permitiendo al PC obtener una dirección DHCP. La característica fue entonces estandarizada y ahora se llama el puerto de borde.
Este es el punto principal que hay que recordar.
Una interfaz que tiene portfast configurado en ella se saltará las fases de escucha y aprendizaje de spanning tree, pero sólo cuando la interfaz se levanta.
Configuración de Spanning Tree Portfast
Hay dos maneras de configurar portfast globalmente y por interfaz.
En ambos casos estas características están condicionadas a las BPDUs entrantes
Si portfast está configurado en un puerto y recibe una BPDU el puerto deshabilitará la característica portfast.
Otro concepto erróneo es que cuando se habilita portfast en un puerto este dejará de enviar BPDUs, esto no es cierto lo único que hace habilitar portfast en un switch cisco es deshabilitar las fases de escucha y aprendizaje, todos los demás elementos siguen ahí. Se seguirán enviando BPDUs y se procesarán las BPDUs que se reciban.
Configuración de la interfaz
Para configurar una interfaz con portfast, bajo la configuración de la interfaz simplemente hay que introducir el comando spanning-tree portfast
se recibirá un aviso que explicaré más adelante.
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.
Cuando se configura por interfaz también se tiene la opción de configurar el modo trunk.
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
Esto también habilitará el portfast en los enlaces troncales también.
Configuración global
Para configurar el portfast globalmente bajo el modo de configuración global introduzca el comando spanning-tree portfast default
Esto habilitará el portfast en todos los puertos de acceso operacionales.
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)#
Ahora bien, así es como realmente se configura, pero también hay que estar muy pendiente del estado operacional del portfast de un puerto. Otras características dependen del estado operativo de portfast para su correcto funcionamiento. Una de ellas es bpduguard.
Si se configura globalmente bpduguard sólo tendrá efecto en los puertos que tengan sus puertos en estado operacional de portfast.
Independientemente de la configuración en un puerto el comando de abajo te mostrará el estado operacional real de portfast.
SW1#sh spanning-tree interface fa0/23 portfast VLAN0010 disabled
Si mostramos la configuración en este puerto verás que realmente hemos configurado portfast
SW1#sh run int fa0/23Building configuration...
!interface FastEthernet0/23 switchport access vlan 10 switchport mode access spanning-tree portfastend
¿Y por qué está desactivado? La razón es porque el otro extremo de fa0/23 está conectado a SW2 el puerto ha recibido una BPDU y ha deshabilitado el estado de portfast
Así que si intentamos habilitar bpduguard globalmente esto no tendría ningún efecto ya que el estado de portfast está deshabilitado. Esto es lo que queremos, ya que si este fuera un puerto de acceso y no estuviera conectado a un switch, no estaría recibiendo BPDUs y por lo tanto el estado portfast estaría habilitado. Entonces al habilitar bpduguard estaría operativo y listo para apagar el puerto si recibiera cualquier BPDU en ese puerto indicando que alguien ha conectado un switch a un puerto de acceso.
BPDU Guard – cualquier BPDU recibida hará que el puerto pase al estado err-disabled.
Otra característica que interactúa con el estado portfast operacional de un puerto es BPDU Filter
El vídeo de abajo de Marco explica la interacción mejor que yo.