Una de las mejoras de SPT que vamos a revisar en este post serán los siguientes:
- Porfast|
- BPDU Guard
- BPDU Filtering
- Root Guard
- Loop Guard
Porfast
Vamos a hablar de los estados que atraviesa un puerto después de establecer el enlace, un proceso clave para la comunicación de datos. Una vez conectado, el puerto pasa por etapas que garantizan una conexión estable y eficiente. Estas incluyen identificar el dispositivo, negociar parámetros de conexión y verificar la integridad de la señal. Cada estado es esencial para asegurar que la transferencia de datos se realice de manera efectiva.
• Listening – Se envían/reciben BPDUs, pero no se envía/recibe otro tráfico y no se aprenden direcciones MAC. Dura 15 segundos por defecto.
• Learning: los BPDUs se envían/reciben, pero no se envía/recibe otro tráfico. Se están aprendiendo las direcciones MAC. Dura 15 segundos por defecto.
• Fowarding – Se permite enviar/recibir trafico de manera normal.
• Blocking: El tráfico está bloqueado en ambas direcciones. Se pueden recibir BPDUs, pero no se envían.
• ¡Pasar a un estado de reenvío toma 30 segundos por defecto!a
Portfast- Configurations
Portfast permite que los puertos omitan los estados de listening y learning y pasen directamente a la reenvío.
Esto puede causar algunos bucles temporales. STP seguirá bloqueando si es necesario según los BPDUs. Es genial para usar equipos finales, como computadoras, telefonos, etc . Pero no lo uses en ninguna interfaz que pueda provocar un bucle de capa 2.
Las primeras líneas de comando de portfast que verás a continuación se aplican directamente a las interfaces, lo que permite que los usuarios hagan configuraciones y ajustes que necesitan para que el sistema funcione mejor. Estas configuraciones son clave para asegurarnos de que las interfaces trabajen de manera eficiente y cumplan con lo que los administradores de red han establecido. Además, es fundamental comprender que la correcta implementación de estos comandos no solo optimiza el rendimiento del sistema, sino que también ayuda a prevenir problemas comunes que pueden surgir en la red, como bucles de red y retrasos en la conexión. Con una configuración adecuada, los dispositivos pueden activar y desactivar puertos de manera rápida, lo que resulta en una experiencia mucho más fluida para todos los usuarios que dependen de la conectividad continua y confiable proporcionada por la red.
Las dos primeras lineas describen la configuración aplicable a puertos de acceso. Si por alguna razón el puerto cambia a modo troncal, Portfast sería deshabilitado.
(config-if)#spanning-tree portfast (Habilita portfast en puertos de acceso)
(config-if)#spanning-tree portfast edge (variante)
Estas dos siguientes dos lineas describen la configuración aplicable a puertos troncales o puertos de acceso, en este caso, no importa si el puerto cambia de troncal a acceso, Portfast seguira operando.
(config-if)#spanning-tree portfast trunk (Habilita portfast en puertos de acceso o puertos troncales)
(config-if)#spanning-tree portfast edge trunk (variante)
La siguientes lineas de configuracion muestran como habilitar «Portfast» de manera general en el switch, lo cual es esencial para optimizar el tiempo de convergencia en una red, especialmente en entornos donde se implementan dispositivos de red que requieren una conexión rápida. La habilitación de «Portfast» permite que los puertos se muestren en estado de reenvío de inmediato, evitando el retraso habitual en la transición de estados del protocolo Spanning Tree. Esto es particularmente útil en redes que utilizan dispositivos finales, como estaciones de trabajo o impresoras, donde es crucial minimizar el tiempo de inactividad. Además, es importante tener en cuenta que, al activar esta funcionalidad, se debe verificar que el puerto no esté conectado a otros switches para prevenir bucles de red no deseados, lo que podría causar problemas de rendimiento en la red.
Es importante mencionar que no existe un comando de configuracion que globlan que permita utilizar Porfast para puertos troncales, solo funciona en puertos operando en modo de acceso.
(config)#spanning-tree portfast default (todos los puertos de acceso son configurados con portfast)
(config)#spanning-tree portfast edge default (variante)
BPDU Guard
Hay que comenzar esta sección recordando que los paquetes de BPDU son la herramienta que utiliza STP para llevar acabo diferentes tareas, como la elección del root switch, los roles y estados de los puertos y en ciertos momentos, cuando hay un cambio en la red, se envian los BPDU de tipo TCN. Ahora bien, BPDU Guard es una utilidad normalmente acompañada con el comando spanning portfast y su objetivo es proteger la red de posibles loops, o incluso ataques de man on the middle.
Basicamente, lo que sucederá con la utilización de BPDU Guard será que el puerto en donde no se debería recibir BPDU porque no hay otro dispositivo de capa 2 que genere estos paquetes, pero si se llega a escuchar el puerto será puesto en un estado llamado «err-disable». Es decir, el puerto será apagado y permanecera en ese estado hasta que dos de las siguientes cosas sucedan:
- Se realice un shutdown / no shutdown al puerto
- Se utilice la herramienta de auto recuperación llamada «err-disable recovery«
Cuando utilizamos BPDU Guard? Regularmente lo aplicamos en puertos de acceso donde no se conectarán otros switches, solo dispositivos como PCs o teléfonos. Si no configuramos BPDU Guard y el usuario por curiosidad y proactivismo, lleva su propio switch de x. cantidad de puertos para conectar más dispositivos y sin quererlo estará generando un loop en nuestra red.
Ahora, algo que debemos entender es que, lo que dispara la utilización de BPDU Guard es la recepción de BPDU packets, es decir, si no encontramos la razón del por que estamos recibiendo estos paquetes en donde no deberiamos de hacerlo el puerto volvera a caer siempre que el Guard esta habilitado.
BPDU Guard se puede configurar por puerto o de manera global, es importante mencionar que de forma global la configuración se aplicara a todos los puertos que tengan habilitado portfast.
A continuación, la configuración por puerto
(config-if)#spanning-tree bpduguard enable
A continuación, la configuración global la cual se aplicara a todos los puertos con portfast configurado
(config)#spanning-tree portfast bpduguard default
(config)#spanning-tree portfast edge bpduguard default (Variante)
Si queremos verficar si BPDU esta habilitado en la interfaz podemos ejecutar el comando:
show spanning tree interface X/X detail (muestra de BPDU esta habilitado y como fue aplicado)