Switches de LAN : Spanning Tree Protocol

Melhorias do Spanning Tree Protocol com Protetor de Loop e Recursos de Detecção de Desvio de BPDU

23 Março 2008 - Tradução Manual
Outras Versões: Versão em PDFpdf | Tradução por Computador (29 Julho 2013) | Inglês (22 Janeiro 2007) | Feedback


Índice

Introdução
Pré-requisitos
     Requisitos
     Componentes Usados
     Convenções
Disponibilidade de Recursos
Breve Resumo das Funções das Portas do STP
Protetor de Loop de STP
     Descrição do Recurso
     Considerações Sobre Configuração
     Protetor de Loop versus UDLD
     Interoperabilidade do Protetor de Loop com Outros Recursos de STP
Detecção de Desvio de BPDU
     Descrição do Recurso
     Considerações Sobre Configuração
Discussões relacionadas da comunidade de suporte da Cisco

Introdução

O Spanning Tree Protocol (STP) resolve topologias físicas redundantes em topologias semelhantes a árvores e sem loops. No entanto, poderão ocorrer falhas no STP devido a problemas de hardware. Essas falhas criarão loops de encaminhamento (ou loops de STP). Grandes interrupções de rede são provocadas por loops de STP.

Este documento descreve o recurso de protetor de loop de STP cujo objetivo é melhorar a estabilidade das redes de camada 2 (L2). Ele também descreve a detecção de desvio de unidade de dados de protocolo de pontes (BPDU). A detecção de desvio de BPDU consiste em um recurso de diagnóstico que gera mensagens syslog quando as BPDUs não são recebidas a tempo. Este documento considera que o leitor está familiarizado com a operação do STP e com as funções das portas, como porta designada, porta raiz e porta alternativa.

Consulte Entendendo como a Árvore de Abrangência Funciona para obter uma descrição da operação do STP.

Pré-requisitos

Requisitos

Não existem requisitos específicos para este documento.

Componentes Usados

Este documento não está restrito a versões específicas de software e de hardware.

Convenções

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

Disponibilidade de Recursos

O recurso de protetor de loop STP foi apresentado 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.

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

Breve Resumo das Funções das Portas do STP

Internamente, o STP atribui a cada porta de ponte (ou switch) uma função baseada na configuração, topologia, 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 do STP. Com base na função da porta, ela envia ou recebe BPDUs de STP e encaminha ou bloqueia o tráfego de dados. Esta lista fornece um breve resumo da função de cada porta do STP.

  • Designated — (Designada) Uma porta designada é determinada por link (segmento). A porta designada é a mais próxima da ponte raiz. Essa porta envia BPDUs no link (segmento) e encaminha o tráfego em direção à ponte raiz. Em uma rede convergida de STP, cada porta designada está no estado de encaminhamento de STP.

  • Root — (Raiz) A ponte pode ter apenas uma porta raiz. A porta raiz é a porta que leva à ponte raiz. Em uma rede convergida de STP, a porta de raiz está no estado encaminhamento de STP.

  • Alternate — (Alternativa) Portas alternativas levam à ponte raiz, mas não são portas raiz. As portas alternativas mantêm o estado de bloqueio de STP.

  • Backup — Este é um caso especial quando duas ou mais portas da mesma ponte (switch) estão conectadas juntas, diretamente ou através de um meio compartilhado. Nesse caso, uma porta será designada e as restantes serão bloqueadas. A função da porta é de backup.

Protetor de Loop de STP

Descrição do Recurso

O recurso de protetor de loop de STP fornece uma proteção adicional contra loops de encaminhamento de camada 2 (loops de STP). Um loop de STP é criado quando uma porta de bloqueio de 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) parou de receber BPDUs de STP. Na sua operação, o STP confia na recepção ou transmissão continua de BPDUs 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 deixa de receber BPDUs, o STP considera que a topologia não possui um loop. Por fim, a porta de bloqueio da porta alternativa ou de backup torna-se designada e passa para o estado de encaminhamento. Isso cria um loop.

O recurso de protetor de loop realiza uma verificação adicional. Se as BPDUs não forem mais recebidas em uma porta não designada e o protetor de loop estiver habilitado, essa porta passará ao estado de bloqueio inconsistente de loop de STP em vez de passar para o estado de escuta/reconhecimento/encaminhamento. Sem o recurso de protetor de loop, a porta assume o papel de porta designada. A porta passa para o estado de encaminhamento de STP e cria um loop.

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

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

Quando a BPDU é recebida em uma porta em um estado de STP de loop inconsistente, a porta passa para outro estado de STP. De acordo com a BPDU recebida, isso significa que a recuperação é automática e nenhuma intervenção é necessária. Após a recuperação, esta mensagem é registrada:

SPANTREE-2-LOOPGUARDUNBLOCK: port 3/2 restored in vlan 3.

Considere este exemplo para ilustrar esse comportamento:

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

84a.gif

Sem o protetor de loop, a porta de bloqueio de STP no switch C fará a transição para o estado de escuta do STP quando o cronômetro max_age expirar e, em seguida, passará para o estado de encaminhamento no dobro de tempo de forward_delay. Isso cria um loop.

84b.gif

Com o protetor de loop habilitado, a porta de bloqueio no switch C fará a transição para o estado inconsistente de loop de STP quando o cronômetro max_age expirar. Uma porta no estado inconsistente de loop STP não passa tráfego de usuário; portanto, nenhum loop é criado. (O estado de loop inconsistente é praticamente igual ao estado de bloqueio).

84c.gif

Considerações Sobre Configuração

Há um recurso de protetor de loop habilitado para cada porta. No entanto, enquanto ele bloquear a porta no nível do STP, o protetor de loop bloqueará portas inconsistentes baseada nas VLANs (devido ao STP por VLAN). Ou seja, se as BPDUs não forem recebidas na porta de tronco somente em uma VLAN em particular, apenas essa VLAN será bloqueada (movida para o estado de loop inconsistente de STP). Pela mesma razão, caso esteja habilitado na interface EtherChannel, o canal inteiro será bloqueado para uma determinada VLAN e não apenas um link (porque o EtherChannel diz respeito a uma porta lógica do ponto de vista do STP).

Em quais portas o protetor de loop deve ser habilitado? A resposta mais óbvia é: nas portas de bloqueio. Entretanto, isso não está totalmente correto. O protetor de loop precisa ser habilitado nas portas não designadas (mais exatamente, nas portas raiz e alternativa) para todas as combinações possíveis de topologias ativas. Contanto 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 outra. Os cenários possíveis de failover também devem ser considerados.

Considere este exemplo:

84d.gif

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

set spantree guard loop <mod/port>

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

Com a versão 7.1(1) do software Catalyst, o protetor de loop pode ser habilitado globalmente em todas as portas. Na verdade, o protetor de loop é habilitado em todos os links de ponto a ponto. O link de ponto a ponto é detectado pelo status duplex do link. Se o duplex for bidirecional, o link será considerado de ponto a ponto. Ainda é possível configurar ou substituir as definições globais para cada porta.

Execute este comando para habilitar o protetor de loop globalmente:

set spantree global-default loopguard enable

Execute este comando para desabilitar o protetor de loop:

set spantree guard none <mod/port>

Execute este comando para desabilitar o protetor de loop globalmente:

set spantree global-default loopguard disable

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

show spantree guard <mod/port> | vlan

Nelix> (enable) show spantree guard 3/13
Port                     VLAN Port-State    Guard Type
------------------------ ---- ------------- ----------
3/13                     2    forwarding          loop
Nelix> (enable)

Protetor de Loop versus UDLD

O protetor de loop e a funcionalidade de detecção de link unidirecional (UDLD) se sobrepõem, parcialmente porque ambos protegem contra falhas de STP provocadas por links unidirecionais. No entanto, esses dois recursos são diferentes quanto à abordagem do problema e à funcionalidade. Esta tabela descreve o protetor de loop e a funcionalidade UDLD:

Funcionalidade

Protetor de Loop

UDLD

Configuração

Por porta

Por porta

Granularidade de ação

Por VLAN

Por porta

Auto-recuperação

Sim

Sim, com recurso de intervalo err-disable

Proteção contra falhas do STP provocadas por links unidirecionais.

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

Sim, quando habilitada em todos os links na topologia redundante

Proteção contra falhas do STP provocadas por problemas no software (o switch designado não envia BPDUs)

Sim

Não

Proteção contra erros de conexão.

Não

Sim

Com base nas várias considerações sobre o desenho, você pode escolher o recurso UDLD ou o 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 na UDLD contra falhas do STP provocadas por problemas no software. Conseqüentemente, o switch designado não envia BPDUs. Entretanto, esse tipo de falha é (por ordem de grandeza) mais rara que as falhas geradas por links unidirecionais. Por outro lado, a UDLD pode ser mais flexível no caso de links unidirecionais no EtherChannel. Nesse caso, a UDLD desativa apenas os links que apresentaram falha e o canal deve permanecer ativo com os links restantes. Durante essa falha, o protetor de loop a coloca em estado inconsistente de loop para bloquear todo o canal.

Adicionalmente, o protetor de loop não funciona em links compartilhados nem em situações nas quais o link seja unidirecional desde a conexão. Nesse último caso, a porta nunca recebe uma BPDU e torna-se designada. Como esse comportamento pode ser o comportamento normal, esse caso específico não é coberto pelo protetor de loop. A UDLD oferece proteção contra tal cenário.

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

Interoperabilidade do Protetor de Loop com Outros Recursos de STP

Protetor de Raiz

O protetor de raiz e o protetor de loop são mutuamente excludentes. O protetor de raiz é usado em portas designadas e não permite que a porta torne-se uma porta não designada. O protetor de loop funciona em portas não designadas e não permite que a porta torne-se uma porta designada por meio da expiração de max_age. O protetor de raiz não pode estar habilitado na mesma porta do protetor de loop. Quando o protetor de loop estiver configurado na porta, o protetor de raiz configurado na mesma porta será desabilitado.

Uplink Fast e Backbone Fast

Tanto o Uplink Fast quanto o Backbone Fast são transparentes para o protetor de loop. Quando max_age for pulado pelo backbone fast durante reconvergência, ele não disparará o protetor de loop. Para obter mais informações sobre o Uplink Fast e o Backbone Fast, consulte estes documentos:

Protetor de BPDU e PortFast e VLAN Dinâmica

O protetor de loop não pode ser habilitado nas portas em que o PortFast está habilitado. Como o protetor de BPDU funciona nas portas com PortFast habilitado, algumas restrições se aplicam ao protetor de BPDU. O protetor de loop não pode ser habilitado em portas VLAN dinâmicas porque essas portas estão com o PortFast ativado.

Links Compartilhados

O protetor de loop não deverá estar habilitado em links compartilhados. Se você habilitar o protetor de loop em links compartilhados, o tráfego proveniente de hosts conectados a segmentos compartilhados poderá ficar bloqueado.

Árvore de Abrangência Múltipla (MST)

O protetor de loop funciona corretamente no ambiente MST.

Detecção de Desvio de BPDU

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

Detecção de Desvio de BPDU

Descrição do Recurso

A operação do STP depende muito da recepção precisa de BPDUs. A cada mensagem hello_time (2 segundos por padrão), a ponte raiz envia BPDUs. Pontes que não sejam raiz não regeneram BPDUs a cada mensagem hello_time, mas recebem BPDUs retransmitidas pela ponte raiz. Portanto, toda ponte que não for raiz deverá receber BPDUs em todas as VLANs de cada mensagem hello_time. Em alguns casos, as BPDUs são perdidas ou a CPU da ponte está muito ocupada para retransmitir uma BPDU de modo oportuno. Esses problemas, assim como outras questões, podem fazer com que as BPDUs cheguem com atraso (caso cheguem de fato). Esse problema compromete em grande escala a estabilidade da topologia de Spanning Tree.

A detecção de desvio de BPDU permite que o switch mantenha o controle de BPDUs que chegam atrasadas e notifique o administrador com mensagens syslog. Em cada porta na qual uma BPDU tenha chegado com atraso (ou tenha sido desviada), a detecção de desvio relatará a ocorrência e a duração do desvio mais recente (latência). Ela também relata o retardo de BPDU mais longo nessa porta específica.

Para proteger a CPU de pontes contra sobrecarga, uma mensagem syslog não é gerada todas as vezes que um desvio de BPDU ocorre. As mensagens são limitadas por taxa a uma mensagem a cada 60 segundos. No entanto, se o retardo de BPDU ultrapassar a max_age dividida por 2 (que totaliza 10 segundos por padrão), a mensagem é impressa imediatamente.

Observação: A detecção de desvio de BPDU é recurso de diagnóstico. Com a detecção do desvio da BPDU, ele envia uma mensagem syslog. A detecção de desvio de BPDU não realiza nenhuma ação corretiva posteriormente.

Este é um exemplo de uma mensagem syslog gerada por uma 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 para cada 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 consultar mais informações sobre o desvio de BPDU, use o comando show spantree bpdu-skewing <vlan>|<mod/port> conforme 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

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Document ID: 10596