Roteadores : Roteadores Cisco 12000 Series

Compreendendo o SPD (Selective Packet Discard)

1 Julho 2009 - Tradução Manual
Outras Versões: Versão em PDFpdf | Tradução por Computador (29 Julho 2013) | Inglês (7 Julho 2005) | Feedback

Índice

Introdução
Antes de Começar
      Convenções
      Pré-requisitos
      Componentes Utilizados
Visão Geral
O Processo SPD
      Verificação de Estado do SPD
      Verificação da Fila de Entrada
Diversos
Discussões relacionadas da comunidade de suporte da Cisco

Introdução

Este documento explica o mecanismo SPD (Selective Packet Discard) e como ele pode ser monitorado e ajustado.

Nota: Este documento não explica como fazer o troubleshooting de um número cada vez maior de descartes de entrada na saída do comando show interfaces em um Cisco 12000 Series Internet Router. Para saber como fazer isso, consulte Troubleshooting de Descartes de Entrada no Cisco 12000 Series Internet Router.

Antes de Começar

Convenções

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

Pré-requisitos

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

Componentes Utilizados

As informações deste documento são baseadas nas versões de software e hardware abaixo:

  • Cisco 7200 Series Router

  • Cisco 7500 Series Router

  • Cisco 12000 Series Internet Router

  • Todas as versões do Cisco IOS® software

As informações apresentadas neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração padrão. Se a sua rede estiver em um ambiente de produção, esteja ciente do impacto potencial de qualquer comando antes de utilizá-lo.

Visão Geral

O SPD (Selective Packet Discard) é um mecanismo para gerenciar as filas de entrada em nível de processo no RP (Route Processor). O objetivo do SPD é dar prioridade aos pacotes de protocolo de roteamento e a outros keepalives importantes da Camada 2 de controle de tráfego durante períodos de congestionamento de filas em nível de processo.

Historicamente, em plataformas como o Cisco 7x00 e sistemas não-Cisco Express Forwarding (CEF) 7500, números significativos de pacotes em trânsito eram encaminhados pelo Route Processor para preencher o cache de switching rápido. Consequentemente, o SPD era necessário nesse caso para que os pacotes de protocolo de roteamento tivessem prioridade sobre os pacotes em trânsito que compartilham a mesma fila.

Atualmente, no Cisco 12000 Series Internet Router e no Cisco 7500 que executa o CEF, apenas o tráfego destinado ao próprio roteador é enviado ao nível de processo. Nesse caso, o SPD é utilizado para priorizar os pacotes de protocolo de roteamento quando há tráfego de gerenciamento, como SNMP (Simple Network Management Protocol), ou quando ocorre um ataque de negação de serviço (DoS) que envia tráfego ao RP.

O Processo SPD

No Cisco 12000 Series, quando uma placa de linha determina que um pacote recebido precisa ser direcionado para o RP para processamento, o pacote trafega pelo Switch Fabric como Cisco Cells e finalmente é recebido pelo FPGA (Field Programmable Gate Array) do CSAR (Cisco Cell Segmentation and Reassembly).

Sua finalidade é processar o tráfego entre o Switch Fabric e a CPU do RP, e é nesse local que as verificações do SPD são executadas. Isso se aplica a pacotes IP, pacotes CLNS (Connectionless Network Service), keepalives da Camada 2 e pacotes semelhantes direcionados para o RP. O SPD executa duas verificações e poderá descartar um pacote em um destes dois estados:

  • Verificação do estado do SPD

  • Verificação da fila de entrada

Verificação do Estado do SPD

A fila de processos IP do RP é dividida em duas partes: uma fila geral de pacotes e uma fila de prioridade. Os pacotes colocados na fila geral são submetidos à verificação de estado do SPD e os colocados na fila de prioridade, não. Os pacotes que se qualificam para a fila de prioridade são os de alta prioridade, como os de precedência IP 6 ou 7, e nunca devem ser descartados. No entanto, os não qualificados podem ser descartados aqui, dependendo do tamanho da fila geral de pacotes que, por sua vez, depende do estado do SPD. A fila geral de pacotes pode estar em três estados e, portanto, os pacotes de baixa prioridade podem ser processados de modo diferente:

  • NORMAL: tamanho da fila <= mínimo

  • RANDOM DROP: mínimo <= tamanho da fila <= máximo

  • FULL DROP: máximo <= tamanho da fila

No estado NORMAL, os pacotes bem-formados e malformados nunca são descartados.

No estado RANDOM DROP, os pacotes bem-formados são descartados aleatoriamente. Se o modo agressivo estiver configurado, todos os pacotes malformados serão descartados; caso contrário, eles serão tratados como pacotes bem-formados.

No estado FULL DROP, todos os pacotes bem-formados e malformados são descartados. Esses valores mínimos (padrão 73) e máximos (padrão 74) são derivados da menor fila de espera no chassi, mas podem ser substituídos com os comandos globais ip spd queue min-threshold e ip spd queue max-threshold.

Modo Agressivo

O SPD pode ser configurado em dois modos diferentes: normal (padrão) e agressivo. A única diferença entre os dois é a forma como o roteador lida com os pacotes IP inválidos (checksum inválido, versão incorreta, tamanho de cabeçalho incorreto, tamanho de pacote incorreto). Os pacotes IP malformados são descartados pelo SPD quando o modo agressivo e o estado RANDOM DROP são utilizados. O modo agressivo pode ser configurado com o comando ip spd mode aggressive.

Nota: O modo agressivo não é implementado no Cisco 12000 Series Internet Router uma vez que os pacotes IP malformados são descartados diretamente pela placa de linha de entrada e esses pacotes não são direcionados para o GRP (Gigabit Route Processor). Como resultado, o modo agressivo não é necessário nessa plataforma específica.

Verificação da Fila de Entrada

A fila de entrada é mantida por interface de hardware, compartilhada entre todas as subinterfaces. Sem o SPD, todos os pacotes serão descartados se a fila de entrada estiver cheia quando o pacote for recebido. O tamanho de fila de entrada padrão é 75 e pode ser configurado para cada interface com o comando de configuração de interface hold-queue [size] in. O número de pacotes na fila de entrada pode ser verificado no campo "input queue" do comando show interfaces.

router#show interfaces pos 3/0
POS3/0 is up, line protocol is up
Hardware is Packet over SONET
Internet address is 137.40.55.2/24
MTU 4470 bytes, BW 2488000 Kbit, DLY 100 usec, rely 255/255, load 1/255
Encapsulation PPP, crc 32, loopback not set
Keepalive not set
Scramble disabled
LCP Open
Open: IPCP, CDPCP, OSICP, TAGCP
Last input 00:00:01, output 00:00:00, output hang never
Last clearing of "show interface" counters 2w3d
Queueing strategy: fifo
Output queue 0/40, 0 drops; input queue 0/75, 0 drops
30 second input rate 9000 bits/sec, 0 packets/sec
30 second output rate 0 bits/sec, 0 packets/sec
   456292 packets input, 917329913 bytes, 0 no buffer
   Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
            0 parity
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
112046977 packets output, 32078928095 bytes, 0 underruns
0 output errors, 0 applique, 3 interface resets
0 output buffer failures, 0 output buffers swapped out
1 carrier transitions

Nota: A redução do tamanho da fila de entrada em uma interface poderá ocasionar um enorme número de descartes de entrada em todas as outras interfaces. Certifique-se de que o tamanho mínimo da fila de espera de entrada seja pelo menos 75.

SPD Headroom

Mesmo com o SPD, o comportamento dos pacotes IP normais não é alterado; entretanto os pacotes de protocolo de roteamento recebem uma prioridade mais alta porque o SPD reconhece esses pacotes pelo campo de precedência IP. Dessa maneira, se a precedência IP estiver definida como 6, o pacote terá prioridade.

O SPD prioriza esses pacotes permitindo que o software os coloque na fila de entrada em nível de processo acima do limite normal dessa fila. O número de pacotes permitido além do limite normal é chamado de spd headroom. O padrão é 100, o que significa que um pacote com alta precedência não será descartado se o tamanho da fila de espera de entrada for inferior a 175 (tamanho padrão da fila de entrada + tamanho do spd headroom).

A partir do Cisco IOS Software Release 12.0(22)S, o spd headroom padrão é 1000 para que o Cisco 12000 Series Internet Router possa acomodar redes SP maiores. Isso ocorre porque o recurso de formação de peers BGP (Border Gateway Protocol) é utilizado com um número crescente de vizinhos para anunciar um número cada vez maior de rotas por interfaces cada vez mais rápidas. Em geral, uma única limpeza do BGP poderá resultar em milhares de descartes da fila de entrada em uma única interface, o que poderá afetar seriamente os tempos de convergência.

O SPD headroom pode ser configurado com o comando spd headroom. O seu nível atual pode ser verificado na saída do comando show spd ou show ip spd.

Router#show spd
Headroom: 1000, Extended Headroom: 10

Router#show ip spd
Current mode: normal
Queue min/max thresholds: 73/74, Headroom: 1000, Extended Headroom: 10
IP normal queue: 0, priority queue: 0.
SPD special drop mode: none

Nota: Também é possível monitorar o tamanho da fila normal IP com o comando show ip spd.

SPD Headroom Estendido

Até recentemente, os pacotes diferentes de IP, como pacotes CLNS ISIS (Connectionless Network Service Intermediate System-to-Intermediate System), pacotes PPP (Point-to-Point Protocol) e keepalives HDLC (High-Level Data Link Control), eram tratados como tendo prioridade normal por serem da Camada 2 e não da Camada 3. Além disso, os IGPs (Interior Gateway Protocols) que operam na Camada 3 ou superior tinham prioridade maior do que os pacotes IP normais, mas igual à dos pacotes BGP. Por isso, durante a convergência do BGP ou durante períodos de atividade muito alta do BGP, os hellos e os keepalives IGP eram geralmente descartados, resultando na desativação das adjacências IGP.

Como a estabilidade do link e do IGP é mais tênue e mais relevante do que a do BGP, agora são atribuídos a esses pacotes a prioridade máxima e um SPD headroom estendido com um padrão de 10 pacotes. Isso significa que esses pacotes não serão descartados se o tamanho da fila de espera de entrada for inferior a 185 (tamanho padrão da fila de espera + tamanho do headroom spd + headroom spd estendido).

O SPD headroom estendido pode ser configurado com o comando spd extended [size], e o seu nível atual pode ser verificado na saída do comando show spd ou show ip spd.

Router#show ip spd
Current mode: normal
Queue min/max thresholds: 73/74, Headroom: 100, Extended Headroom: 10
IP normal queue: 0, priority queue: 0.
SPD special drop mode: none

Nota: No Cisco 12000 Series Internet Router, os keepalives HDLC e PPP, juntamente com os pacotes de protocolo de roteamento CLNS ISIS, são tratados como tendo alta prioridade e podem ser enfileirados no SPD headroom estendido desde o Cisco IOS Software Release 12.0(12)S1. Desde o Cisco IOS Software Release 12.0(18)S, todos os pacotes IGP também podem ser enfileirados no SPD headroom estendido.

Diagrama da Fila de Entrada

Os valores padrão, anteriores ao Cisco IOS Software Release 12.0(22)S, são:

  • Tamanho da fila de entrada = 75

  • Tamanho do SPD headroom = 100

  • Tamanho do headroom estendido = 10

Os valores padrão, depois do Cisco IOS Software Release 12.0(22)S, são:

  • Tamanho da fila de entrada = 75

  • Tamanho do SPD headroom = 1000

  • Tamanho do headroom estendido = 10

No primeiro caso, o resultado é:

spd_29920a.gif

  • Os pacotes IP com precedência normal podem ser enfileirados até o limite de fila padrão (75)

  • Os pacotes IP de alta prioridade podem ser enfileirados até o limite de fila padrão + spd_headroom (175 ou 1075 dependendo da release do Cisco IOS Software)

  • Pacotes de keepalive CLNS, IGP e LC podem ser enfileirados até o limite de fila padrão + spd_headroom + spd_ext_headroom (185 ou 1085 dependendo da release do Cisco IOS Software).

Diversos

Estas são algumas dicas e informações adicionais sobre o SPD:

  • Por padrão, o SPD está "ativo". É possível ativá-lo/desativá-lo com o comando global spd enable.

  • Inicialmente, o SPD estava disponível apenas em interfaces PoS (Packet Over Sonet).

  • Antes do Cisco IOS Software Release 12.0(21)S, o SPD não funcionava em placas de linha Gigabit Ethernet (Engine 1 e Engine 2) e placas de linha Fast Ethernet instaladas em um Cisco 12000 Series Internet Router. A fila de espera de entrada teve de ser aumentada para armazenar os pacotes excedentes.

  • No Cisco 7200/7500 Series Router, o contador de descargas (descartes) de SPD pode ser visto na saída do comando show interfaces desde o Cisco IOS Software Releases 12.1(1), 12.1(1)T e 12.0(9)ST para enfileiramento do tipo não-FIFO (primeiro a entrar, primeiro a sair) e desde as releases 12.2(7), 12.2(7)T e 12.1(7)E para enfileiramento do tipo FIFO. Em outras releases e no Cisco 12000 Series Internet Router, esse contador só é visto quando se digita o comando show interface switching. Por exemplo, o comando show interface pos 0/1 switching pode ser utilizado para ver descargas de SPD, descartes agressivos e prioridade.

    Exemplo:

    7500_Router#show interfaces
    
    FastEthernet0/0/0 is up, line protocol is up
    
    Hardware is cyBus FastEthernet Interface, address is 0090.9282.7000 (bia 0090)
    
    MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, rely 255/255, load 1/255
    
    Encapsulation ARPA, loopback not set
    
    Keepalive set (10 sec)
    
    Full-duplex, 100Mb/s, 100BaseTX/FX
    
    ARP type: ARPA, ARP Timeout 04:00:00
    
    Last input 00:00:01, output 00:00:01, output hang never
    
    Last clearing of "show interface" counters never
    
    Queueing strategy: fifo
    
    Output queue 0/40, 0 drops; input queue 0/75, 0 drops, 0 flushes
    
    30 second input rate 4000 bits/sec, 9 packets/sec
    
    30 second output rate 0 bits/sec, 0 packets/sec
    
    2628397 packets input, 546327119 bytes, 0 no buffer
    
    Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
    
    0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
    
    0 watchdog, 0 multicast
    
    0 input packets with dribble condition detected
    
    264792 packets output, 225434458 bytes, 0 underruns
    
    0 output errors, 0 collisions, 20 interface resets
    
    0 babbles, 0 late collision, 0 deferred
    
    22 lost carrier, 0 no carrier
    
    0 output buffer failures, 0 output buffers swapped out
    
    

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: 29920