Mezcla de características de Cisco STP: BPDU Guard, BPDU Filter, PortFast y PortFast Trunk

7

Tengo dos conmutadores (Cisco 2960's) con un enlace troncal entre ellos (dos puertos en un canal de ether) y cada uno tiene un enlace troncal hasta un enrutador separado, todos los demás puertos del interruptor son puertos de acceso a dispositivos finales;

R1       R2
|        |
|        |
|        |
SW1 === SW2

Quiero implementar varias opciones de STP, puerto rápido en todos los puertos, filtro BPDU y protección BPDU. He leído varios documentos de Cisco y otros feeds de sitios web acreditados, solo algunos son;

Deseo configurar todos los puertos de acceso de la siguiente manera, ya conozco y utilizo estas funciones, por lo que no hay problemas aquí:

int gi0/10
 description End Device Port
 switchport mode access
 switchport access vlan 10
 spanning-tree portfast
 spanning-tree bpdufilter enable
 spanning-tree bpduguard enable

Deseo configurar puertos troncales entre conmutadores y hasta enrutadores de la siguiente manera, nuevamente ya uso esta configuración y no veo problemas aquí;

int gi0/1
 description Trunk to R1
 switchport mode trunk
 spanning-tree portfast trunk

Lo que no puedo encontrar ninguna buena documentación es mezclar el filtro BPDU y la protección BPDU como valores predeterminados globales con puertos configurados portfast trunk. Para guardar mi puerto de configuración rápida en cada puerto de acceso con protección BPDU y filtro BPDU, simplemente puedo ingresar estos tres comandos de configuración global;

spanning-tree portfast default
spanning-tree portfast bpdufilter default
spanning-tree portfast bpduguard default

El filtro BPDU y la protección BPDU ahora se activarán en todos los puertos portfast, pero ¿qué pasa con los puertos portfast que están configurados como portfast trunktales entre los switches? Quiero que las BPDU se envíen entre los switches. No puedo encontrar ninguna documentación que diga si habilitar o no la protección / filtro de BPDU a nivel mundial también configurará esto en los portfast trunkpuertos, lo que podría detener la ejecución de STP entre los conmutadores y potencialmente causar que esos puertos troncales lo hagan errdisable.

¿Qué sucede cuando se configura esta situación y hay algún documento oficial de Cisco en línea que aclarar?

jwbensley
fuente
3
Por curiosidad, ¿por qué el filtro BPDU y el protector BPDU? He visto la utilización de ambas funciones al mismo tiempo que muerden a la gente con fuerza. Todo lo que se necesita es que un usuario conecte dos puertos y ese interruptor se sumerja. BPDU Guard no puede cerrar el puerto si está deteniendo todas las BPDU con el filtro BPDU.
Brett Lykins el
1
Aquí no hay un bucle L2, ningún punto ejecuta STP. Como usted dice, solo debe configurar portfast default (hace que todos los puertos de acceso sean rápidos por defecto) Como dice Brett, no creo que BPDUguard haga nada en su configuración, ya que cuando BPDUfilter está configurado en el puerto, el puerto ya filtra la BPDU entrante y BPDUguard nunca puede activarse. Global BPDUfilter es diferente, si recibió BPDU, también comienza a enviarlos y migra, pero es silencioso siempre que no reciba BPDU. También debe controlar pps de bcast, mcsat y unicast desconocido cuando sea compatible con HW.
ytti
BPDUfilter cuando se configura en una interfaz efectivamente diables spanning-tree que a veces ES algo bueno.
John Kennedy el
No creo que haya sido lo suficientemente claro, así que me expandiré: quería configurar BPDU Guard porque si un conmutador está conectado a un puerto de acceso, por ejemplo, quiero que SW1 y SW2 ignoren cualquier BPDU que ingrese. También quiero BPDU filtro habilitado para que los conmutadores no envíen ninguna BPDU a los puertos de acceso. Ahora veo que el filtro BPDU habría sido suficiente. Pensé que el filtro BPDU estaba filtrando solo las BPDU entrantes pero aún las enviaba. Ahora veo que BPDU Guard es lo que necesito, de modo que si se recibe una BPDU, el conmutador actuará sobre esto, ya que nunca debería suceder en un puerto de acceso.
jwbensley
@ytti - No te preocupes ytti, eso no se ha olvidado, solo tratando de mantener esta pregunta más simple :)
jwbensley

Respuestas:

14

Primero, como los otros han mencionado, no tienes un puente de enlace aquí debido a la ejecución de un Portchannel. Dicho esto, ejecutar STP todavía está bien. Permítanme aclarar algunas confusiones sobre cómo funcionan estos comandos en los switches Cisco.

spanning-tree portfast trunk

Se supone que este comando se ejecuta en puertos troncales hacia dispositivos que no son de puente, como un servidor con múltiples VLAN o un enrutador. Este comando no debe ejecutarse en troncales hacia conmutadores porque el puerto omitirá la fase de escucha y aprendizaje, lo que podría crear un bucle de puente.

Si tiene una interfaz configurada así:

interface x/x
spanning-tree portfast
spanning-tree bpdufilter enable
spanning-tree bpduguard enable

La protección BPDU nunca se activará porque el filtro BPDU está filtrando tanto las BPDU salientes como las entrantes. Esto también significa que el puerto nunca puede perder su estado de Portfast, lo que normalmente haría si las BPDU se recibieran entrantes. Si quita el filtro, la protección BPDU se activará y cerrará el puerto si se recibe una BPDU. Esto se hace antes de que el puerto pueda perder su estado operacional Portfast, por lo que básicamente el puerto siempre funcionará en modo operativo Porfast.

Si aplica los comandos globalmente en su lugar:

spanning-tree portfast default
spanning-tree portfast bpdufilter default
spanning-tree portfast bpduguard default

El primer comando habilita Portfast en todos los puertos de acceso.

Cuando el filtro BPDU se aplica globalmente, la diferencia es que envía 11 BPDU antes de quedarse en silencio. Debido a que normalmente se envía una BPDU cada 2 segundos y el MaxAge predeterminado es de 20 segundos, eso significa que si hay un dispositivo en el otro extremo que puede procesar las BPDU, se recibiría al menos una BPDU cuando la BPDU anterior (si hubiera una ) ha expirado.

Si se recibe una BPDU entrante cuando el filtro BPDU se aplica globalmente, el puerto deja de filtrar y perderá su estado de Portfast.

El comando predeterminado de protección de BPDU solo se aplicará a los puertos que estén en un estado operativo Portfast.

Si combina estos tres comandos juntos, lo que sucederá es que cuando se recibe una BPDU el puerto pierde su filtro BPDU, el protector de BPDU puede entrar en acción. El puerto nunca perderá su estado operativo Portfast porque el puerto se cierra antes.

Entonces, cuando se aplica a la interfaz, la protección BPDU nunca puede activarse, pero si la aplica globalmente, sí puede.

Si ejecuta solo Portfast a nivel mundial y el filtro BPDU a nivel mundial, si entra una BPDU, el puerto pierde el filtro y pierde el estado operativo de Portfast y funcionará como un puerto normal.

Daniel Dib
fuente
BPDUfilter cuando se configura en una interfaz efectivamente diables spanning-tree que a veces ES algo bueno.
John Kennedy el
Sí, generalmente si quieres demarcar tu L2. Sin embargo, se debe tener mucho cuidado, especialmente si realiza múltiples funciones o puede terminar con un bucle de puente.
Daniel Dib
1
@ John Kennedy Estoy personalmente de acuerdo con Daniel. Si usa bpdufilter en cualquier puerto de conmutación, también debe habilitar el control de tormentas bcast con apagado de acción para garantizar que haya una protección contra bucles accidentales en el futuro
Mike Pennington
De hecho, desearía poder votar su respuesta dos veces porque explica bastante bien un tema comúnmente incomprendido
John Kennedy el
1
Acabo de probar esto en un Cat 3560. En primer lugar, las BPDU todavía se transmiten en puertos habilitados para Portfast. Este es un error común. La función predeterminada de BPDU Guard funcionará en todos los puertos en el estado operativo de Portfast, incluidos los troncales. Sin embargo, cualquier interfaz habilitada para Portfast que reciba BPDU perderá su estado operativo de Portfast. Dependiendo de qué lado envíe la BPDU superior, un lado podría perder Portfast mientras que el otro permanecería en Portfast. Ejecutar Portfast en troncales entre conmutadores no es una configuración válida, así que no lo intentes. Si ejecuta RSTP, la convergencia será rápida.
Daniel Dib