Questo documento descrive la verifica della coerenza ora disponibile per i router Cisco serie 7500 e 12000 che eseguono il formato distribuito di Cisco Express Forwarding (CEF). Il controllo di coerenza, introdotto nel software Cisco IOS® versione 12.0(15)S e in altri release train, è progettato per rilevare quando si inoltrano le informazioni sulle schede di linea e il processore di routing (RP) perde la sincronizzazione. Quando lo strumento di controllo rileva un problema, Cisco IOS segnala i seguenti messaggi di registro:
%FIB-4-RPPREFIXINCONST2: RP missing prefix for 133.160.0.0/16 (present in routing table) %FIB-4-RPPREFIXINCONST2: RP missing prefix for 133.160.0.0/16 (present in routing table) %FIB-4-LCPREFIXINCONST2: Slot 1 missing prefix entry for 64.0.17.0/32
Nel documento vengono forniti anche suggerimenti per la risoluzione dei problemi relativi alle incoerenze CEF.
Nessun requisito specifico previsto per questo documento.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
Software Cisco IOS release 12.0(15)S e successive
Cisco serie 7500 e 12000 router
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.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Per comprendere il contenuto della revisione eseguita da Verifica coerenza, è innanzitutto necessario comprendere e definire le tabelle di inoltro CEF.
Il CEF descrive un meccanismo di commutazione ad alta velocità che un router utilizza per inoltrare i pacchetti dall'interfaccia in entrata all'interfaccia in uscita. CEF utilizza due set di strutture o tabelle di dati, che memorizza nella memoria del router:
Forwarding Information Base (FIB): descrive un database di informazioni utilizzato per prendere decisioni relative all'inoltro. È concettualmente simile a una tabella di routing o alla cache route, anche se la sua implementazione è diversa.
Adiacenza - Due nodi della rete si definiscono adiacenti se possono raggiungersi l'un l'altro tramite un singolo hop attraverso un livello di collegamento.
La tabella FIB viene aggiornata quando si verifica una delle seguenti situazioni:
La voce della cache ARP (Address Resolution Protocol) per le modifiche, il timeout dell'hop successivo viene rimossa.
La voce della tabella di routing per il prefisso viene modificata o rimossa.
La voce della tabella di routing per l'hop successivo viene modificata o rimossa.
I router Cisco serie 7500 e 12000 supportano CEF (dCEF) distribuiti, in cui le schede di linea prendono le decisioni di inoltro dei pacchetti utilizzando copie memorizzate localmente delle stesse tabelle FIB e adiacenti dell'RP. Le tabelle tra l'RP e le schede di linea devono rimanere sincronizzate. Qualsiasi modifica apportata alle tabelle dell'RP deve essere inoltrata alle schede di linea.
IPC (Inter-Process Communication) è il protocollo utilizzato dai router per supportare l'inoltro di pacchetti distribuiti. Gli aggiornamenti CEF sono codificati come elementi di informazioni XDR (External Data Representation) all'interno dei messaggi IPC. Il diagramma seguente illustra il meccanismo di distribuzione della struttura di dati CEF.
Esistono due tipi di incoerenze:
Informazioni mancanti, ad esempio un prefisso particolare, in una scheda di linea.
Informazioni diverse, ad esempio indirizzi IP dell'hop successivo, sulla scheda di linea.
router#show ip cef 24.20.84.32 24.16.0.0/13, version 833173, cached adjacency to POS6/0 0 packets, 0 bytes Flow: AS 6172, mask 13 via 4.24.234.153, 0 dependencies, recursive next hop 4.24.234.153, POS6/0 via 4.24.234.152/30 valid cached adjacency router#execute-on all show ip cef 24.20.84.32 ========= Line Card (Slot 1) ======= 24.16.0.0/13, version 408935, cached adjacency 0.0.0.0 0 packets, 0 bytes Flow: AS 6172, mask 13 via 157.130.213.1, 0 dependencies, recursive next hop 157.130.213.1, POS1/0.500 via 157.130.213.0/30 valid cached adjacency ========= Line Card (Slot 2) ======= 24.16.0.0/13, version 13719, cached adjacency 0.0.0.0 0 packets, 0 bytes Flow: AS 6172, mask 13 via 157.130.213.1, 0 dependencies, recursive next hop 157.130.213.1, POS1/0.500 via 157.130.213.0/30 valid cached adjacency
Un'indicazione di un'incoerenza CEF è una differenza nella colonna "CEF-ver" del comando show cef linecard, come mostrato nell'output che segue.
7505-2A#show cef linecard CEF table version 35, 11 routes Slot CEF-ver MsgSent XDRSent Window LowQ MedQ HighQ Flags 1 0 0 0 LC wait 0 0 0 disabled 2 31 95 422 24 0 0 0 up, sync 3 34 105 544 24 0 0 0 up, sync
L'output del comando show ip cef summary sull'RP e sull'LC deve mostrare lo stesso numero di route e adiacenze quando le condizioni seguenti sono vere:
Tutte le schede di linea sono in stato "up, sync" (attivo, sincronizzato).
Le code XDR sia sull'RP che sul LC sono vuote (le colonne "LowQ/MedQ/HighQ" in show cef linecard sull'RP e i dati "RP messaggi da elaborare" in show cef linecard sulla linecard).
Nota: un'eccezione è rappresentata dai Cisco serie 12000 Engine 2 LC, in cui l'ASIC (PSA) di switching del pacchetto installa percorsi aggiuntivi per implementare gli ACL.
Il software Cisco IOS versione 12.0(22)S contiene i controlli di coerenza CEF v2 (presenti nel software Cisco IOS versione 12.1E), che consentono di eseguire il comando show ip cef inconsistency per segnalare eventuali problemi.
Poiché gli aggiornamenti vengono eseguiti sui database di routing nelle schede RP e di linea, possono verificarsi incoerenze dovute alla natura asincrona del meccanismo di distribuzione di tali database. CEF supporta i controlli di coerenza passivi e attivi eseguiti in modo indipendente. Nella tabella seguente vengono descritti questi strumenti di controllo.
Meccanismo di rilevamento | Funziona su | Descrizione |
---|---|---|
Rilevamento Lc | Scheda di linea | Funziona sulla scheda di linea recuperando i prefissi IP trovati mancanti dalla relativa tabella FIB. Se mancano i prefissi IP, la scheda di linea non può inoltrare pacchetti per questi indirizzi. Lc-detect invia quindi i prefissi IP all'RP per la conferma. Se l'RP rileva la voce rilevante, viene rilevata un'incoerenza e viene visualizzato un messaggio di errore. Inoltre, l'RP invia un segnale alla scheda di linea confermando che il prefisso IP è un'incoerenza. |
Scan-lc | Scheda di linea | Funziona sulla scheda di linea esaminando la tabella FIB per un periodo di tempo configurato e inviando i successivi n prefissi all'RP. L'RP esegue una ricerca esatta. Se il prefisso risulta mancante, l'RP segnala un'incoerenza. Infine, il RP invia una conferma alla scheda di linea. |
Scan-rp | Route Processor | Funziona sull'RP (opposto di scan-lc) guardando attraverso la tabella FIB per un periodo di tempo configurato e inviando i successivi n prefissi alla scheda di linea. La scheda di linea esegue una ricerca esatta. Se il prefisso risulta mancante, la scheda di linea segnala un'incoerenza e infine segnala l'RP per la conferma. |
Nervatura | Route Processor | Funziona su tutti gli RP (anche non distribuiti) ed esegue la scansione del RIB per assicurarsi che le voci di prefisso siano presenti nella tabella FIB RP. |
Utilizzare i comandi seguenti per configurare i controlli di coerenza attivati e le variabili correlate.
ip cef table consistency-check type [period] [count] - Controlla i parametri generali per gli strumenti di controllo.
ip cef table consistency-check: abilita o disabilita i tipi supportati e controlla il periodo di analisi e prefissi analizzati (non per lc-detect). La verifica coerenza è disattivata per impostazione predefinita.
Le incongruenze non devono mai accadere, e ogni incongruenza deve essere studiata. Per la risoluzione dei problemi, usare i seguenti comandi CEF debug e show.
Alcuni comandi show sono supportati dallo strumento Output Interpreter (solo utenti registrati); lo strumento permette di visualizzare un'analisi dell'output del comando show.
Nota: prima di usare i comandi di debug, consultare le informazioni importanti sui comandi di debug.
show ip cef inconsistency records detail: visualizza le statistiche sui meccanismi di rilevamento. Registra inoltre informazioni dettagliate per un numero (attualmente 4) di incoerenze confermate, ma diverse.
show ip cef inconsistency: visualizza un riepilogo dello stato.
Table consistency checkers (settle time 15s) lc-detect: running 0/0/0 queries sent/ignored/received scan-lc: running [100 prefixes checked every 60s] 0/0/1053 queries sent/ignored/received scan-rp: running [100 prefixes checked every 60s] 1053/0/0 queries sent/ignored/received scan-rib: running [1000 prefixes checked every 60s] 81/0/81 queries sent/ignored/received Inconsistencies: 0 confirmed, 0/4 recorded
show ip cef inconsistency records: utilizzare la parola chiave records per eseguire il dump delle incoerenze registrate.
visualizzazione dei dettagli dei record di incoerenza ip cef e dello slot di esecuzione
router#exec slot 2 show ip cef inconsistency records detail ========= Line Card (Slot 2) ======= Table consistency checkers (settle time 65s) lc-detect: running 0/0/0 queries sent/ignored/received scan-lc: running [100 prefixes checked every 60s] 1289156/0/0 queries sent/ignored/received scan-rp: running [100 prefixes checked every 60s] 0/0/1068308 queries sent/ignored/received scan-rib: running [1000 prefixes checked every 60s] 0/0/0 queries sent/ignored/received Inconsistencies: 340 confirmed, 1/4 recorded Test table insert mode: normal Test table remove mode: normal -------- Inconsistency record 0 -------- Prefix entry for 192.168.3.10/32 present on RP, missing on slot 2 Detected at 00:01:46.736 by scan-rp Event log entries relevant for 192.168.3.10: +00:00:00.000: *.*.*.*/* New FIB table [OK] 0x403FA4E8 0x403FA530 0x4009C1FC 0x4009C1E8 +00:00:03.092: *.*.*.*/* Flush ADJ table [OK] 0x404000B0 0x4040EEC0 0x4040F100 0x40401F64 0x404021AC 0x4040229C 0x404029C8 0x4009C1FC 0x4009C1E8 +00:00:03.100: *.*.*.*/* Flush FIB table [OK] 0x404039D0 0x40401F4C 0x404021AC 0x4040229C 0x404029C8 0x4009C1FC 0x4009C1E8 +00:00:03.124: *.*.*.*/* New FIB table [OK] 0x404039D8 0x40401F4C 0x404021AC 0x4040229C 0x404029C8 0x4009C1FC 0x4009C1E8 First event occurred at 00:00:07.600 (2w5d ago) Last event occurred at 00:00:10.724 (2w5d ago)
Nota: non è disponibile alcun accesso SNMP ai record di incoerenza. Questa funzionalità può essere aggiunta a una versione futura di Cisco IOS.
clear cef linecard - Se manca un prefisso IP da una scheda di linea, utilizzare questo comando per reinstallare il prefisso nella scheda di linea FIB.
clear ip route - Se manca un prefisso nell'RP, utilizzare questo comando per reinstallare il prefisso nell'RP FIB.
Quando lo strumento di verifica della coerenza rileva un problema, sono necessari i seguenti output del comando per risolvere il problema.
show ip cef: visualizza le voci nella FIB sull'RP.
exec all show ip cef - Visualizza i valori FIB CEF sulle schede di linea.
show tech cef: fornisce informazioni per il supporto tecnico sul CEF.
show ip cef inconsistency records detail: visualizza i dettagli delle incoerenze FIB CEF sull'RP.
exec slot show ip cef inconsistency records detail: visualizza i dettagli delle incoerenze FIB CEF sulle schede di linea.
no ip cef table consistency-check - Disattiva gli strumenti di controllo.
debug ip cef table consistency-checkers - Determina il debug degli eventi di query e controllo.
Per cancellare un'incoerenza CEF, usare il comando clear ip cef inconsistency. Per disattivare la verifica coerenza, utilizzare il comando no ip cef table consistency-check. È importante notare che la disattivazione di Verifica coerenza non risolve i problemi segnalati. Il sistema continua a funzionare con incongruenze, che possono determinare comportamenti imprevisti.
In rari casi, la versione originale di Verifica coerenza CEF può segnalare un falso positivo. Questo problema è causato da finestre temporali temporanee durante l'aggiornamento dei database CEF (in particolare durante aggiornamenti di grandi dimensioni) e la distribuzione di nuove informazioni dall'RP alle schede di linea. Sebbene i messaggi falsi positivi siano molto limitati (e quindi più dannosi che dannosi per la CPU), Cisco consiglia di disabilitare la verifica coerenza CEF a meno che non si risolva un problema di coerenza specifico.
Per ridurre al minimo le probabilità di falsi positivi per i prefissi in fase di aggiornamento, è possibile regolare il tempo di impostazione, ovvero il ritardo imposto sul rilevamento. Usare il comando ip cef table consistency-check [settle-time]. Questo comando si basa sulla presenza di un registro eventi; in caso contrario, il tempo di liquidazione è effettivamente 0.
È stato selezionato un valore predefinito di 65 secondi per impedire il rilevamento fantasma di prefissi adiacenti (/32 per voci ARP) mancanti nell'RP. L'eliminazione ARP avviene in due fasi sull'RP:
L'adiacenza è contrassegnata come incompleta e il prefisso adiacente viene eliminato.
Il camminatore adiacente da un minuto elimina l'adiacenza e informa le schede di linea di fare lo stesso.
Questo processo porta a una finestra di massimo 60 secondi quando il prefisso adiacente è presente sulle schede di linea, ma non sull'RP.
Nota: nella versione 2.0 del controllo di coerenza è stato risolto il problema delle incoerenze false.
Di seguito vengono elencati i bug Cisco noti relativi alla funzione di verifica coerenza CEF. L'elenco non è esaustivo.
ID bug Cisco CSCdt18447 (solo utenti registrati) CEF event logger/consistency checkers hog CPU
ID bug Cisco CSCuk23390 (solo utenti registrati) lc-detect cause malloc fail a livello di interrupt
Cisco ID bug CSCuk23290 (solo utenti registrati) Il registratore di eventi di incoerenza CEF può effettuare una errata allocazione dello storage
Cisco ID bug CSCdt04645 (solo utenti registrati) Risolve un problema con una perdita di memoria (che influisce su tutto ciò che può eseguire CEF distribuiti, incluso il processo lc-stat consistency checker).
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
10-Aug-2005 |
Versione iniziale |