Este documento explica o mecanismo SPD (Selective Packet Discard) e como ele pode ser monitorado e ajustado.
Observação: este documento não explica como solucionar problemas de um número cada vez maior de quedas de entrada na saída show interfaces em um Cisco 12000 Series Internet Router. Para obter mais informações sobre esse problema, consulte Troubleshooting Input Drops no Cisco 12000 Series Internet Router.
Consulte as Convenções de Dicas Técnicas da Cisco para obter informações sobre convenções de documentos.
Não existem requisitos específicos para este documento.
As informações neste documento são baseadas nestas versões de software e hardware:
Cisco 7200 Series Router
Cisco 7500 Series Router
Cisco 12000 Series Internet Router
Todas as versões do software Cisco IOS®
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. All of the devices used in this document started with a cleared (default) configuration. Se você estiver trabalhando em uma rede ativa, certifique-se de que entende o impacto potencial de qualquer comando antes de utilizá-lo.
O Selective Packet Discard (SPD) é um mecanismo para gerenciar as filas de entrada no nível de processo do processador de rotas (RP). O objetivo do SPD é dar prioridade aos Routing Protocol Packets e outros Traffic Control Layer 2 Keepalives importantes durante períodos de congestionamento de fila de nível de processo.
Historicamente, em plataformas como Cisco 7x00 e sistemas não-Cisco Express Forwarding (CEF) 7500, números significativos de pacotes de trânsito eram encaminhados pelo Processador de Rotas para preencher o cache de switching rápida. Consequentemente, o SPD era necessário nesse caso para priorizar os pacotes do protocolo de roteamento sobre os pacotes de trânsito que compartilham a mesma fila.
Atualmente, no Cisco 12000 Series Internet Router e do Cisco 7500 Series executando CEF, apenas o tráfego destinado ao próprio roteador é enviado para o nível de processo. Nesse caso, o SPD é usado para priorizar os pacotes de Routing Protocol quando o tráfego de gerenciamento, como o Simple Network Management Protocol (SNMP) está presente ou quando o um ataque de Denial of Service (DoS), enviando tráfego ao RP, está ocorrendo.
No Cisco 12000 Series, quando uma placa de linha determina que um pacote de entrada precisa de apontado no RP para processamento, o pacote viaja pelo Switch Fabric como Células Cisco e é finalmente recebido pelo recurso Cisco Cell Segmentation and Reassembly (CSAR) Field Programmable Gate Array (FPGA).
Sua finalidade é processar o tráfego entre a tela do Switch e a CPU do RP e é aí que as verificações de SPD são executadas. Isso se aplica a pacotes IP, pacotes do serviço de rede connectionless (CLNS), keepalives da Camada 2 e pacotes similares encaminhados por punt ao RP. O SPD executa duas verificações e pode possivelmente eliminar um pacote em um destes dois estados:
Verificação do estado do SPD
Verificação da fila de entrada
A fila do processo IP no RP é dividida em duas partes: uma fila de pacotes geral e uma fila de prioridade. Os pacotes colocados na fila geral de pacotes estão sujeitos à verificação de estado SPD e os que estão na fila prioritária não estão. Pacotes que se qualificam para a fila de pacotes prioritários são aqueles de alta prioridade, como os de precedência de IP 6 ou 7, e nunca devem ser descartados. Os não-qualificados, porém, podem ser cancelados aqui, dependendo do tamanho da fila geral de pacotes que, por sua vez, depende do estado de SPD. A fila geral de pacotes pode estar em três estados e, como tal, pacotes de baixa prioridade podem ser processados de modo diferente:
NORMAL: tamanho da fila <= min
QUEDA ALEATÓRIA: min <= tamanho da fila <= max
FULL DROP: max <= tamanho da fila
No estado NORMAL, nunca descartamos pacotes bem-formados ou malformados.
No estado RANDOM DROP, descartamos aleatoriamente pacotes bem formados. Se o modo agressivo estiver configurado, todos os pacotes malformados serão descartados; caso contrário, nós os tratamos como pacotes bem formados.
Observação: essas quedas aleatórias são chamadas de descargas SPD. Basicamente, quando a interface é sobrecarregada, ocorrem liberações. Falhas de buffer fazem com que o contador de descarga aumente.
No estado FULL DROP, descartamos todos os pacotes bem-formados e malformados. Esses valores mínimo (padrão 73) e máximo (padrão 74) são derivados da menor fila de contenção do chassi, mas podem ser anulados com os comandos globais ip spd queue min-threshold e ip spd queue max-threshold.
O SPD pode ser configurado para dois modos diferentes: normal (padrão) e agressivo. A única diferença entre os dois é a forma como o roteador explica os pacotes IP inválidos (checksum inválido, versão incorreta, comprimento de cabeçalho incorreto, comprimento de pacote incorreto). Pacotes de IP malformados são eliminados por SPD quando estamos em modo agressivo e no estado de descarte aleatório. O modo agressivo pode ser configurado usando o comando ip spd mode agressive.
Observação: o modo agressivo não é implementado no Cisco 12000 Series Internet Router, pois os pacotes IP malformados são descartados diretamente pela placa de linha de entrada e esses pacotes não são direcionados ao Gigabit Route Processor (GRP). Como resultado, o modo agressivo não é necessário nesta plataforma específica.
A fila de entrada é mantida por interface de hardware, compartilhada entre todas as subinterfaces. Sem o SPD, todos os pacotes são encerrados se a fila de entrada estiver cheia quando o pacote for recebido. O tamanho padrão da fila de entrada é 75 e pode ser configurado por interface usando o hold-queue [size] no comando de configuração de interface. O número de pacotes da fila de entrada pode ser visto 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
Observação: diminuir o tamanho da fila de entrada em uma interface pode causar um grande número de quedas de entrada em todas as outras interfaces. Certifique-se de que o tamanho mínimo de fila de espera configurado seja 75.
Mesmo com o SPD, o comportamento dos pacotes IP normais não é alterado; no entanto, os pacotes do protocolo de roteamento recebem prioridade mais alta porque o SPD reconhece os pacotes do protocolo de roteamento pelo campo de precedência IP. Assim sendo, se a precedência de IP for definida como 6, então o pacote terá prioridade.
O SPD prioriza esses pacotes permitindo que o software os enfileire na fila de entrada do nível de processos acima do limite normal da fila de entrada. 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 precedência mais alta não é interrompido se o tamanho da fila de espera de entrada for inferior a 175 (tamanho padrão da fila de entrada + tamanho de spd headroom).
Desde a Versão do Software Cisco IOS 12.0(22)S, a altura livre padrão de SPD é 1000 para o Roteador de Internet da Série Cisco 12000 acomodar redes de SP maiores. Isso se deve ao fato de que o peering do Border Gateway Protocol (BGP) é usado com um número crescente de vizinhos para anunciar um número crescente de rotas por interfaces cada vez mais rápidas. Uma única limpeza do BGP pode resultar em milhares de quedas de fila de entrada em uma única interface, o que pode prejudicar gravemente os tempos de convergência.
O espaço de SPD é configurável utilizando o comando spd headroom. Seu nível atual pode ser visto 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
Observação: o tamanho da fila IP normal também pode ser monitorado pelo comando show ip spd.
Pacotes que não são IP, como pacotes CLNS ISIS (Connectionless Network Service Intermediate System-to-Intermediate System), pacotes PPP (Protocolo ponto a ponto) e manutenções de atividades HDLC (High-Level Data Link Control) eram tratados, até recentemente, como prioridade normal como um resultado de ser camada 2 em vez de camada 3. Além disso, Protocolos de gateway interior (IGPs) operando na Camada 3 ou superior receberam prioridade sobre pacotes de IP normais, mas receberam a mesma prioridade de pacotes BGP. Por isso, durante a convergência BGP ou durante tempos de atividade BGP muito alta, as saudações e as manutenções de atividade IGP eram normalmente descartadas, causando a desativação das adjacências IGP.
Já que o IGP e a estabilidade do enlace são mais tênues e mais cruciais que a estabilidade de BGP, a estes pacotes são fornecidas prioridade mais alta e espaço de SPD 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 + o tamanho do headroom spd + headroom spd estendido).
O espaço de sobra do SPD estendido é configurável usando o comando spd extended [size], e seu nível atual pode ser visto 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
Observação: no Cisco 12000 Series Internet Router, os keepalives HDLC e PPP, juntamente com os pacotes do protocolo de roteamento CLNS ISIS, são tratados como alta prioridade e podem ser enfileirados no headroom de SPD 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 podem ser enfileirados no espaço de cabeçalho SPD estendido também.
Os valores padrão, anteriores ao software Cisco IOS® Versão 12.0(22)S, são:
Tamanho da fila de entrada = 75
Tamanho do espaço SPD = 100
Tamanho do espaço estendido = 10
Os valores padrão, depois do software Cisco IOS versão 12.0(22)S, são:
Tamanho da fila de entrada = 75
Tamanho do espaço SPD = 1000
Tamanho do espaço estendido = 10
No primeiro caso, ele oferece:
Pacotes IP com precedência normal têm permissão de enfileirar até o limite de fila padrão (75)
Os pacotes IP de alta prioridade podem enfileirar até o limite da fila padrão _ spd_headroom (175 ou 1075 com base na versão de software do Cisco IOS)
Pacotes de manutenção de atividade CLNS, IGP e LC podem enfileirar até o limite de fila padrão + spd_headroom + spd_ext_headroom (185 ou 1085 com base na versão do software Cisco IOS).
Aqui estão algumas dicas e informações adicionais sobre o SPD:
Por padrão, SPD é "ativo". Ele pode ser ativado/desativado usando o comando global spd enable.
Inicialmente, o SPD estava disponível apenas em interfaces de Pacote sobre Sonet (PoS).
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 nas placas de linha Fast Ethernet que são instaladas em um roteador de Internet do Cisco 12000 Series. A fila de espera de entrada teve de ser aumentada para armazenar o excesso de pacotes.
No Cisco 7200/7500 Series Router, o contador de descargas (descartes) de SPD pode ser visto na saída do comando show interfaces desde os Cisco IOS Software Releases 12.1(1), 12.1(1)T e 12.0(9)ST para enfileiramento não-FIFO (primeiro a entrar primeiro a sair) e desde 12.2(7), 12.2(7)T e 12.1(7)E para enfileiramento FIFO. Em outras versões e no Cisco 12000 Series Internet Router, esse contador só é visto digitando o comando show interface switching. Por exemplo, o comando show interface pos 0/1 switching pode ser usado para ver descargas SPD, descartes agressivos e prioridade.
Aqui está um 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