Introduzione
In questo documento viene descritto come risolvere i problemi e verificare i messaggi di log HAL_PKTMEM-2-OUT_OF_RESOURCES in Aggregation Services Router 1000 (ASR 1000) con Embedded Services Processor 10 (ESP10).
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
Componenti usati
Le informazioni di questo documento si basano sulle seguenti versioni software:
- ASR1k 15.1(3)S2 e versioni successive
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.
Premesse
PAK_PRIORITY è il meccanismo usato dai dispositivi per specificare il trattamento di un pacchetto quando viene trasmesso all'interno del dispositivo. I pacchetti che normalmente hanno il tag PAK_PRIORITY sono pacchetti del protocollo di controllo, ad esempio: RIP, OSPF, EIGRP, ISIS, PPP, HDLC, ecc.
Sintomo
In genere, questo problema si presenta come se il router non fosse in grado di inoltrare il traffico da alcune interfacce.
Questi registri possono essere visualizzati nel buffer di registro:
.Apr 8 18:56:40,808 GMT: PIATTAFORMA %IOSXE-2: F0 cpp_cp: QFP:00 Thread:069 TS:00006374345833820173 %HAL_PKTMEM-2-OUT_OF_RESOURCES:
.Apr 8 18:57:41,22 GMT: PIATTAFORMA %IOSXE-2: F0 cpp_cp: QFP:00 Thread:047 TS:00006374406093385973 %HAL_PKTMEM-2-OUT_OF_RESOURCES:
.Apr 8 18:58:43,662 GMT: PIATTAFORMA %IOSXE-2: F0 cpp_cp: QFP:00 Thread:009 TS:00006374468373382518 %HAL_PKTMEM-2-OUT_OF_RESOURCES
Questo registro indica che il dispositivo ha esaurito i buffer dei pacchetti a causa di una sovrassegnazione del traffico pak_priority.
ASR 1k non scarta i pacchetti PAK_PRIORITY, facilitando il riempimento dei buffer e impedendo il passaggio di altri tipi di traffico.
Risoluzione dei problemi
Per iniziare, controllare i valori predefiniti delle interfacce per le code dell'interfaccia con problemi:
R1#sh platform hard qfp active infrastructure bqs coda output interfaccia predefinita Gigabit Ethernet0/0/4
Interfaccia: Gigabit Ethernet 0/0/4 QFP: 0.0 if_h: 19 Numero di code/pianificazioni: 1
Specifiche coda:
Indice 0 (ID coda: 0x8a, Nome: Gigabit Ethernet0/0/4)
Informazioni di controllo software:
ID coda (cache): 0x000008a, wred: 0x8b670082, qlimit (byte): 3281312
sid_padre: 0x278, nome_debug: Gigabit Ethernet 0/0/4
flag_sw: 0x08000091, stato_sw: 0x0000801, port_uidb: 0
min_orig : 0, min: 105000000
qos_min: 0, min_dflt: 0
orig_max: 0, max: 0
max_qos: 0, max_dflt: 0
condivisione: 1
livello: 0, priorità: 0
defer_obj_refcnt: 0
Statistiche:
code drop (byte): 0 , (pacchetti): 0
enq totali (byte): 969986824 , (pacchetti): 6713421
queue_depth (byte): 262736736
È possibile osservare che il limite della coda è 3281312 ma la profondità della coda è 262736736. La quantità di pacchetti viene superata. Questo problema può verificarsi solo quando i pacchetti pak_priority arrivano a una velocità elevata sull'interfaccia.
Quindi controllare le cadute sul QFP (Quantum Flow Processor) dell'ASR 1k, si nota che ci sono BQSOOR (Buffering Queueing and Scheduling out of resource) cadute in aumento. Il BQS è l'ASIC di buffering, queueing e scheduling; ciò significa che il dispositivo non è in grado di memorizzare nel buffer alcuni pacchetti in arrivo a causa della sua saturazione.
R1#show platform qfp statistiche attive drop all | e _0_
—
Pacchetti statistiche globali - ottetti
—
Bqs Oor 62918 8700111
R1#show platform qfp statistiche attive drop all | e _0_
—
Pacchetti statistiche globali - ottetti
—
Bqs Oor 62923 8700966
R1#show platform qfp statistiche attive drop all | e _0_
—
Pacchetti statistiche globali - ottetti
—
Bqs Oor 62942 8703894
Controllare quindi l'utilizzo del pacchetto bqs per verificare la percentuale di buffer utilizzata.
R1#show platform hardware qfp act bqs 0 utilizzo pacchetti
Dettagli utilizzo memoria buffer pacchetto:
Totale: 256,00 MB
Utilizzato: 253,44 MB
Disponibile: 2620,00 KB
Valori di soglia:
Memoria insufficiente: 255,96 MB, stato: Falso
Vitale (> 98%) : 253,44 MB, stato: Vero
Risorse esaurite (OOR): 217,60 MB, stato: Vero
Utilizzo: 99 %
Poiché l'utilizzo è del 99%, il dispositivo sta esaurendo le risorse per il buffer.
È ora necessario individuare il gruppo di buffer in cui si trovano i pacchetti.
Sono disponibili 4 opzioni:
· Le code QoS create tramite MQC eseguono il comando "Show policy-map int | incl profondità coda|limite"
· Code predefinite per l'interfaccia di output eseguire il comando "Show plat hard qfp act inf bqs que out def all | incl queue_depth"
· Le code di riciclo utilizzate per l'infrastruttura eseguono il comando "Show platform afp act inf bqs queue out recycle all | incl queue_depth"
· Le code IPC (Interprocess Communication Protocol) eseguono il comando "Show platform act inf bqs queue out ipc | incl queue_depth"
R1#show platform hardware qfp act inf bqs que out def all | i coda
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 262736736
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
R1#show platform hardware qfp act inf bqs que out recy all | i coda
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
queue_depth (pacchetti): 0
R1#show platform hardware qfp act inf bqs que out ipc | i coda
queue_depth (byte): 0
queue_depth (byte): 0
queue_depth (byte): 0
I pacchetti si trovano nella coda predefinita.
Normalmente questo problema può essere associato a un'ondata di pacchetti PAK_PRIORITY o attacchi DDOS che potrebbero essere inviati contrassegnati come PAK_PRIORITY per interrompere l'inoltro dei pacchetti. Questo CoPP (Control Plane Policing) potrebbe essere necessario per eliminare i pacchetti che non provengono da un'origine valida.
Il controllo del flusso può causare questa condizione, ossia un aumento degli input di pausa sull'interfaccia.
R1#show int gi0/0/4
Gigabit Ethernet0/0/4 è attivo, il protocollo di linea è attivo
L'hardware è SPA-10X1GE-V2, l'indirizzo è 74de.eeee.ccc (bia 74de.eeee.ccc)
Descrizione: inumpt005rtwn01-G0/2 Airtel 779861 300Mbps/1Gbps
L'indirizzo Internet è 10.1.1.1/30
MTU 9000 byte, BW 300000 Kbit/sec, DLY 10 usec,
affidabilità 255/255, txload 1/255, rxload 1/255
ARPA di incapsulamento, loopback non impostato
Keepalive non supportato
Full Duplex, 1000 Mbps, tipo di collegamento forzato, tipo di supporto LX
controllo del flusso in uscita attivato, controllo del flusso in ingresso attivato
Tipo ARP: ARPA, ARP Timeout 04:00:00
Ultimo ingresso 00:00:02, uscita 00:00:01, uscita mai bloccata
Ultima cancellazione dei contatori "show interface" 8w5d
Coda di input: 0/375/0/0 (dimensioni/max/gocce/scarichi); Totale riduzioni output: 11
Strategia di accodamento: Accodamento basato su classi
Coda di output: 0/40 (dimensioni/max)
Velocità di input di 30 secondi 0 bit/sec, 0 pacchetti/sec
Velocità di uscita 30 secondi 0 bit/sec, 0 pacchetti/sec
16653945560 pacchetti in ingresso, 6397725725851 byte, 91 senza buffer
Ricevuti 339 broadcast (0 multicast IP)
0 runt, 0 giants, 0 throttle
52 errori di input, 52 CRC, 0 frame, 0 sovraccarico, 0 ignorato
0 watchdog, 2095792 multicast, 166107198 pausa input
12240362564 pacchetti in uscita, 3785983938723 byte, 0 underrun