Sommario

Introduzione

Operazioni preliminari

Convenzioni

Prerequisiti

Componenti usati

Panoramica

Il processo SPD

Controllo stato SPD

Controllo coda di input

Varie

Informazioni correlate

Introduzione

Questo documento spiega il meccanismo SPD (Selective Packet Discard) e come può essere monitorato e regolato.

Nota: questo documento non spiega come risolvere i problemi relativi a un numero crescente di perdite di input nell'output show interfaces su un router Internet Cisco serie 12000. Per ulteriori informazioni su questo problema, consultare il documento sulla risoluzione dei problemi relativi alle gocce di input su Cisco serie 12000 Internet Router.

Operazioni preliminari

Convenzioni

Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.

Prerequisiti

Non sono previsti prerequisiti specifici per questo documento.

Componenti usati

Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:

- Router Cisco serie 7200

- Router Cisco serie 7500

- Cisco serie 12000 Internet Router

- Tutte le versioni del software Cisco IOS®

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Panoramica

L'SPD (Selective Packet Discard) è un meccanismo che consente di gestire le code di input a livello di processo nel processore di routing (RP). L'obiettivo di SPD è fornire priorità ai pacchetti del protocollo di routing e ad altri importanti pacchetti keepalive di layer 2 per il controllo del traffico durante i periodi di congestione della coda a livello di processo.

Storicamente, su piattaforme come Cisco 7x00 e sistemi non Cisco Express Forwarding (CEF) 7500, il processore di routing ha inoltrato un numero significativo di pacchetti in transito per popolare la cache a commutazione rapida. Di conseguenza, in questo caso SPD doveva dare la priorità ai pacchetti del protocollo di routing sui pacchetti di transito che condividono la stessa coda.

Al momento, sul Cisco serie 12000 Internet Router e sul Cisco 7500 con CEF, solo il traffico destinato al router stesso viene inviato al livello di processo. In questo caso, SPD viene utilizzato per assegnare la priorità ai pacchetti del protocollo di routing quando è presente traffico di gestione, ad esempio SNMP (Simple Network Management Protocol) o quando si verifica un attacco Denial of Service (DoS) durante l'invio di traffico all'RP.

Il processo SPD

Su Cisco serie 12000, quando una scheda di linea determina che un pacchetto in arrivo deve essere inoltrato all'RP per l'elaborazione, il pacchetto viaggia attraverso il fabric dello switch come Cisco Cells ed è infine ricevuto dal Cisco Cell Segmentation and Reassembly (CSAR) Field Programmable Gate Array (FPGA).

Lo scopo è gestire il traffico tra il fabric dello switch e la CPU RP, ed è qui che vengono eseguiti i controlli SPD. Ciò si applica ai pacchetti IP, ai pacchetti CLNS (Connectionless Network Service), ai pacchetti keepalive di livello 2 e pacchetti simili inviati al protocollo RP. SPD esegue due controlli e potenzialmente può rilasciare un pacchetto in uno di questi due stati:

- Controllo stato SPD

- Controllo coda di input

Controllo stato SPD

La coda di elaborazione IP sull'RP è divisa in due parti: una coda di pacchetto generale e una coda di priorità. I pacchetti inseriti nella coda generale sono soggetti al controllo dello stato SPD, mentre quelli inseriti nella coda di priorità non lo sono. I pacchetti qualificati per la coda di pacchetti con priorità alta sono pacchetti con priorità alta come quelli con precedenza IP 6 o 7 e non devono mai essere scartati. I non qualificatori, tuttavia, possono essere scartati qui a seconda della lunghezza della coda generale del pacchetto, a seconda dello stato SPD. La coda di pacchetti generale può essere in tre stati e, come tale, i pacchetti a bassa priorità possono essere serviti in modo diverso:

- NORMALE: dimensioni coda <= min

- CADUTA CASUALE: min <= dimensione coda <= max

- RILASCIO COMPLETO: max <= dimensioni coda

In stato NORMAL (NORMALE), non si eliminano mai pacchetti ben formati e non corretti.

Nello stato RANDOM DROP, i pacchetti ben formati vengono eliminati in modo casuale. Se è configurata la modalità aggressiva, tutti i pacchetti in formato non corretto vengono eliminati; in caso contrario, li trattiamo come pacchetti ben formati.

Nota: queste gocce casuali vengono definite scaricamenti SPD. In pratica, quando l'interfaccia è sovraccarica, si verificano svuotamenti. I mancati riscontri nel buffer incrementano il contatore di scaricamento.

Nello stato FULL DROP, tutti i pacchetti con formato corretto o errato vengono eliminati. i valori minimo (predefinito 73) e massimo (predefinito 74) derivano dalla coda di attesa più piccola sullo chassis, ma possono essere sostituiti con i comandi globali ip spd queue min-threshold e ip spd queue max-threshold.

Modalità aggressiva

SPD può essere configurato per due diverse modalità: normale (impostazione predefinita) e aggressivo. L'unica differenza tra le due è il modo in cui il router gestisce i pacchetti IP non validi (checksum non valido, versione non corretta, lunghezza dell'intestazione non corretta, lunghezza del pacchetto non corretta). I pacchetti IP non validi vengono scartati da SPD quando si è in modalità aggressiva e in stato di rilascio casuale. La modalità aggressiva può essere configurata usando il comando ip spd mode aggressive.

Nota: la modalità aggressiva non è implementata sul Cisco serie 12000 Internet Router perché i pacchetti IP non validi vengono scartati direttamente dalla scheda di linea in entrata e non vengono indirizzati al Gigabit Route Processor (GRP). Di conseguenza, su questa particolare piattaforma non è necessaria la modalità aggressiva.

Controllo coda di input

La coda di input viene gestita per interfaccia hardware, condivisa tra tutte le sottointerfacce. Senza SPD, tutti i pacchetti vengono scartati se la coda di input è piena quando il pacchetto viene ricevuto. La dimensione predefinita della coda di input è 75 ed è configurabile per interfaccia utilizzando il comando di configurazione interfaccia hold-queue [size]. Il numero di pacchetti nella coda di input può essere visualizzato nel campo "input queue" nel 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: la riduzione delle dimensioni della coda di input su un'interfaccia può causare un numero elevato di perdite di input su tutte le altre interfacce. Accertarsi di avere una dimensione minima della coda di attesa di input di almeno 75.

Headroom SPD

Anche con SPD, il comportamento dei normali pacchetti IP non viene modificato; tuttavia, ai pacchetti del protocollo di routing viene assegnata una priorità più alta in quanto SPD riconosce i pacchetti del protocollo di routing tramite il campo IP precedence. Pertanto, se la precedenza IP è impostata su 6, al pacchetto viene assegnata la priorità.

SPD assegna la priorità a questi pacchetti consentendo al software di accodarli nella coda di input a livello di processo oltre il normale limite della coda di input. Il numero di pacchetti consentiti che superano il limite normale è detto headroom spd. Il valore predefinito è 100, il che significa che un pacchetto con precedenza elevata non viene scartato se le dimensioni della coda di attesa di input sono inferiori a 175 (dimensioni predefinite della coda di input + dimensioni headroom spd).

A partire dal software Cisco IOS versione 12.0(22)S, l'headroom predefinito dell'spd è 1000 per il router Internet Cisco serie 12000, per supportare reti SP più grandi. Ciò è dovuto al fatto che il peering Border Gateway Protocol (BGP) viene utilizzato con un numero in costante crescita di router adiacenti per pubblicizzare un numero di route in costante crescita su interfacce sempre più veloci. Una singola cancellazione del BGP può spesso causare migliaia di perdite nella coda di input su una singola interfaccia, il che può gravemente ostacolare i tempi di convergenza.

Lo spazio di crescita dell'SPD è configurabile con il comando spd headroom. Il livello corrente di questo comando può essere restituito dal comando show spd o 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: le dimensioni della coda normale IP possono essere monitorate anche con il comando show ip spd.

Headroom SPD esteso

Pacchetti non IP, come ad esempio i pacchetti CLNS ISIS (Intermediate System-to-Intermediate System) senza connessione, i pacchetti PPP (Point-to-Point Protocol) e i pacchetti keepalive HDLC (High-Level Data Link Control) sono stati trattati fino a poco tempo fa come priorità normale essendo Layer 2 anziché Layer 3. Inoltre, ai protocolli IGP (Interior Gateway Protocol) operanti sul Layer 3 o versioni successive è stata data priorità sui pacchetti IP normali, ma con la stessa priorità dei pacchetti BGP. Così, durante la convergenza BGP o nei periodi di attività BGP molto alta, gli hellop IGP e i keepalive venivano spesso scartati, causando il crollo delle adiacenze IGP.

Dal momento che la stabilità IGP e del collegamento sono più deboli e più cruciali della stabilità BGP, a tali pacchetti viene ora assegnata la priorità più alta e viene assegnato uno spazio di crescita SPD esteso con un valore predefinito di 10 pacchetti. Ciò significa che questi pacchetti non vengono scartati se le dimensioni della coda di attesa di input sono inferiori a 185 (dimensioni predefinite della coda di input + dimensioni spazio di testa spd + spazio di testa esteso spd).

L'headroom SPD esteso è configurabile con il comando spd extended [size] e il relativo livello corrente può essere visualizzato dall'output del comando show spd o 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: sui router Internet Cisco serie 12000, i pacchetti keepalive HDLC e PPP, insieme ai pacchetti del protocollo di routing ISIS CLNS, sono considerati ad alta priorità e potrebbero essere accodati nell'headroom SPD esteso a partire dal software Cisco IOS versione 12.0(12)S1. Dal software Cisco IOS versione 12.0(18)S, tutti i pacchetti IGP potrebbero essere accodati nell'headroom SPD esteso.

Diagramma della coda di input

I valori predefiniti, prima del software Cisco IOS versione 12.0(22)S, sono:

- Dimensione coda di input = 75

- Dimensione spazio di crescita SPD = 100

- Dimensione spazio di crescita esteso = 10

I valori predefiniti, dopo il software Cisco IOS versione 12.0(22)S, sono:

- Dimensione coda di input = 75

- Dimensione spazio di crescita SPD = 1000

- Dimensione spazio di crescita esteso = 10

Nel primo caso si ottiene quanto segue:

- I pacchetti IP con precedenza normale possono essere accodati fino al limite predefinito (75)

- I pacchetti IP ad alta priorità possono essere accodati fino al limite predefinito della coda + spd_headroom (175 o 1075 in base alla versione software Cisco IOS)

- I pacchetti CLNS, IGP e LC keepalive possono essere accodati fino al limite predefinito + spd_headroom + spd_ext_headroom (185 o 1085 in base alla versione software Cisco IOS).

Varie

Ecco alcuni suggerimenti/informazioni aggiuntivi su SPD:

- Per impostazione predefinita, SPD è attivato. Può essere attivato/disattivato usando il comando spd enable global.

- Inizialmente, SPD era disponibile solo sulle interfacce Packet Over Sonet (PoS).

- Nelle versioni precedenti al software Cisco IOS versione 12.0(21)S, SPD non funzionava sulle schede di linea Gigabit Ethernet (motore 1 e motore 2) e Fast Ethernet installate su un router Internet Cisco serie 12000. È stato necessario aumentare la coda di attesa di input per archiviare i pacchetti in eccesso.

- Sul router Cisco serie 7200/7500, il contatore di scaricamenti (drop) dell'SPD può essere visualizzato nell'output del comando show interfaces a partire dal software Cisco IOS versione 12.1(1), 12.1(1)T e 12.0(9)ST per la coda non FIFO (First In First Out) e a partire dalle versioni 12.2(7), 12.2(7)T e 12.1(7)E per la coda FIFO. Nelle altre versioni e sui Cisco serie 12000 Internet Router, per visualizzare il contatore è sufficiente digitare il comando show interface switching. Ad esempio, il comando show interface pos 0/1 switching può essere usato per verificare gli scarichi dell'SPD, le cadute aggressive e la priorità.

Di seguito è riportato un esempio:

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

Informazioni correlate

- Risoluzione dei problemi di input sul Cisco serie 12000 Internet Router

- Risoluzione dei problemi di elevato utilizzo della CPU a causa dello scanner BGP o dal processo del router BGP

- Supporto tecnico – Cisco Systems