Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Conventions

Informações de Apoio

Disponibilidade de recursos

Funções da porta STP

Guarda de circuito de STP

Descrição do recurso

Considerações sobre configuração

Protetor de loop versus UDLD

Interoperabilidade de proteção de loop com outros recursos STP

Detecção de desvio de BPDU

Descrição do recurso

Considerações sobre configuração

Informações Relacionadas

Introduction

Este documento descreve os recursos do Spanning Tree Protocol que se destinam a melhorar a estabilidade da rede de Camada 2.

Prerequisites

Requirements

Este documento pressupõe que o leitor esteja familiarizado com a operação básica do STP. Consulte Compreender e Configurar o Spanning Tree Protocol (STP) em Catalyst Switches para obter mais informações.

Componentes Utilizados

Este documento é baseado nos switches Catalyst, no entanto, a disponibilidade dos recursos descritos pode depender da versão de software usada.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Conventions

Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.

Informações de Apoio

O Spanning Tree Protocol (STP) resolve fisicamente topologias redundantes em topologias em formato de árvores sem loops. O maior problema com o STP é que algumas falhas de hardware podem fazer com que ele falhe. Esta falha cria loops de encaminhamento (ou loops do STP). As indisponibilidades principais da rede são causadas por loops do STP.

Este documento descreve o recurso de protetor de loop STP que tem como objetivo melhorar a estabilidade das redes de Camada 2. Este documento também descreve a detecção de desvio de BPDU (Bridge Protocol Data Unit). A detecção de desvio de BPDU é um recurso de diagnóstico que gera mensagens de syslog quando as BPDUs não são recebidas a tempo.

Disponibilidade de recursos

CatOS

- O recurso protetor de loop STP foi introduzido no CatOS versão 6.2.1 do software Catalyst para as plataformas Catalyst 4000 e Catalyst 5000 e na versão 6.2.2 para a plataforma Catalyst 6000.

- O recurso de detecção de desvio de BPDU foi introduzido no CatOS versão 6.2.1 do software Catalyst para as plataformas Catalyst 4000 e Catalyst 5000 e na versão 6.2.2 para a plataforma Catalyst 6000.

Cisco IOS®

- O recurso protetor de loop STP foi introduzido no Cisco IOS Software Release 12.1(12c)EW para switches Catalyst 4500 e no Cisco IOS Software Release 12.1(11b)EX para Catalyst 6500.

- O recurso de detecção de desvio de BPDU não é suportado nos switches Catalyst que executam o software de sistema Cisco IOS.

Funções da porta STP

Internamente, o STP atribui a cada porta de bridge (ou switch) uma função baseada na configuração, na topologia, na posição relativa da porta na topologia e em outras considerações. A função da porta define o comportamento da porta sob o ponto de vista STP. Com base na função da porta, a porta envia ou recebe BPDUs de STP e encaminha ou bloqueia o tráfego de dados. Esta lista fornece um breve resumo de cada função de porta STP:

- Designado — Uma porta designada é escolhida por link (segmento). A porta designada é a porta mais próxima à bridge raiz. Essa porta envia BPDUs no link (segmento) e encaminha o tráfego para a bridge raiz. Em uma rede convergida STP, cada porta designada está no estado de encaminhamento STP.

- Raiz — A bridge pode ter apenas uma porta raiz. A porta raiz é a porta que leva à bridge raiz. Em uma rede convergida STP, a porta raiz está no estado de encaminhamento STP.

- Alternativo — As portas alternativas levam à bridge raiz, mas não são portas raiz. As portas alternadas mantêm o estado de bloqueio de STP.

- Backup — Este é um caso especial quando duas ou mais portas entre os mesmos switches estão conectadas juntas, diretamente ou através de mídia compartilhada. Nesse caso, uma porta é designada e o restante das portas é bloqueado. A função dessa porta é backup.

Guarda de circuito de STP

Descrição do recurso

O recurso do protetor de loop STP fornece proteção adicional contra loops de encaminhamento da Camada 2 (laços STP). Um loop STP é criado quando uma porta de bloqueio STP de uma topologia redundante faz a transição erroneamente para o estado de encaminhamento. Isso costuma acontecer porque uma das portas de uma topologia fisicamente redundante (não necessariamente a porta de bloqueio de STP) não recebe mais BPDUs de STP. Nessa operação, o STP depende da recepção contínua ou da transmissão dos BPDU com base na função da porta. A porta designada transmite BPDUs e a porta não designada recebe BPDUs.

Quando uma das portas em uma topologia fisicamente redundante não recebe mais BPDUs, o STP concebe que a topologia está livre de loops. Eventualmente, a porta de bloqueio da porta de backup ou de substituição é designada muda para um estado de encaminhamento. Esta situação cria um loop.

O recurso protetor de loop faz verificações adicionais. Se os BPDUs não são recebidos em uma porta não designada, e o protetor de loop está habilitado, a porta muda para o estado de bloqueio inconsistente de loop de STP, em vez do estado de escuta/aprendizagem/ encaminhamento. Sem o recurso protetor de loop, a porta assume a função de porta designada. A porta muda para o estado de encaminhamento STP e cria um loop.

Quando o protetor de loop bloqueia uma porta inconsistente, esta mensagem é registrada:

- 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.

Uma vez que a BPDU é recebida em uma porta em um estado de STP inconsistente de loop, a porta passa para outro estado de STP. Para o BPDU recebido, isso significa que a recuperação é automática e a intervenção não é necessária. Após a recuperação, esta mensagem é registrada:

- 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.

Considere este exemplo para ilustrar este comportamento:

O Switch A é o Switch-raiz. O switch C não recebe BPDUs do switch B devido a uma falha de link unidirecional no link entre o switch B e o switch C.

Falha de link unidirecional

Sem o protetor de loop, a porta de bloqueio do STP no switch C faz a transição para o estado de escuta do STP quando o temporizador max_age expira e, em seguida, faz a transição para o estado de encaminhamento em duas vezes o tempo de forward_delay. Esta situação cria um loop.

Loop Criado

Com o protetor de loop habilitado, a porta de bloqueio no switch C passa para o estado inconsistente de loop do STP quando o temporizador max_age expira. Uma porta no estado inconsistente de loop STP não transmite tráfego de usuário, portanto um loop não é criado. (O estado inconsistente de loop é efetivamente igual ao estado de bloqueio.)

Proteção de loop ativada evita loop

Considerações sobre configuração

O recurso protetor de loop é habilitado por porta. No entanto, desde que bloqueie a porta no nível de STP, o protetor de loop bloqueia portas inconsistentes em uma base por VLAN (devido ao STP por VLAN). Ou seja, se as BPDUs não forem recebidas na porta de tronco para apenas uma VLAN específica, apenas essa VLAN será bloqueada (movida para o estado STP de loop inconsistente). Pela mesma razão, se habilitado em uma interface EtherChannel, o canal inteiro será bloqueado para uma VLAN específica, não apenas um link (porque o EtherChannel é considerado como uma porta lógica do ponto de vista do STP).

Em quais portas o protetor de loop está habilitado? A resposta mais óbvia está nas portas de bloqueio. No entanto, isso não é totalmente correto. O protetor de loop deve ser ativado nas portas não designadas (mais precisamente, nas portas raiz e alternativa) para todas as combinações possíveis de topologias ativas. Desde que o protetor de loop não seja um recurso por VLAN, a mesma porta (tronco) pode ser designada para uma VLAN e não designada para a outra. Os possíveis cenários de failover também devem ser considerados.

Exemplo

Portas com proteção de loop ativada

Por padrão, o protetor de loop está desativado. Este comando é usado para ativar o protetor de loop:

- CatOS

set spantree guard loop

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

Com a versão 7.1(1) do software Catalyst (CatOS), o protetor de loop pode ser ativado globalmente em todas as portas. Efetivamente, o protetor de loop é habilitado em todos os links ponto-a-ponto. O link ponto a ponto é detectado pelo status duplex do link. Se duplex estiver cheio, o link é considerado ponto-a-ponto. Ainda é possível definir, ou substituir, as configurações globais por porta.

Execute este comando para habilitar o protetor de loop globalmente:

- CatOS

Console> (enable)  set spantree global-default loopguard enable

- Cisco IOS

Router(config)# spanning-tree loopguard default

Execute este comando para desabilitar o protetor de loop:

- CatOS

Console> (enable) set spantree guard none

- Cisco IOS

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

Execute este comando para desabilitar globalmente o protetor de loop:

- CatOS

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

- Cisco IOS

Router(config)#no spanning-tree loopguard default

Execute este comando para verificar o status do protetor de loop:

- CatOS

show spantree guard

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

Protetor de loop versus UDLD

A proteção de loop e a funcionalidade Unidirectional Link Detection (UDLD) se sobrepõem, parcialmente no sentido de que ambas protegem contra falhas de STP causadas por links unidirecionais. No entanto, esses dois recursos diferem em funcionalidade e como eles abordam o problema. Esta tabela descreve o protetor de loop e a funcionalidade UDLD:

Funcionalidade

Protetor de loop

UDLD

Configuração

Por porta

Por porta

Granularidade da ação

Por VLAN

Por porta

Recuperação automática

Yes

Sim, com recurso de intervalo err-disable

Proteção contra falhas de STP causadas por links unidirecionais

Sim, quando habilitado em todas as portas raiz e alternativas na topologia redundante

Sim, quando habilitado em todos os links na topologia redundante

Proteção contra falhas de STP causadas por problemas no software (o switch designado não envia BPDU)

Yes

No

Proteção contra fiação incorreta.

No

Yes

Com base nas várias considerações de design, você pode escolher o UDLD ou o recurso de protetor de loop. Em relação ao STP, a diferença mais perceptível entre os dois recursos é a ausência de proteção no UDLD contra falhas do STP causadas por problemas no software. Como resultado, o switch designado não envia BPDUs. No entanto, esse tipo de falha é (por uma ordem de magnitude) mais rara do que falhas causadas por links unidirecionais. Por sua vez, o UDLD pode ser mais flexível no caso de links unidirecionais no EtherChannel. Nesse caso, o UDLD desabilita apenas os links com falha, e o canal pode permanecer funcional com os links restantes. Em tal falha, o protetor de loop o coloca em um estado inconsistente de loop para bloquear todo o canal.

Adicionalmente, a proteção de circuito não funciona em enlaces compartilhados ou em situações nas quais o enlace é unidirecional desde a conexão. No último caso, a porta nunca recebe BPDU e torna-se designada. Como esse comportamento pode ser normal, esse caso específico não é coberto pelo protetor de loop. O UDLD fornece proteção contra tal cenário.

Conforme descrito, o nível mais alto de proteção é fornecido quando você ativa o UDLD e o protetor de loop.

Interoperabilidade de proteção de loop com outros recursos STP

protetor de raiz

O protetor de raiz é mutuamente exclusivo com o protetor de loop. O protetor de raiz é usado em portas designadas e não permite que a porta se torne não designada. O protetor de loop funciona em portas não designadas e não permite que a porta se torne designada através da expiração de max_age. O protetor de raiz não pode estar habilitado na mesma porta da proteção do loop. Quando o protetor de loop é configurado na porta, ele desativa o protetor de raiz configurado na mesma porta.

Uplink fast e backbone fast

Tanto o uplink fast como o backbone fast são transparentes para o protetor do circuito. Quando max_age é ignorado pelo backbone fast no momento da reconvergência, ele não aciona o protetor de loop. Para obter mais informações sobre uplink fast e backbone fast, consulte estes documentos:

- Entendendo e configurando o recurso Cisco Uplink Fast

- Entender e Configurar o Backbone Fast em Switches Catalyst

Protetor de BPDU e PortFast e VLAN dinâmica

O protetor de loop não pode ser habilitado para portas nas quais o portfast está habilitado. Como o BPDU guard funciona em portas ativadas por portfast, algumas restrições se aplicam ao BPDU guard. O protetor de loop não pode ser habilitado em portas VLAN dinâmicas, pois essas portas têm o portfast habilitado.

Enlaces compartilhados

O protetor de loop não deve ser habilitado em links compartilhados. Se você ativar o protetor de loop em links compartilhados, o tráfego de hosts conectados a segmentos compartilhados poderá ser bloqueado.

MST (extensão de árvore múltipla)

O protetor de loop funciona corretamente no ambiente MST.

Detecção de desvio de BPDU

O protetor de loop pode operar corretamente com a detecção de desvio de BPDU.

Detecção de desvio de BPDU

Descrição do recurso

A operação STP depende muito da recepção precisa de BPDUs. A cada mensagem hello_time (2 segundos por padrão), a bridge raiz envia BPDUs. Os Non-Root Bridge não regeneram BPDUs a cada mensagem hello_time, mas recebem BPDUs repetidos do Root Bridge. Portanto, cada bridge não raiz deve receber BPDUs em cada VLAN para cada mensagem hello_time. Em alguns casos, os BPDUs são perdidos ou a CPU da ponte está muito ocupada para retransmitir BPDU em tempo hábil. Esses problemas, assim como outros problemas, podem fazer com que as BPDUs cheguem atrasadas (se chegarem). Esse problema compromete potencialmente a estabilidade da topologia de spanning tree.

A detecção de desvio de BPDU permite que o switch mantenha o controle das BPDUs que chegam atrasadas e notifique o administrador com mensagens de syslog. Para cada porta na qual um BPDU chegou atrasado (ou desviou), a detecção de desvio relata o desvio mais recente e a duração do desvio (latência). Ela também relata o retardo de BPDU mais longo nesta porta específica.

Para proteger a CPU da bridge contra sobrecarga, uma mensagem de syslog não é gerada toda vez que ocorre desvio de BPDU. As mensagens são limitadas por taxa a uma mensagem a cada 60 segundos. No entanto, se o atraso de BPDU exceder max_age dividido por 2 (que equivale a 10 segundos por padrão), a mensagem será imediatamente impressa.

Observação: a detecção de desvio de BPDU é um recurso de diagnóstico. Ao detectar desvio de BPDU, ele envia uma mensagem de syslog. A detecção de desvio de BPDU não toma nenhuma ação corretiva adicional.

Observação: o recurso de detecção de desvio de BPDU não é suportado nos switches Catalyst que executam o software do sistema Cisco IOS

Este é um exemplo de uma mensagem de syslog gerada pela detecção de desvio de BPDU:

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

Considerações sobre configuração

A detecção de desvio de BPDU é configurada por switch. A configuração padrão está desabilitada. Execute este comando para habilitar a detecção de desvio de BPDU:

Cat6k> (enable) set spantree bpdu-skewing enable

Spantree bpdu-skewing enabled on this switch.

Para ver informações de inclinação de BPDU, use o comando show spantree bpdu-skewing <vlan>|<mod/port> como demonstrado neste exemplo:

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

Informações Relacionadas

- Spanning Tree Protocol Root Guard Enhancement

- Aprimoramento do Protetor de BPDU do PortFast de Spanning Tree

- Entender e Configurar o Recurso do Protocolo de Detecção de Link Unidirecional

- Utilização de Portfast e outros comandos para reparar retardos de conectividade da inicialização de estação de trabalho

- Suporte técnico e downloads - Cisco Systems