Switching de LAN : Protocolo de árbol de expansión

Mejoras del protocolo STP con las funciones de protección de bucle y detección de desviación de BPDU

23 Junio 2008 - Traducción manual
Otras Versiones: PDFpdf | Traducción Automática (31 Julio 2013) | Inglés (22 Enero 2007) | Comentarios

Contenidos

Introducción
Requisitos previos
     Requisitos
     Componentes utilizados
     Convenciones
Disponibilidad de funciones
Breve resumen de las funciones del puerto STP
Protección de bucle STP
     Descripción de la función
     Consideraciones de configuración
     Protección de bucle frente a UDLD
     Interoperabilidad de protección de bucle con otras funciones de STP
Detección de desviación de BPDU
     Descripción de la función
     Consideraciones de configuración
Discusiones relacionadas de la comunidad de soporte de Cisco

Introducción

El protocolo de árbol de expansión (STP) resuelve topologías físicas redundantes en topologías similares a un árbol sin bucles. El principal problema con el STP es que algunas fallas del hardware pueden hacer que éste falle, creando bucles de reenvío (o bucles STP). Estos bucles STP causan interrupciones de red importantes.

Este documento describe la función STP de protección de bucles diseñada para mejorar la estabilidad de las redes de capa 2. También explica la función de detección de desviación de la Unidad de datos del protocolo de puente (BPDU), que es una función de diagnóstico que genera mensajes de syslog cuando las BPDU no se reciben a tiempo.

Requisitos previos

Requisitos

En este documento, se da por hecho que el lector ya está familiarizado con el funcionamiento básico de STP. Consulte Understanding and Configuring Spanning Tree Protocol (STP) on Catalyst Switches (Introducción y configuración del Protocolo de árbol de expansión (STP) en los switches Catalyst) para obtener más información sobre el funcionamiento de STP.

Componentes utilizados

Este documento no tiene restricciones específicas en cuanto a versiones de software y hardware.

Convenciones

Consulte Cisco Technical Tips Conventions (Convenciones sobre consejos técnicos de Cisco) para obtener más información sobre las convenciones del documento.

Disponibilidad de funciones

CatOS

  • La función de protección de bucle de STP se introdujo en la versión 6.2.1 de CatOS del software Catalyst para las plataformas Catalyst 4000 y Catalyst 5000 y en la versión 6.2.2 para la plataforma Catalyst 6000.

  • La función de detección de desviación de BPDU se introdujo en la versión 6.2.1 de CatOS del software Catalyst para las plataformas Catalyst 4000 y Catalyst 5000 y en la versión 6.2.2 para la plataforma Catalyst 6000.

Cisco IOS®

  • La función de protección de bucle de STP se introdujo en la versión 12.1(12c)EW del software Cisco IOS para los switches Catalyst 4500 y en la versión 12.1(11b)EX del software Cisco IOS para Catalyst 6500.

  • La función de detección de desviación de BPDU no se admite en los switches Catalyst que ejecutan el software del sistema Cisco IOS.

Breve resumen de las funciones del puerto STP

Internamente, STP asigna un rol a cada puerto de un puente (o switch) que se basa en la configuración, la topología, la posición relativa del puerto en la topología y otras consideraciones. El rol del puerto define el comportamiento del puerto desde el punto de vista de STP. En función del rol, el puerto envía o recibe BPDU de STP y reenvía o bloquea el tráfico de datos. En la lista siguiente se ofrece una breve descripción de los roles del puerto STP:

  • Designado: se elige un puerto designado por enlace (segmento). El puerto designado es el puerto más cercano al puente raíz y se encarga de enviar BPDU en el enlace (segmento) y de reenviar tráfico hacia el puente raíz. En una red con convergencia STP, cada puerto designado está en el estado de reenvío STP.

  • Raíz: el puente sólo puede tener un puerto raíz. El puerto raíz es el que lleva al puente raíz. En una red con convergencia STP, el puerto raíz está en el estado de reenvío STP.

  • Alternativo: los puertos alternativos llevan al puente raíz, pero no son puertos raíz. Los puertos alternativos mantienen el estado bloqueado del STP.

  • Respaldo: se trata de un caso especial en el que dos o más puertos del mismo puente (switch) están interconectados, directamente o a través de un medio compartido. En este caso, se designará un puerto y se bloquearán los restantes. La función de este puerto es de respaldo.

Protección de bucle STP

Descripción de la función

La función de protección de bucle ofrece protección adicional frente a los bucles de reenvío de capa 2 (bucles STP). Cuando, erróneamente, un puerto de bloqueo STP en una topología redundante pasa a un estado de reenvío, se crea un bucle STP. Esto generalmente sucede porque uno de los puertos de una topología redundante físicamente (no necesariamente el puerto de bloqueo STP) deja de recibir BPDU de STP. STP depende para su funcionamiento de la continua recepción o transmisión de las BPDU en función del rol del puerto. El puerto designado transmite BPDU y el puerto no designado las recibe.

Cuando uno de los puertos en una topología físicamente redundante deja de recibir BPDU, el STP considera a la topología como un bucle libre. Finalmente, se designa el puerto de bloqueo del puerto de respaldo o alternativo y pasa al estado de reenvío. De esta forma, se crea un bucle.

La función de protección de bucle realiza comprobaciones adicionales. Si no se reciben las BPDU en un puerto no designado y está habilitada la protección de bucle, ese puerto pasa a un estado de bloqueo incoherente con el bucle STP en lugar del estado de escucha/aprendizaje/reenvío. Sin la función de protección de bucle, el puerto asume el rol de puerto designado, pasa al estado de reenvío STP y crea un bucle.

Cuando la protección de bucle bloquea un puerto incoherente, se registra este mensaje:

  • CatOS

    %SPANTREE-2-LOOPGUARDBLOCK: No BPDUs were received on port 3/2 in vlan 3. Moved to
     loop-inconsistent state.
  • Cisco IOS

    %SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port FastEthernet0/24 on
    VLAN0050.

Una vez que se ha recibido la BPDU en un puerto en un estado STP con bucle incoherente, el puerto pasa a otro estado STP. Según la BPDU recibida, esto significa que la recuperación es automática y no es necesaria ninguna intervención. Después de la recuperación, se registra el siguiente mensaje:

  • CatOS

    %SPANTREE-2-LOOPGUARDUNBLOCK: port 3/2 restored in vlan 3.
  • Cisco IOS

    %SPANTREE-2-LOOPGUARD_UNBLOCK: Loop guard unblocking port FastEthernet0/24 on
    VLAN0050.

Para ilustrar este comportamiento, considere el siguiente ejemplo:

El switch A es el switch raíz. El switch C no recibe las BPDU del B debido al fallo de enlace unidireccional en el enlace entre el switch B y el C.

84a.gif

Sin la protección de bucle, el puerto de bloqueo STP en el switch C realiza una transición al estado de escucha STP cuando se agota el temporizador max_age y luego pasa al estado de reenvío en dos tiempos del tiempo forward_delay. De esta forma, se crea un bucle.

84b.gif

Con la protección de bucle habilitada, el puerto de bloqueo del switch C realiza una transición al estado STP con bucle incoherente cuando vence el temporizador max_age. Un puerto con el estado STP con bucle incoherente no pasa el tráfico de usuarios, por lo que no se crea ningún bucle. (El estado de bucle incoherente, en la práctica, equivale al estado de bloqueo.)

84c.gif

Consideraciones de configuración

La función de protección de bucle se habilita en una configuración puerto por puerto. Sin embargo, mientras que bloquee el puerto en el nivel STP, el bucle bloquea puertos incoherentes por VLAN (debido a STP por VLAN). Es decir, si las BPDU no se reciben en el puerto troncal para una VLAN en particular, sólo se bloquea esa VLAN (que pasa al estado STP con bucle incoherente). Por la misma razón, si está activada en una interfaz EtherChannel, se bloqueará el canal completo para una VLAN determinada, no sólo un enlace (porque EtherChannel se considera como un solo puerto lógico desde el punto de vista de STP).

¿En qué puertos se debe habilitar la protección de bucle? La respuesta más obvia es en los puertos de bloqueo. Sin embargo, no es del todo correcto. La protección de bucle debe habilitarse en los puertos no designados (más específicamente en los puertos raíz y alternativos) para todas las combinaciones posibles de topologías activas. Siempre que la protección de bucle no sea una función por VLAN, el mismo puerto (troncal) podría ser designado para una VLAN y no designado para otra. También deberían tenerse en cuenta las posibles conmutaciones por error.

Tenga en cuenta este ejemplo:

84d.gif

De manera predeterminada, la protección de bucle se encuentra inhabilitada. Este comando sirve para habilitar la protección de bucle:

  • CatOS

                      set spantree guard loop <mod/port>
    
    Console> (enable) set spantree guard loop 3/13
    Enable loopguard will disable rootguard if it's currently enabled on the port(s).
    Do you want to continue (y/n) [n]? y
    Loopguard on port 3/13 is enabled.
  • Cisco IOS

                      spanning-tree guard loop
    
    Router(config)#interface gigabitEthernet 1/1
    Router(config-if)#spanning-tree guard loop
                   

Con la versión 7.1(1) del software Catalyst (CatOS), la protección de bucle se puede activar globalmente en todos los puertos. Efectivamente, esta función se habilita en todos los enlaces punto a punto. El estado dúplex del enlace detecta el enlace punto a punto. Si el dúplex está lleno, el enlace se considera como punto a punto. Aún es posible configurar o invalidar la configuración global por cada puerto.

Ejecute este comando para habilitar la protección de bucle de manera global:

  • CatOS

    Console> (enable) set spantree global-default loopguard enable
                   
  • Cisco IOS

    Router(config)#spanning-tree loopguard default
                   

Ejecute este comando para deshabilitar la protección de bucle:

  • CatOS

    Console> (enable) set spantree guard none <mod/port>
                   
  • Cisco IOS

    Router(config-if)#no spanning-tree guard loop
                   

Ejecute este comando para habilitar la protección de bucle de manera global:

  • CatOS

    Console> (enable) set spantree global-default loopguard disable
                   
  • Cisco IOS

    Router(config)#no spanning-tree loopguard default
                   

Ejecute este comando para verificar el estado de la protección de bucle:

  • CatOS

                      show spantree guard <mod/port>
    
    Console> (enable) show spantree guard 3/13
    Port                     VLAN Port-State    Guard Type
    ------------------------ ---- ------------- ----------
    3/13                     2    forwarding          loop
    Console> (enable)
  • Cisco IOS

                      show spanning-tree 
    
    Router#show spanning-tree summary
    Switch is in pvst mode
    Root bridge for: none
    EtherChannel misconfig guard is enabled
    Extended system ID           is disabled
    Portfast Default             is disabled
    PortFast BPDU Guard Default  is disabled
    Portfast BPDU Filter Default is disabled
    Loopguard Default            is enabled
    UplinkFast                   is disabled
    BackboneFast                 is disabled
    Pathcost method used         is short
    
    Name                   Blocking Listening Learning Forwarding STP Active
    ---------------------- -------- --------- -------- ---------- ----------
    Total                        0         0        0          0          0

Protección de bucle frente a UDLD

Las funcionalidades de la protección de bucle y de la detección de enlace unidireccional (UDLD) se superponen, en parte debido a que ambas protegen contra errores STP que provocan los enlaces unidireccionales. Sin embargo, estas dos funciones son distintas en la funcionalidad y en la forma de abordar el problema. Esta tabla describe la funcionalidad de la protección de bucle y de UDLD:

Funcionalidad

Protección de bucle

UDLD

Configuración

Por puerto

Por puerto

Granularidad de acción

Por VLAN

Por puerto

Recuperación automática

Sí, con la función errdisable-timeout

Protección contra errores STP provocados por enlaces unidireccionales

Sí, cuando se habilita en todos los puertos raíz y alternativos de la topología redundante

Sí, cuando se habilita en todos los enlaces de la topología redundante

Protección contra errores STP provocados por problemas del software (el switch designado no envía la BPDU)

No

Protección contra cableado inadecuado

No

En función de las diferentes consideraciones de diseño, se puede elegir la función de UDLD o de protección de bucle. Con respecto a STP, la diferencia más notable entre las dos funciones es la ausencia de protección en UDLD frente a los errores STP provocados por problemas en el software. Como consecuencia, el switch designado no envía las BPDU. Sin embargo, este tipo de errores son (por orden de magnitud) menos frecuentes que aquellos causados por enlaces unidireccionales. En cambio, la UDLD podría ser más flexible en el caso de enlaces unidireccionales en EtherChannel. En este caso, el UDLD sólo desactiva los enlaces fallidos, y el canal debe permanecer funcional con los demás enlaces. En ese tipo de error, la protección de bucle lo coloca en estado de bucle incoherente para bloquear todo el canal.

Además, la protección contra bucle no funciona en enlaces compartidos o en aquellas situaciones en las que el enlace ha sido unidireccional desde la activación del enlace. En este último caso, el puerto no recibe nunca BPDU y se convierte en designado. Debido a que este comportamiento podría ser normal, la protección de bucle no cubre este caso en particular. UDLD ofrece protección frente a este escenario.

Como se ha descrito, el máximo nivel de protección se obtiene cuando se habilita UDLD y la protección de bucle.

Interoperabilidad de protección de bucle con otras funciones de STP

Protección de raíz

La protección de raíz es mutuamente excluyente con la protección de bucle. La protección de raíz se utiliza en puertos designados y no permite que el puerto pase a ser no designado. La protección de bucle, por su parte, funciona en puertos no designados y no permite que el puerto pase a ser designado a través del vencimiento de max_age. El protector de raíz no puede estar habilitado en el mismo puerto que el protector de bucle. Cuando se configura la protección de bucle en el puerto, se desactiva la protección de raíz configurada en el mismo puerto.

Enlace ascendente rápido y estructura básica rápida

Tanto el enlace ascendente rápido como la estructura básica rápida son transparentes para la protección de bucle. Cuando el enlace ascendente rápido omite max_age en el momento de la reconvergencia, no activa la protección de bucle. Para obtener más información sobre el enlace ascendente rápido y la estructura básica rápida, consulte los siguientes documentos:

PortFast y Protección BPDU y VLAN dinámica

La protección de bucle no se puede habilitar en puertos que tengan PortFast habilitado. Dado que la protección BPDU funciona en los puertos con Portfast habilitado, se aplican algunas restricciones a la protección BPDU. La protección de bucle no se puede habilitar en los puertos VLAN dinámicos, ya que estos puertos tienen activado Portfast.

Enlaces compartidos

La protección de bucle no se debe habilitar en enlaces compartidos. Si se habilita, el tráfico de los hosts conectados a segmentos compartidos se podrían bloquear.

Árbol de expansión múltiple (MST)

La protección de bucle funciona correctamente en el entorno MST.

Detección de desviación de BPDU

La protección de bucle debe funcionar correctamente con la detección de desviación de BPDU.

Detección de desviación de BPDU

Descripción de la función

El funcionamiento de STP depende en gran medida de que reciba a tiempo los BPDU. En cada mensaje hello_time (2 segundos, de manera predeterminada), el puente raíz envía BPDU. Los puentes que son raíz no vuelven a generar BPDU para cada mensaje hello_time, pero reciben BPDU retrasados del puente raíz. Por tanto, cada puente sin raíz debe recibir BPDU en cada VLAN para cada mensaje hello_time. En algunos casos, las BPDU se pierden o la CPU del puente está muy ocupada para retransmitirlas en tiempo y forma. Estos problemas, junto con otros, pueden hacer que las BPDU lleguen tarde (si es que llegan). Esto compromete potencialmente la estabilidad de la topología del árbol de expansión.

La detección de desviación de BPDU permite que el switch realice el seguimiento de las BPDU que llegan tarde y notifique al administrador con mensajes de syslog. La detección de desviación informa sobre la desviación más reciente y la duración de la desviación (latencia) para cada puerto al que BPDU ha llegado tarde (o se ha desviado). También notifica el retraso más largo de BPDU en este puerto particular.

Para proteger la CPU del puente de la sobrecarga, no se genera un mensaje de syslog cada vez que se produce la desviación de BPDU. Los mensajes están limitados por tiempo a un mensaje cada 60 segundos. Sin embargo, si el retraso de BPDU excede max_age dividido entre 2 (que es igual a 10 segundos de manera predeterminada), el mensaje se imprime inmediatamente.

Nota: la detección de desviación de BPDU es una función de diagnóstico. En cuanto se detecta la desviación de BPDU, se envía un mensaje de syslog. La detección de desviación de BPDU no toma otras acciones correctivas.

Éste es un ejemplo de mensaje de syslog generado por la detección de desviación de BPDU:

%SPANTREE-2-BPDU_SKEWING: BPDU skewed with a delay of 10 secs (max_age/2)

Consideraciones de configuración

La detección de desviación de BPDU se configura de forma individual por switch. La configuración predeterminada está desactivada. Ejecute este comando para habilitar la detección de desviación de BPDU:

Cat6k> (enable) set spantree bpdu-skewing enable
   Spantree bpdu-skewing enabled on this switch.

Para ver la información sobre la desviación de BPDU, utilice el comando show spantree bpdu-skewing <vlan>|<mod/port> como se muestra en este ejemplo:

Cat6k> (enable) show spantree bpdu-skewing 1
Bpdu skewing statistics for vlan 1
Port Last Skew (ms) Worst Skew (ms) Worst Skew Time
-------------- --------------- --------------- -------------------------
3/12 4000 4100 Mon Nov 19 2001, 16:36:04

Discusiones relacionadas de la comunidad de soporte de Cisco

La Comunidad de Soporte de Cisco es un foro donde usted puede preguntar y responder, ofrecer sugerencias y colaborar con colegas.


Document ID: 10596