Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Conventions

Disponibilidade de recursos

Resumo breve das 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

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

Prerequisites

Requirements

Este documento pressupõe que o leitor está familiarizado com a operação básica do STP. Consulte Compreendendo e Configurando o Spanning Tree Protocol (STP) em Catalyst Switches para saber como o STP funciona.

Componentes Utilizados

Este documento não se restringe a versões de software e hardware específicas.

Conventions

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

Disponibilidade de recursos

CatOS

- O recurso protetor de loop STP foi introduzido no CatOS versão 6.2.1 do software Catalyst para 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 na versão 6.2.1 do CatOS 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 Catalyst 4500 Switches e 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 do sistema Cisco IOS.

Resumo breve das funções da porta STP

Internamente, o STP atribui a cada porta de bridge (ou switch) uma função que é baseada na configuração, topologia, posição relativa da porta na topologia e outras considerações. A função da porta define o comportamento da porta sob o ponto de vista STP. Com base na função de porta, a porta envia ou recebe BPDUs 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 é eleita por link (segmento). A porta designada é a porta mais próxima da 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.

- Alternar — 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 da mesma bridge (switch) estão conectadas, diretamente ou através de mídia compartilhada. Nesse caso, uma porta é designada e as portas restantes são bloqueadas. A função desta 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.

Quando a BPDU é recebida em uma porta em um estado STP inconsistente de loop, a porta passa para outro estado STP. De acordo com a BPDU recebida, 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.

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 duas vezes o tempo forward_delay. Esta situação cria um loop.

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

Considerações sobre configuração

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

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

Considere este exemplo:

Por padrão, o protetor de loop está desabilitado. 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 está ativado em todos os links ponto-a-ponto. O link ponto-a-ponto é detectado pelo status duplex do link. Se o duplex estiver cheio, o link é considerado ponto-a-ponto. Ainda é possível configurar, ou substituir, as configurações globais por porta.

Execute este comando para ativar o protetor de loop globalmente:

- CatOS

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

- Cisco IOS

Router(config)#spanning-tree loopguard default

Emita 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

Emita 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

O protetor de loop e a funcionalidade Unidirectional Link Detection (UDLD) se sobrepõem, em parte no sentido de que ambos protegem contra falhas de STP causadas por links unidirecionais. No entanto, esses dois recursos diferem na funcionalidade e na maneira como 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 timeout de desativação de erro

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 projeto, você pode escolher UDLD ou o recurso protetor de loop. No que diz respeito ao STP, a diferença mais notá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 ordem de grandeza) mais raro do que falhas causadas por links unidirecionais. Por outro lado, o UDLD pode ser mais flexível no caso de enlaces unidirecionais no EtherChannel. Nesse caso, o UDLD desabilita apenas os links com falha e o canal deve permanecer funcional com os links que permanecem. Em tal falha, o protetor de loop o coloca no 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 se torna designada. Como esse comportamento pode ser normal, este caso específico não é coberto pelo protetor de loop. O UDLD oferece proteção contra tal cenário.

Conforme descrito, o nível mais alto de proteção é fornecido quando você habilita 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 seja designada por meio 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 rápido 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

- Entendendo e configurando Backbone Fast em Switches Catalyst

Protetor de BPDU e PortFast e VLAN dinâmica

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

Enlaces compartilhados

O protetor de loop não deve ser ativado 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 deve operar corretamente com 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. Em 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, as BPDUs são perdidas ou a CPU da ponte está muito ocupada para retransmitir a BPDU em tempo hábil. Esses problemas, assim como outros problemas, podem fazer com que as BPDUs cheguem atrasadas (se chegarem mesmo). Esse problema pode comprometer a estabilidade da topologia de spanning tree.

A detecção de desvio de BPDU permite que o switch controle as BPDUs que chegam atrasadas e notifique o administrador com mensagens de syslog. Para cada porta em que uma BPDU chegou atrasada (ou inclinada), a detecção de desvio relata a inclinação mais recente e a duração da inclinação (latência). Ela também relata o retardo de BPDU mais longo nesta porta específica.

Para proteger a CPU da ponte contra a sobrecarga, uma mensagem de syslog não é gerada toda vez que ocorre a distorção 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 (o que é igual 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. Após a detecção de desvio de BPDU, ele envia uma mensagem de syslog. A detecção de desvio de BPDU não executa mais nenhuma ação corretiva.

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 ativar a detecção de desvio de BPDU:

Cat6k> (enable) set spantree bpdu-skewing enable

Spantree bpdu-skewing enabled on this switch.

Para ver as informações de mastigação de BPDU, use o comando show spantree bpdu-skew <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

- Compreendendo e configurando o recurso do protocolo de detecção de enlace unidirecional

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

- Suporte a Produtos de LAN

- Suporte de tecnologia de switching de LAN

- Suporte Técnico e Documentação - Cisco Systems