La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento vengono descritti i problemi relativi alla limitazione della memoria XML rilevati nelle richieste di servizio e negli strumenti Cisco.
Cisco raccomanda la conoscenza dei seguenti argomenti:
Il riferimento delle informazioni contenute in questo documento è ASR9000.
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.
È stato aperto un caso con queste domande:
Risposta.
Nella versione a 64 bit (eXR). La memoria è di una velocità:
RP/0/RSP1/CPU0:XR#show version
Wed Jul 26 21:10:16.761 IST
Cisco IOS XR Software, Version 7.1.3
Copyright (c) 2013-2020 by Cisco Systems, Inc.
Build Information:
Built By : gopalk2
Built On : Thu Nov 26 10:51:48 PST 2020
Built Host : iox-ucs-027
Workspace : /auto/srcarchive17/prod/7.1.3/asr9k-x64/ws
Version : 7.1.3
Location : /opt/cisco/XR/packages/
Label : 7.1.3
cisco ASR9K () processor
System uptime is 2 weeks 17 hours 22 minutes
RP/0/RSP1/CPU0:XR# configuration
RP/0/RSP1/CPU0:XR(config)#xml agent throttle ?
memory Memory usage
process-rate Process rate
RP/0/RSP1/CPU0:XR(config)#xml agent throttle memory ?
<100-1024> Size of the memory usage in Mbytes per session (default 300 Mbytes)
Nella versione a 32 bit (cXR). Hai un altro limite:
RP/0/RSP0/CPU0:XR#show version
Cisco IOS XR Software, Version 6.4.2[Default]
Copyright (c) 2020 by Cisco Systems, Inc.
ROM: System Bootstrap, Version 10.59(c) 1994-2014 by Cisco Systems, Inc.
Configuration register on node 0/RSP0/CPU0 is 0x102
Boot device on node 0/RSP0/CPU0 is disk0:
RP/0/RSP0/CPU0:XR# configuration
RP/0/RSP0/CPU0:XR(config)#xml agent throttle memory ?
<100-600> Size of the memory usage in Mbytes per session (default 300 Mbytes)
Nota: L'impostazione predefinita in entrambe le versioni è 300 Mbyte
2. Esistono diversi modi per interrompere la risposta XML:
Quando gli iteratori vengono configurati, la risposta totale XML viene segmentata in base alle dimensioni specifiche delle finestre. La finestra ha le dimensioni dell'iteratore. Ad esempio, se la risposta è 1 Gb e la dimensione dell'iteratore è 500 MB, il codice XML viene segmentato in 2 risposte.
Questo metodo modifica la risposta aggiungendo (in base alle dimensioni dell'iteratore) le operazioni GetNext (ovvero le informazioni necessarie per la risposta).
Per una sessione possono essere presenti fino a 10 iteratori.
Questa funzionalità limita la memoria utilizzata dal processo XML. Se un processo supera la memoria, risponde con il messaggio di errore: "È stata raggiunta la limitazione sull'utilizzo della memoria".
Analogamente agli iteratori, lo streaming segmenta la risposta XML in finestre specifiche. La differenza è rappresentata dalla risposta, che rimuove l'operazione GetNext e l'ID iteratore. Il codice XML invia i pacchetti trasmessi e il client genera la risposta al termine del flusso.
Per i casi in cui è necessaria l'automazione, utilizzare lo strumento pyIOSXR. Questo strumento di automazione è un agente XML, consente di eseguire alcuni comandi show e, in generale, si connette al dispositivo.
Ogni volta che si invia una richiesta importante con questo agente, viene visualizzato un errore:
Nota: Solo gli utenti Cisco registrati possono accedere agli strumenti e alle informazioni interne di Cisco.
RESPONSE ERROR: 0xa367a600 'XML Service Library' detected the 'fatal' condition 'The throttle on the memory usage has been reached. Please optimize the request to query smaller data.'
Con il messaggio di errore "optimize the request to query small data" (ottimizza la richiesta per eseguire query su dati di dimensioni inferiori), è possibile configurare l'API XML dell'agente con gli iteratori. Questo, in teoria, permette di segmentare la risposta.
Quando sono stati configurati gli iteratori, viene visualizzato lo stesso messaggio di errore: "ERRORE DI RISPOSTA...Ottimizzare la richiesta per eseguire una query su dati di dimensioni inferiori".
Quando viene visualizzato un errore, il passaggio successivo consiste nel comprendere il motivo per cui la funzione, in questo caso gli iteratori, non ha funzionato per la query.
pyIOSXR consiglia di abilitare correttamente l'agente XML nel dispositivo, ovvero l'API non consente l'utilizzo degli iteratori.
Il passo successivo è provare la seconda opzione: Streaming.
Nota: pyIOSXR non consente l'utilizzo di intestazioni diverse dalla query XML di base, che includono gli elementi seguenti:
.
.
.
Streaming e iteratori aggiungono un'intestazione alle query. Lo streaming aggiunge un ID di flusso che aiuta il sistema a generare la risposta completa. Gli iteratori aggiungono GET_Next e l'ID iteratore.
Il test dello streaming ha inoltre mostrato lo stesso messaggio di errore degli iteratori.
Nella sezione Ulteriori suggerimenti per eseguire query sul dispositivo sono disponibili ulteriori strumenti per risolvere questi problemi. Uno di questi è il carattere jolly. Il carattere jolly rappresenta la soluzione per il limite di velocità della memoria.
Un carattere jolly consente di creare una query specifica per evitare la richiesta di informazioni non necessarie. Ad esempio, per le informazioni BGP, usare il comando show route bgp anziché il comando generico show route. Questo esempio si applica alla logica e alle query XML. La richiesta di informazioni di massa al sistema può generare problemi di memoria e di elaborazione.
Query utilizzata all'apertura del caso:
DEFAULT
VRF_NAME
NAME
>
Questa query è destinata alle tabelle BGP complete. Per questa richiesta non specifica, la risposta è stata di quasi 2,2 Gb, pertanto viene raggiunto il limite di velocità della memoria.
Per risolvere il problema, è necessaria una query specifica, che consente al sistema di elaborare la query e restituire le informazioni.
Nota: Se sono necessarie ulteriori informazioni, specifiche o altri comandi, fare clic sul collegamento successivo Guida alla programmazione XML: Guida alla programmazione XML XR
Il codice XML definisce il modo in cui i dati vengono visualizzati e strutturati. Questo è un modo per analizzare ciò che il computer comprende come bit e visualizza informazioni strutturate e standardizzate.
XML presenta la struttura seguente:
This is an example
Tutti i tag sono composti da due parti, il tag di apertura (<init>) e il tag di chiusura (</init>). Se questa struttura non viene utilizzata, XML non è in grado di capire dove termina un tag.
XML è costituito da due entità:
Un'analogia per questi dati strutturati consiste nel confrontare i dati XML come una struttura. Un contenitore è un ramo e ogni ramo ha foglie stubbed. Le foglie non contengono altro che informazioni.
Ad esempio, l'albero successivo presenta la radice in grigio, i contenitori in bianco e le foglie in blu.
Per verificare/utilizzare l'API XML, è innanzitutto necessario eseguire una query.
1. La query ha un'intestazione:
Nota: Questo è l'unico tag che non richiede un tag di chiusura.
2. È necessario aggiungere un tag per la richiesta. Nella richiesta è necessario specificare la versione.
3. Con l'intestazione, la richiesta e la versione, il corpo continua con qualsiasi operazione XML che l'API ha:
…
Nota: Si noti che le richieste includono operazioni diverse in ogni query. Non è necessario eseguire una richiesta per operazione.
Nell'esempio seguente viene visualizzata una richiesta con tutte le informazioni richieste:
…
Cisco IOS XR supporta 5 operazioni che consentono agli utenti di interagire con le informazioni dello schema XML:
1. Operazioni sui dati nativi:
2. Operazioni CLI:
L'API XML implementa gli spazi dei nomi seguenti:
Nota: Per visualizzare gli oggetti radice, visitare: Cisco IOS-XR XML Network Management (informazioni in lingua inglese).
Attenzione: Tenere presente che ogni spazio dei nomi controlla dati e operazioni diversi.
Ci sono due percorsi diversi per viaggiare. Dopo aver selezionato gli spazi dei nomi per la query, è necessario utilizzare uno schema per:
1. Documentazione relativa allo schema XML
Queste opzioni forniscono una struttura XML completa che mostra i contenitori e i fogli. Per la documentazione, fare clic su Schemi XML CRS.
Viene visualizzata la pagina della documentazione.
In questa pagina vengono visualizzati oggetti, contenitori e figli. Ogni oggetto contiene un oggetto figlio. Se l'oggetto figlio non contiene altri contenitori, viene considerato come foglia.
È possibile fare clic sul figlio per visualizzare le informazioni per la creazione di una query. Ad esempio, per IPv4:
Nell'immagine precedente, per ogni query IPv4 è possibile eseguire l'operazione di configurazione, specificando come destinazione l'IP del contenitore, il Cinetd del contenitore, i Servizi del contenitore e infine l'IPv4 foglia.
Nota: Qualsiasi operazione che deve essere di tipo foglia per poter eseguire la query.
La query sarà la seguente:
2. API XML
L'API XML è incorporata in Cisco IOS XRl. Per visualizzare la struttura XML, utilizzare il comando show xml schema. Emettendo il comando, l'intero schema XML viene visualizzato in una CLI simile a Linux.
In questa CLI sono disponibili le seguenti azioni:
?:Proprio come —aiuto
LS: Elencare i contenitori/foglioline nella diramazione in cui si trova l'utente.
<operazione>: Emettendo ? è possibile verificare la presenza di operazioni ed emettere i comandi:
Alcune operazioni sono:
-config
- adminconfig
-cd
- elenco
- oper
-azione
CD: Cambia directory/contenitore.
Nell'esempio viene mostrato il seguente:
RP/0/RP0/CPU0:XR#show xml schema
Username:admin
Password:
xml-schema[config]:> ?
config oper action
adminconfig adminoper adminaction
cd pwd classinfo
list ls datalist
walk walkdata get
hierarchy quit exit
help
xml-schema[config]:> ls
[container] RIP
[container] TCL
[container] LawfulIntercept
[container] ErrorDisable
[container] PerfMgmt
[container] RCC
[container] FrequencySynchronization
[container] HwModuleProfileConfig
[container] MPLSStatic
[container] XML
[container] Tpa
[container] MLD
[leaf] RPIsolationEnabled
[leaf] RPIsolationMultiple
[container] AMT
[container] PriorityFlowControlWatchdog
[container] SSH
[container] BNG_PBR
Avviso: Le credenziali sono necessarie per accedere al dispositivo. Queste credenziali sono locali per il dispositivo e richiedono i profili root-ls/admin.
Nell'esempio seguente viene illustrato come creare una query utilizzando l'API XML. Ad esempio, la query deve verificare se l'agente XML è attivato:
xml-schema[config]:> ls
[container] RIP
[container] TCL
[container] LawfulIntercept
[container] ErrorDisable
[container] PerfMgmt
[container] RCC
[container] FrequencySynchronization
[container] HwModuleProfileConfig
[container] MPLSStatic
[container] XML >>> Here
[container] Tpa
[container] MLD
[leaf] RPIsolationEnabled
[leaf] RPIsolationMultiple
[container] AMT
[container] PriorityFlowControlWatchdog
[container] SSH
[container] BNG_PBR
[container] L2TP
[container] Exception
[container] IP_RAW
[container] MSTAG
[container] FpdXRConfig
xml-schema[config]:> cd XML
xml-schema[config]:XML> ls
[container] Agent
xml-schema[config]:XML> cd Agent
xml-schema[config]:XML.Agent> ls
[container] Default
[container] SSL
[container] TTY
xml-schema[config]:XML.Agent> cd TTY
xml-schema[config]:XML.Agent.TTY> ls
[leaf] Enable >>> Leaf of interest.
[leaf] IterationSize
[leaf] StreamingSize
[container] Throttle
[container] Session
Viene visualizzato il prompt successivo:
xml-schema[config]:XML.Agent.TTY>
Il prompt precedente visualizza la struttura XML. Con queste informazioni la query è:
Una volta creata l'interrogazione, il passaggio successivo consiste nel testarla. Per verificarlo, è possibile usare il comando xml echo format nella CLI. Questa azione può essere archiviata nello stesso dispositivo.
Suggerimento: Dopo aver immesso il comando precedente, gli utenti possono copiare/incollare la query e premere Invio. Il dispositivo visualizza la risposta alla query.
RP/0/RP0/CPU0:XR#xml echo format
XML>
XML>
>>> Hit enter here. Immediately getting the reply.
! Reply:
true >>> This is the requested value.
XML> exit
Il router visualizza la risposta e il riepilogo dei risultati.
Nota: Questa risposta XML non visualizza né richiede alcuna memoria di limitazione da configurare. La risposta, poiché non utilizza SSH/TTY, è richiesta a prescindere dalle dimensioni. Il client XML e il comando echo XML incorporato possono cambiare.
Cisco IOS XR è un sistema modulare che richiede diversi pacchetti per funzionare. Il codice XML è considerato presente nei sottosistemi del piano di gestione.
Quando XR è stato avviato, erano disponibili due modi diversi per utilizzare XML nel dispositivo:
Nota: CORBA è stato deprecato dopo la versione 3.7.
CORBA è un protocollo legacy che utilizza SSL presente nei pacchetti di sicurezza. D'altra parte, il metodo SSH richiede l'uso del pacchetto di gestibilità.
L'infra viene distribuita nel modo seguente:
Dall'immagine precedente, il processo principale del codice XML è rappresentato dal processore RSP (Router and Switch Processor). Questi processi hanno un'API comune che controlla tutte le informazioni provenienti dagli altri processi nel dispositivo, che sono:
Nota: Per ulteriori informazioni su questo argomento, controllare la sezione Errori XML in Cisco IOS XR.
A seconda della richiesta, vengono attivati uno o più processi. Quando si sviluppano strumenti di automazione, se la risposta è maggiore della dimensione del blocco, la risposta non può avere esito positivo. Se la risposta a un processo richiede molto tempo, è possibile generare log EDM, arrestarlo o influire sui servizi.
L'immagine seguente mostra l'interazione:
Per configurare/abilitare l'agente XML sul dispositivo, utilizzare:
RP/0/RP0/CPU0:XR#config
RP/0/RP0/CPU0:XR(config)#xml agent tty
RP/0/RP0/CPU0:XR(config-xml-tty)#commit
Il sistema deve concordare con il cliente nelle seguenti aree:
Le versioni possono essere definite in 2 aree:
Applicabile al componente specifico:
Nota: È possibile controllare la versione dello schema con l'operazione GetVersionInfo applicata al contenitore.
Puoi controllare la versione. Nell'esempio seguente viene illustrato come eseguire questa operazione:
Nota: Le operazioni XML sono GET, SET e così via.
Utilizzare il comando xml echo formal e quindi aggiungere il tag GetVersionInfo alla query per trovare la versione in esecuzione sul router. come mostrato di seguito:
RP/0/RSP0/CPU0:XR#xml echo format
Mon Jul 31 13:53:50.993 UTC
XML>
>>> This is the request
XML>
Nota: Nel campo Richiesta vengono visualizzate tutte le versioni in esecuzione nel componente principale, nonché la versione nei contenitori in esso contenuti.
Se il percorso è corretto, per ogni richiesta XML API verranno visualizzate le informazioni richieste.
Il router visualizza tre messaggi diversi:
Questo messaggio viene visualizzato ogni volta che un'operazione GET ha una risposta vuota.
L'operazione GET non contiene questa operazione nello schema XML.
Impossibile trovare il livello dell'elemento richiesto.
1.Trasporto: Gli errori in questa categoria includono qualsiasi elemento tra la comunicazione agente/client XML. Ciò significa che possono verificarsi problemi o interazioni SSH nel trasporto. Pertanto, per controllare queste tipologie di problemi, si consiglia di controllare le tracce SSH per verificare eventuali problemi di autenticazione, porta, e così via.
2. Parser XML: Eventuali problemi relativi al formato e alla sintassi, problemi nella risposta inviata o nella query. Questi problemi in genere inviano il motivo dell'errore quando si verifica un errore.
Ad esempio:
ERROR: 0xa367a600 'XML Service Library' detected the 'fatal' condition 'The throttle on the memory usage has been reached.
3. Schema XML: Qualsiasi schema diverso dallo schema del router. Per risolvere questi problemi, controllare lo schema e le versioni di CLI.
Ad esempio:
ErrorCode="0x43688400" ErrorMsg="'XMLMDA' detected the 'warning' condition 'An XML request contains an element which is unrecognised or incorrectly positioned&apos
4. Elaborazione delle operazioni: Quando si configura il dispositivo, è possibile che si verifichino questi problemi. Per risolvere questo problema è necessario risolvere i problemi dei processi, ad esempio commit, sysdb e così via.
Nota: Le informazioni sull'errore vengono aggiunte al livello dell'elemento operazione. Viene codificato sotto forma di attributi ErrorCode (int a 32 bit) ed Errormsg.
Altre tecniche utili:
1. Carattere jolly: Questo processo è noto anche come query specifiche.
2. Batch: Combinazione di diverse tecniche o operazioni in un'unica richiesta (operazioni ottimali).
3. Filtro personalizzato: Se lo schema lo consente, per facilitare la selezione delle righe nelle tabelle.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
16-Feb-2024 |
Versione iniziale |