Switches de LAN : Spanning Tree Protocol

Aperfeiçoamentos do protocolo de extensão de árvore usando os recursos proteção de circuito e detecção de desvio BPDU

14 Outubro 2016 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Tradução Manual (23 Março 2008) | Inglês (7 Outubro 2015) | Feedback


Índice


Introdução

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 a característica do protetor de loop STP que é pretendida melhorar a estabilidade das redes da camada 2. Este documento igualmente descreve a detecção desciada da unidade de dados de protocolo de bridge (PDU). A detecção de desvio de bpdu é uns recursos de diagnóstico que gerenciam mensagens do syslog quando os BPDU não são recebidos a tempo.

Pré-requisitos

Requisitos

Este documento supõe que o leitor é familiar com a operação de STP básica. Refira a compreensão e o protocolo configuring spanning-tree (STP) em Catalyst Switches a fim aprender como o STP trabalha.

Componentes Utilizados

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

Convenções

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

Disponibilidade de recursos

CatOS

  • A característica do protetor de loop de STP foi introduzida na versão cactos 6.2.1 do Catalyst Software para Plataformas do Catalyst 4000 and Catalyst 5000 e na versão 6.2.2 para a plataforma do catalizador 6000.

  • Os recursos de detecção de desvio BPDU foram introduzidos na versão cactos 6.2.1 do Catalyst Software para Plataformas do Catalyst 4000 and Catalyst 5000 e na versão 6.2.2 para a plataforma do catalizador 6000.

½ do ¿  de Cisco IOSïÂ

  • A característica do protetor de loop de STP foi introduzida no Cisco IOS Software Release 12.1(12c)EW para Catalyst 4500 Switch e Cisco IOS Software Release 12.1(11b)EX para o Catalyst 6500.

  • Os recursos de detecção de desvio BPDU não são apoiados nos Catalyst Switches que executam o software do sistema do Cisco IOS.

Resumo breve das funções da porta STP

Internamente, o STP atribui a cada porta da ponte (ou o interruptor) um papel que seja baseado na configuração, na topologia, na posição relativa da porta na topologia, e nas outras considerações. A função da porta define o comportamento da porta sob o ponto de vista STP. Baseado na função da porta, a porta envia ou recebe STP BPDU e para a frente ou obstrui o tráfego de dados. Esta lista fornece um sumário breve de cada função da porta STP:

  • Designado — Um Designated Port é elegido pelo link (segmento). O Designated Port é a porta a mais próxima ao bridge-raiz. Esta porta envia BPDU no link (segmento) e trafica para a frente para o bridge-raiz. Em uma rede convergida STP, cada Designated Port está no estado do encaminhamento STP.

  • Raiz — A ponte pode ter somente uma porta de raiz. A porta de raiz é a porta que aquela conduz ao bridge-raiz. Em uma rede convergida STP, a porta de raiz está no estado do encaminhamento STP.

  • Substituição — Os portos alternados conduzem ao bridge-raiz, mas não são portas de raiz. As portas alternadas mantêm o estado de bloqueio de STP.

  • Backup — Este é um caso especial quando dois ou mais portas da mesma ponte (interruptor) são conectados junto, diretamente ou com os meios compartilhados. Neste caso, uma porta é designada, e o bloco das portas restante. O papel para esta porta é alternativo.

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 obstrui uma porta incompatível, esta mensagem está 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 o BPDU é recebido em uma porta em um estado do loop inconsistente STP, as transições de porta em um outro estado STP. De acordo com o BPDU recebido, isto 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 a fim ilustrar este comportamento:

O Switch A é o switch-raiz. O C do interruptor não recebe BPDU do switch B devido à falha de link unidirecional no link entre o switch B e o C do interruptor.

/image/gif/paws/10596/84a.gif

Sem protetor de loop, a porta de bloqueio STP em transições do C do interruptor ao estado de escuta e aprendizagem STP quando o temporizador do max_age expirar, e então ele transições ao estado de encaminhamento em duas vezes o tempo do forward_delay. Esta situação cria um loop.

/image/gif/paws/10596/84b.gif

Com o protetor de loop permitido, a porta de bloqueio em transições do C do interruptor no estado inconsistente de loop STP quando o temporizador do max_age expirar. Uma porta no estado inconsistente de loop STP não passa o tráfego de usuário, assim que um laço não é criado. (O estado inconsistente de loop é eficazmente igual ao estado de bloqueio.)

/image/gif/paws/10596/84c.gif

Considerações sobre configuração

A característica do protetor de loop é permitida em uma base por porto. Contudo, enquanto obstrui a porta no nível STP, o protetor de loop obstrui portas incompatíveis em uma base do VLAN per. (devido ao VLAN per. STP). Isto é, se os BPDU não são recebidos na porta de tronco para somente um VLAN particular, simplesmente esse VLAN é obstruído (movido para o estado do loop inconsistente STP). Pela mesma razão, se permitido em uma relação do EtherChannel, o canal inteiro é obstruído para um VLAN particular, não apenas um link (porque o EtherChannel é considerado como uma porta lógica do ponto de vista STP).

Em que portas deve o protetor de loop ser permitido? A resposta a mais óbvia está nas portas de bloqueio. Contudo, isto não está totalmente correto. O protetor de loop deve ser permitido nas portas não designadas (mais precisamente, na raiz e nos portos alternados) para todas as combinações possíveis de topologias ativa. 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 cenários de failover possíveis devem igualmente ser levados em consideração.

Considere este exemplo:

/image/gif/paws/10596/84d.gif

À revelia, o protetor de loop é desabilitado. Este comando é usado permitir o protetor de loop:

  • 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
    

Com versão 7.1(1) do Catalyst Software (Cactos), o protetor de loop pode ser permitido globalmente em todas as portas. Eficazmente, o protetor de loop é permitido em todos os link de ponto a ponto. O link de ponto a ponto é detectado pelo status bidirecional do link. Se o duplex está completo, o link está considerado ponto a ponto. É ainda possível configurar, ou ultrapassagem, configurações globais em uma base por porto.

Emita este comando a fim permitir globalmente o protetor de loop:

  • CatOS

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

    Router(config)#spanning-tree loopguard default
    

Emita este comando a fim desabilitar o protetor de loop:

  • CatOS

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

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

Emita este comando a fim desabilitar globalmente o protetor de loop:

  • CatOS

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

    Router(config)#no spanning-tree loopguard default
    

Emita este comando a fim verificar o estado do protetor de loop:

  • 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

Protetor de loop contra o UDLD

A sobreposição da funcionalidade do protetor de loop e do UniDirectional Link Detection (UDLD), em parte no sentido que ambos protegem contra falhas de STP causou por enlaces unidirecional. Contudo, estas duas características diferem na funcionalidade e como aproximam o problema. Esta tabela descreve o protetor de loop e a funcionalidade UDLD:

Funcionalidade Protetor de loop UDLD
Configuração Porta per. Porta per.
Granularidade da ação VLAN per. Porta per.
Autorecover Sim Sim, com recursos de timeout do desativado por erro
Proteção contra as falhas de STP causadas por enlaces unidirecional Sim, quando permitido em toda a raiz e portos alternados na topologia redundante Sim, quando permitido em todos os links na topologia redundante
Proteção contra as falhas de STP causadas por problemas no software (o switch designado não envia o BPDU) Sim Não
Proteção contra miswiring. Não Sim

Baseado nas várias considerações de projeto, você pode escolher o UDLD ou a característica do protetor de loop. Com respeito ao STP, a maioria de diferença notável entre as duas características é a ausência de proteção no UDLD contra as falhas de STP causadas por problemas no software. Em consequência, o switch designado não envia BPDU. Contudo, este tipo de falha é (por um ordem de importância) mais raro do que as falhas causadas por enlaces unidirecional. Por outro lado, o UDLD pode ser mais flexível no caso de enlaces unidirecionais no EtherChannel. Neste caso, o UDLD desabilita somente link falhos, e o canal deve permanecer funcional com os links que permanecem. Em tal falha, o protetor de loop põe-na no estado inconsistente de loop a fim obstruir o canal inteiro.

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 o BPDU e torna-se designada. Porque este comportamento poderia ser normal, este caso particular não é coberto pelo protetor de loop. O UDLD fornece a proteção contra tal encenação.

Como descrito, o mais de nível elevado da proteção é fornecido quando você permite 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 exclusivos com o protetor de loop. O protetor de raiz é usado em portas designadas, e não permite que a porta torne-se não-designado. O protetor de loop funciona em portas não designadas e não permite que a porta torne-se designada com a expiração do 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, desabilita 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 o max_age é saltado pelo Backbone Fast na altura da reconvergência, não provoca o protetor de loop. Para obter mais informações sobre do Uplink Fast e do Backbone Fast, refira estes documentos:

Protetor de BPDU e PortFast e VLAN dinâmica

O protetor de loop não pode ser permitido para as portas em que o portfast é permitido. Desde que o protetor de BPDU funciona em portas habilitadas de portfast, algumas limitações aplicam-se ao protetor de BPDU. O protetor de loop não pode ser permitido em portas VLAN dinâmica desde que estas portas têm o portfast permitido.

Enlaces compartilhados

O protetor de loop não deve ser permitido nos links compartilhados. Se você permite o protetor de loop nos links compartilhados, o tráfego dos anfitriões conectados aos segmentos compartilhados pôde ser obstruído.

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-se 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 do hello_time (2 segundos à revelia), o bridge-raiz envia BPDU. Os Non-Root Bridge não regeneram BPDUs a cada mensagem hello_time, mas recebem BPDUs repetidos do Root Bridge. Consequentemente, cada bridge sem raiz deve receber BPDU em cada VLAN para cada mensagem do hello_time. Em alguns casos, os BPDU são perdidos, ou a ponte CPU é demasiado ocupada retransmitir em tempo oportuno o BPDU. Estas edições, assim como outras edições, podem fazer com que os BPDU cheguem tarde (se chegam de todo). Esta edição compromete potencialmente a estabilidade da topologia de Spanning Tree.

A detecção de desvio de bpdu permite que o interruptor mantenha-se a par dos BPDU que chegam tarde e notifique-se o administrador com mensagens do syslog. Para cada porta em que um BPDU tem chegado nunca tarde (ou enviesou), a detecção desciada relata o enviesado o mais recente e a duração do enviesamento (latência). Ela também relata o retardo de BPDU mais longo nesta porta específica.

A fim proteger a ponte CPU da sobrecarga, um mensagem do syslog não é gerado cada vez que o enviesamento BPDU ocorre. As mensagens são limitadas por taxa a uma mensagem a cada 60 segundos. Contudo, o atraso do BPDU exceder o max_age dividido por 2 (que iguala os segundos 10 à revelia), a mensagem é imprimida imediatamente.

Nota: A detecção de desvio de bpdu é uns recursos de diagnóstico. Após detecção do BPDU que enviesa, envia um mensagem do syslog. A detecção de desvio de bpdu não toma nenhuma ação corretiva mais adicional.

Este é um exemplo de um mensagem do syslog gerado 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 em uma base por switch. A configuração padrão está desabilitada. Emita este comando a fim permitir a detecção de desvio de bpdu:

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

A fim ver a informação de desvio de BPDU, use o BPDU-enviesamento do spantree da mostra <vlan >|comando do <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


Document ID: 10596